4 & (fa, krep, pa, knbit, kdec, ke, knutil)
26 INTEGER (KIND=JPLIKB) KREP, KNBIT, KDEC, KE, KNUTIL
28 REAL (KIND=JPDBLR) ZTWO, ZHALF, ZTEN
35 REAL(KIND=JPRB) :: ZHOOK_HANDLE
43 IF (knbit.LE.0 .OR. knbit.GT.64)
THEN 45 WRITE (unit=fa%NULOUT,fmt=*)
'****' 46 WRITE (unit=fa%NULOUT,fmt=*) &
47 &
'**** FACTEC: ERROR, bits number out of range 1-64' 48 WRITE (unit=fa%NULOUT,fmt=*)
'**** KNBIT = ',knbit
49 WRITE (unit=fa%NULOUT,fmt=*) &
50 &
'**** Binary scale factor is not computed !!' 51 WRITE (unit=fa%NULOUT,fmt=*)
'****' 54 IF ( abs(pa).LT.tiny(pa) )
THEN 55 WRITE (unit=fa%NULOUT,fmt=*)
'----' 56 WRITE (unit=fa%NULOUT,fmt=*) &
57 &
'---- FACTEC: Warning, the range of the field is', &
58 &
' considered as zero' 59 WRITE (unit=fa%NULOUT,fmt=*)
'----' 65 & .GE.
REAL (RANGE(PA), JPDBLR) ) then
67 WRITE (unit=fa%NULOUT,fmt=*)
'****' 68 WRITE (unit=fa%NULOUT,fmt=*) &
69 &
'**** FACTEC: ERROR, PA*10**KDEC exceeds real', &
70 &
'representation of KIND=',
jpdblr 71 WRITE (unit=fa%NULOUT,fmt=*) &
72 &
'**** LOG10(ABS(PA)), KDEC, RANGE(PA) = ', &
73 & log10(abs(pa)), kdec, range(pa)
74 WRITE (unit=fa%NULOUT,fmt=*) &
75 &
'**** Binary scale factor is not computed !!' 76 WRITE (unit=fa%NULOUT,fmt=*)
'****' 84 ke = floor( log( (pa*10._8**kdec) / &
85 & (2._8**knbit-0.5_8) )/log(2._8), &
87 knutil = floor( 0.5_8 + pa*(10._8**kdec)*(2._8**(-ke)), &
subroutine factec_fort(FA, KREP, PA, KNBIT, KDEC, KE, KNUTIL)
integer, parameter jplikb
integer, parameter jpdblr