4 & (fa, krep, pa, pmin, knbit, kdec)
29 REAL (KIND=JPDBLR) PA, PMIN
30 INTEGER (KIND=JPLIKB) KREP, KNBIT, KDEC
32 REAL (KIND=JPDBLR) XNBINT, XTINYR4, XHUGER4
33 INTEGER (KIND=JPLIKB) IDECMIN, IDECMAX, INBINT
34 INTEGER (KIND=JPLIKB) JDEC, IE, INUTIL, INUMAX, IEMAX
35 INTEGER (KIND=JPLIKB) INU0, IE0
42 REAL(KIND=JPRB) :: ZHOOK_HANDLE
44 IF (knbit.LE.0 .OR. knbit.GT.64)
THEN 46 WRITE (unit=fa%NULOUT,fmt=*)
'****' 47 WRITE (unit=fa%NULOUT,fmt=*) &
48 &
'**** FACDEC: ERROR, bits number out of range 1-64' 49 WRITE (unit=fa%NULOUT,fmt=*)
'**** KNBIT = ',knbit
50 WRITE (unit=fa%NULOUT,fmt=*) &
51 &
'**** ! Optimal decimal scale factor is not computed !' 52 WRITE (unit=fa%NULOUT,fmt=*)
'****' 55 IF (abs(pa) .LT. tiny(pa))
THEN 59 WRITE (unit=fa%NULOUT,fmt=*)
'////' 60 WRITE (unit=fa%NULOUT,fmt=*) &
61 &
'//// FACDEC: WARNING, range of the field is null :', &
63 WRITE (unit=fa%NULOUT,fmt=*)
'////' 79 & (fa, krep, pa, knbit, jdec, ie0, inu0)
86 DO jdec = idecmin, idecmax
92 IF (pa * 10._jpdblr**jdec .LE. 1.e-11_jpdblr) cycle
95 IF (abs(pmin) .GT. tiny(pmin))
THEN 96 IF (log10(abs(pmin))+
REAL (JDEC, JPDBLR) .LE. LOG10( xtinyr4 ) ) cycle
103 IF (abs(log10(abs(pa))+
real(jdec,
jpdblr)) .GE.
REAL (RANGE(PA), JPDBLR)) cycle
106 & (fa, krep, pa, knbit, jdec, ie, inutil)
110 IF (pmin*10._jpdblr**jdec + xnbint*2._jpdblr**ie .GE. xhuger4) cycle
113 IF (ie.LT.-126 .OR. ie.GT.127) cycle
115 IF (inutil.GT.inumax)
THEN 122 IF (inumax.EQ.0)
THEN 124 WRITE (unit=fa%NULOUT,fmt=*)
'****' 125 WRITE (unit=fa%NULOUT,fmt=*) &
126 &
'**** FACDEC: all the decimal factors comprised between' 127 WRITE (unit=fa%NULOUT,fmt=*) &
128 &
'**** ',idecmin,
' and ',idecmax,
' are rejected !!' 129 WRITE (unit=fa%NULOUT,fmt=*) &
130 &
'**** Range and min of the field are :', pa, pmin
131 WRITE (unit=fa%NULOUT,fmt=*) &
133 WRITE (unit=fa%NULOUT,fmt=*)
'****' 137 WRITE (unit=fa%NULOUT,fmt=*) &
138 &
'FACDEC: champ d''amplitude ',pa,
' ,de minimum ',pmin
139 WRITE (unit=fa%NULOUT,fmt=*) &
140 &
' => fact decimal opt de',kdec, &
141 &
' ,pour 1 fact binaire de ',iemax
142 WRITE (unit=fa%NULOUT,fmt=
'(1X,A,I3,A,I9,A,I9,A,F5.1,A,E11.4)') &
144 & knbit,
' bits = ',inumax,
' sur ',inbint,
' soit: ', &
145 &
real(inumax, jpdblr)*100._jpdblr/xnbint, &
146 &
' % et une precision de ', &
147 & 10._jpdblr**(-kdec)*2._jpdblr**(iemax-1)
148 WRITE (unit=fa%NULOUT,fmt=*) &
149 &
' a comparer, si le fact decimal = 0, avec' 150 WRITE (unit=fa%NULOUT,fmt=
'(1X,A,I9,A,I9,A,F5.1,A,E11.4)') &
151 &
' une efficacite de ', &
152 & inu0,
' sur ',inbint,
' soit: ', &
153 &
real(inu0, jpdblr)*100._jpdblr/xnbint, &
154 &
' % et une precision de ',2._jpdblr**(ie0-1)
166 & (krep, pa, pmin, knbit, kdec)
173 INTEGER (KIND=JPLIKB) KREP
174 REAL (KIND=JPDBLR) PA
175 REAL (KIND=JPDBLR) PMIN
176 INTEGER (KIND=JPLIKB) KNBIT
177 INTEGER (KIND=JPLIKB) KDEC
182 & (fa, krep, pa, pmin, knbit, kdec)
187 & (krep, pa, pmin, knbit, kdec)
194 INTEGER (KIND=JPLIKM) KREP
195 REAL (KIND=JPDBLR) PA
196 REAL (KIND=JPDBLR) PMIN
197 INTEGER (KIND=JPLIKM) KNBIT
198 INTEGER (KIND=JPLIKM) KDEC
203 & (fa, krep, pa, pmin, knbit, kdec)
208 & (fa, krep, pa, pmin, knbit, kdec)
214 INTEGER (KIND=JPLIKM) KREP
215 REAL (KIND=JPDBLR) PA
216 REAL (KIND=JPDBLR) PMIN
217 INTEGER (KIND=JPLIKM) KNBIT
218 INTEGER (KIND=JPLIKM) KDEC
220 INTEGER (KIND=JPLIKB) IREP
221 INTEGER (KIND=JPLIKB) INBIT
222 INTEGER (KIND=JPLIKB) IDEC
225 inbit = int( knbit,
jplikb)
228 & (fa, irep, pa, pmin, inbit, idec)
subroutine factec_fort(FA, KREP, PA, KNBIT, KDEC, KE, KNUTIL)
subroutine facdec(KREP, PA, PMIN, KNBIT, KDEC)
integer, parameter jplikb
subroutine facdec_fort(FA, KREP, PA, PMIN, KNBIT, KDEC)
subroutine facdec64(KREP, PA, PMIN, KNBIT, KDEC)
logical, save fa_com_default_init
subroutine new_fa_default()
subroutine facdec_mt(FA, KREP, PA, PMIN, KNBIT, KDEC)
integer, parameter jpdblr
integer, parameter jplikm
type(fa_com), target, save fa_com_default