function acosh (x) c april 1977 edition. w. fullerton, c3, los alamos scientific lab. external r1machsqrt data aln2 / 0.6931471805 5994530942e0/ data xmax /0./ c if (xmax.eq.0.) xmax = 1.0/sqrt(r1mach(3)) c if (x.lt.1.0) call seteru (21hacosh x less than 1, 21, 1, 2) c if (x.lt.xmax) acosh = alog (x + sqrt(x*x-1.0)) if (x.ge.xmax) acosh = aln2 + alog(x) c return end