4 double precision x(n),enorm
43 double precision agiant,floatn,one,rdwarf,rgiant,s1,s2,s3,xabs,
45 data one,zero,rdwarf,rgiant /1.0d0,0.0d0,3.834d-20,1.304d19/
52 agiant = rgiant/floatn
56 if (xabs .ge. agiant)
then
60 if (xabs .gt. x1max)
then
61 s1 = one + s1*(x1max/xabs)**2
64 s1 = s1 + (xabs/x1max)**2
67 else if (xabs .le. rdwarf)
then
71 if (xabs .gt. x3max)
then
72 s3 = one + s3*(x3max/xabs)**2
75 if (xabs .ne. zero) s3 = s3 + (xabs/x3max)**2
88 if (s1 .ne. zero)
then
89 enorm = x1max*dsqrt(s1+(s2/x1max)/x1max)
91 if (s2 .ne. zero)
then
93 * enorm = dsqrt(s2*(one+(x3max/s2)*(x3max*s3)))
95 * enorm = dsqrt(x3max*((s2/x3max)+(x3max*s3)))
97 enorm = x3max*dsqrt(s3)
double precision function enorm(n, x)