22 INTEGER (KIND=JPLIKB) KREP, KRANGC
24 REAL (KIND=JPDBLR) :: ZPI, ZRAMDE, ZLATPRE, &
25 & ZLATDER, ZLONPRE, ZLONDER
26 REAL (KIND=JPDBLR),
PARAMETER :: ONE = 1.0_jpdblr
28 INTEGER (KIND=JPLIKB) INLAT, INIVAU, INUMER, INIMES
32 CHARACTER(LEN=FA%JPLMES) CLMESS
33 CHARACTER(LEN=FA%JPLSPX) CLNSPR
39 REAL(KIND=JPRB) :: ZHOOK_HANDLE
42 IF (krangc.LE.0.OR.krangc.GT.fa%JPNXCA)
THEN 46 inlat = fa%CADRE(krangc)%NLATIT
47 inivau = fa%CADRE(krangc)%NNIVER
48 llmlam = fa%CADRE(krangc)%LIMLAM
49 zpi = 2._jpdblr*asin(1._jpdblr)
51 zramde = 180000._jpdblr/zpi
63 IF ((1._jpdblr-fa%CADRE(krangc)%SSLAPO).LE.1.e-10_jpdblr)
THEN 64 fa%CADRE(krangc)%NSEC2SP(1)=70
65 IF (abs(fa%CADRE(krangc)%SCODIL-1._jpdblr).LE.1.e-10_jpdblr)
THEN 66 fa%CADRE(krangc)%NSEC2SP(1)=50
69 fa%CADRE(krangc)%NSEC2SP(1)=80
70 IF (abs(fa%CADRE(krangc)%SCODIL-1._jpdblr).LE.1.e-10_jpdblr)
THEN 71 fa%CADRE(krangc)%NSEC2SP(1)=60
75 fa%CADRE(krangc)%NSEC2SP(2) =fa%CADRE(krangc)%MTRONC
76 fa%CADRE(krangc)%NSEC2SP(3) =fa%CADRE(krangc)%MTRONC
77 fa%CADRE(krangc)%NSEC2SP(4) =fa%CADRE(krangc)%MTRONC
79 fa%CADRE(krangc)%NSEC2SP(5) =1
81 fa%CADRE(krangc)%NSEC2SP(6) =2
83 fa%CADRE(krangc)%NSEC2SP(7:11)=0
88 fa%CADRE(krangc)%NSEC2SP(12)=2*(inivau+1)
90 fa%CADRE(krangc)%NSEC2SP(13)=0
92 fa%CADRE(krangc)%NSEC2SP(14)=0
94 IF (fa%CADRE(krangc)%NTYPTR.GE.2)
THEN 95 fa%CADRE(krangc)%NSEC2SP(15)=int(zramde*asin(fa%CADRE(krangc)%SSLAPO), &
97 fa%CADRE(krangc)%NSEC2SP(16)=int(zramde* &
98 & (sign(one,fa%CADRE(krangc)%SSLOPO)*acos(fa%CADRE(krangc)%SCLOPO)), &
101 fa%CADRE(krangc)%NSEC2SP(15)=0
102 fa%CADRE(krangc)%NSEC2SP(16)=0
105 fa%CADRE(krangc)%NSEC2SP(17:22)=0
115 IF ((1._jpdblr-fa%CADRE(krangc)%SSLAPO).LE.1.e-10_jpdblr)
THEN 116 fa%CADRE(krangc)%NSEC2GG(1)=24
117 IF (abs(fa%CADRE(krangc)%SCODIL-1._jpdblr).LE.1.e-10_jpdblr)
THEN 118 fa%CADRE(krangc)%NSEC2GG(1)=4
121 fa%CADRE(krangc)%NSEC2GG(1)=34
122 IF (abs(fa%CADRE(krangc)%SCODIL-1._jpdblr).LE.1.e-10_jpdblr)
THEN 123 fa%CADRE(krangc)%NSEC2GG(1)=14
127 fa%CADRE(krangc)%NSEC2GG(2)=fa%CADRE(krangc)%NXLOPA
129 fa%CADRE(krangc)%NSEC2GG(3)=inlat
130 zlatpre=asin(max(-1._jpdblr,min(1._jpdblr,fa%CADRE(krangc)%SINLAT(1))))
132 fa%CADRE(krangc)%NSEC2GG(4)=int(zramde*zlatpre,
jplikb)
134 fa%CADRE(krangc)%NSEC2GG(5)=0
136 fa%CADRE(krangc)%NSEC2GG(6)=0
138 fa%CADRE(krangc)%NSEC2GG(7)=-fa%CADRE(krangc)%NSEC2GG(4)
141 fa%CADRE(krangc)%NSEC2GG(8)=-360000/fa%CADRE(krangc)%NLOPAR(1)
144 fa%CADRE(krangc)%NSEC2GG(9)=0
146 fa%CADRE(krangc)%NSEC2GG(10)=(inlat+1)/2
148 fa%CADRE(krangc)%NSEC2GG(11)=0
150 fa%CADRE(krangc)%NSEC2GG(12)=0
152 fa%CADRE(krangc)%NSEC2GG(13)=0
154 fa%CADRE(krangc)%NSEC2GG(14)=0
156 IF (fa%CADRE(krangc)%NTYPTR.GE.2)
THEN 157 fa%CADRE(krangc)%NSEC2GG(15)=int(zramde*asin(fa%CADRE(krangc)%SSLAPO), &
159 fa%CADRE(krangc)%NSEC2GG(16)=int(zramde* &
160 & (sign(one,fa%CADRE(krangc)%SSLOPO)*acos(fa%CADRE(krangc)%SCLOPO)), &
163 fa%CADRE(krangc)%NSEC2GG(15)=0
164 fa%CADRE(krangc)%NSEC2GG(16)=0
167 IF (fa%CADRE(krangc)%NLOPAR(1)==fa%CADRE(krangc)%NLOPAR((1+inlat)/2))
THEN 168 fa%CADRE(krangc)%NSEC2GG(17)=0
170 fa%CADRE(krangc)%NSEC2GG(17)=1
173 fa%CADRE(krangc)%NSEC2GG(18)=0
175 fa%CADRE(krangc)%NSEC2GG(19)=0
177 fa%CADRE(krangc)%NSEC2GG(20:22)=0
179 fa%CADRE(krangc)%NSEC2GG(23:22+(1+inlat)/2)= &
180 & fa%CADRE(krangc)%NLOPAR(1:(1+inlat)/2)
181 fa%CADRE(krangc)%NSEC2GG(23-mod(inlat,2_jplikb )+(1+inlat)/2:22+inlat)= &
182 & fa%CADRE(krangc)%NLOPAR((1+inlat)/2:1:-1)
190 IF (fa%CADRE(krangc)%SINLAT(1) .GE. 0)
THEN 192 zlatpre=fa%CADRE(krangc)%SINLAT(7)
193 zlonpre=fa%CADRE(krangc)%SINLAT(4)
194 zlatder=fa%CADRE(krangc)%SINLAT(5)
195 zlonder=fa%CADRE(krangc)%SINLAT(6)
199 zlatpre=fa%CADRE(krangc)%SINLAT(16)
200 zlonpre=fa%CADRE(krangc)%SINLAT(13)
201 zlatder=fa%CADRE(krangc)%SINLAT(14)
202 zlonder=fa%CADRE(krangc)%SINLAT(15)
206 fa%CADRE(krangc)%NSEC2LL(1)=0
208 fa%CADRE(krangc)%NSEC2LL(2)=fa%CADRE(krangc)%NXLOPA
210 fa%CADRE(krangc)%NSEC2LL(3)=inlat
212 fa%CADRE(krangc)%NSEC2LL(4)=nint(zramde*zlatpre,kind=
jplikb)
214 fa%CADRE(krangc)%NSEC2LL(5)=nint(zramde*zlonpre,kind=
jplikb)
216 CALL lon360000 (fa%CADRE(krangc)%NSEC2LL(5))
218 fa%CADRE(krangc)%NSEC2LL(6)=128
220 fa%CADRE(krangc)%NSEC2LL(7)=nint(zramde*zlatder,kind=
jplikb)
222 fa%CADRE(krangc)%NSEC2LL(8)=nint(zramde*zlonder,kind=
jplikb)
223 CALL lon360000 (fa%CADRE(krangc)%NSEC2LL(8))
225 IF (zlonpre.GT.zlonder)
THEN 226 fa%CADRE(krangc)%NSEC2LL(9)= &
227 & nint((zlonder+2._jpdblr*zpi-zlonpre)*zramde &
228 & /(fa%CADRE(krangc)%NXLOPA-1), &
231 fa%CADRE(krangc)%NSEC2LL(9)= &
232 & nint((zlonder-zlonpre)*zramde/(fa%CADRE(krangc)%NXLOPA-1), &
236 fa%CADRE(krangc)%NSEC2LL(10)= &
237 & nint((zlatpre-zlatder)*zramde/(inlat-1), &
244 fa%CADRE(krangc)%NSEC2LL(11)=0
246 fa%CADRE(krangc)%NSEC2LL(12)=0
248 fa%CADRE(krangc)%NSEC2LL(13)=0
250 fa%CADRE(krangc)%NSEC2LL(14)=0
252 fa%CADRE(krangc)%NSEC2LL(15)=0
253 fa%CADRE(krangc)%NSEC2LL(16)=0
255 fa%CADRE(krangc)%NSEC2LL(17)=0
257 fa%CADRE(krangc)%NSEC2LL(18)=0
259 fa%CADRE(krangc)%NSEC2LL(19)=0
261 fa%CADRE(krangc)%NSEC2LL(20:22)=0
275 fa%CADRE(krangc)%NSEC2AL(1)=0
277 fa%CADRE(krangc)%NSEC2AL(2)=2**16 -1
281 fa%CADRE(krangc)%NSEC2AL(3)=(fa%CADRE(krangc)%NOZPAR(6)- &
282 & fa%CADRE(krangc)%NOZPAR(5)+1)/4 -1
284 fa%CADRE(krangc)%NSEC2AL(4)=0
286 fa%CADRE(krangc)%NSEC2AL(5)=0
288 fa%CADRE(krangc)%NSEC2AL(6)=0
290 fa%CADRE(krangc)%NSEC2AL(7)=40000
292 fa%CADRE(krangc)%NSEC2AL(8)=40000
294 fa%CADRE(krangc)%NSEC2AL(9)=2**16 -1
296 fa%CADRE(krangc)%NSEC2AL(10)=(fa%CADRE(krangc)%NSEC2AL(7)-fa%CADRE(krangc)%NSEC2AL(4))/ &
297 & (fa%CADRE(krangc)%NSEC2AL(3)-1)
299 fa%CADRE(krangc)%NSEC2AL(11)=0
301 fa%CADRE(krangc)%NSEC2AL(12)=0
303 fa%CADRE(krangc)%NSEC2AL(13)=0
305 fa%CADRE(krangc)%NSEC2AL(14)=0
307 fa%CADRE(krangc)%NSEC2AL(15)=0
308 fa%CADRE(krangc)%NSEC2AL(16)=0
310 fa%CADRE(krangc)%NSEC2AL(17)=1
312 fa%CADRE(krangc)%NSEC2AL(18)=0
314 fa%CADRE(krangc)%NSEC2AL(19)=0
316 fa%CADRE(krangc)%NSEC2AL(20:22)=0
330 fa%CADRE(krangc)%NSEC2LA(1)=3
332 fa%CADRE(krangc)%NSEC2LA(2)=fa%CADRE(krangc)%NXLOPA
334 fa%CADRE(krangc)%NSEC2LA(3)=inlat
338 fa%CADRE(krangc)%NSEC2LA(6)=128
340 fa%CADRE(krangc)%NSEC2LA(8)=0
342 fa%CADRE(krangc)%NSEC2LA(11)=64
344 fa%CADRE(krangc)%NSEC2LA(12)=0
346 fa%CADRE(krangc)%NSEC2LA(4)=nint(zramde*zlatpre,kind=
jplikb)
348 fa%CADRE(krangc)%NSEC2LA(5)=nint(zramde*zlonpre,kind=
jplikb)
350 CALL lon360000 (fa%CADRE(krangc)%NSEC2LA(5))
353 IF (fa%CADRE(krangc)%SINLAT(1) .GE. 0)
THEN 356 fa%CADRE(krangc)%NSEC2LA(7)=nint(zramde*fa%CADRE(krangc)%SINLAT(8), &
359 CALL lon360000 (fa%CADRE(krangc)%NSEC2LA(7))
361 fa%CADRE(krangc)%NSEC2LA(9)=nint(fa%CADRE(krangc)%SINLAT(15),kind=
jplikb)
363 fa%CADRE(krangc)%NSEC2LA(10)=nint(fa%CADRE(krangc)%SINLAT(16),kind=
jplikb)
368 IF (fa%CADRE(krangc)%SINLAT(9).GE.0)
THEN 369 fa%CADRE(krangc)%NSEC2LA(13)=0
371 fa%CADRE(krangc)%NSEC2LA(13)=128
374 fa%CADRE(krangc)%NSEC2LA(14)=nint(zramde*fa%CADRE(krangc)%SINLAT(9), &
382 fa%CADRE(krangc)%NSEC2LA(15)=fa%CADRE(krangc)%NSEC2LA(14)
383 IF (abs(fa%CADRE(krangc)%SINLAT(10)-sin(fa%CADRE(krangc)%SINLAT(9))) &
384 & .GT.1.e-10_jpdblr .AND. fa%LFAMOP)
THEN 385 WRITE (unit=fa%NULOUT,fmt=*) &
386 &
' FAISC2: WARNING !! La grille Lambert coupe en fait', &
387 &
' la sphere, mais sera consideree comme tangente' 392 fa%CADRE(krangc)%NSEC2LA(7)=nint(zramde*fa%CADRE(krangc)%SINLAT(3), &
395 CALL lon360000 (fa%CADRE(krangc)%NSEC2LA(7))
397 fa%CADRE(krangc)%NSEC2LA(9)=nint(fa%CADRE(krangc)%SINLAT(7),kind=
jplikb)
399 fa%CADRE(krangc)%NSEC2LA(10)=nint(fa%CADRE(krangc)%SINLAT(8),kind=
jplikb)
404 IF (fa%CADRE(krangc)%SINLAT(4).GE.0)
THEN 405 fa%CADRE(krangc)%NSEC2LA(13)=0
407 fa%CADRE(krangc)%NSEC2LA(13)=128
410 fa%CADRE(krangc)%NSEC2LA(14)=nint(zramde*fa%CADRE(krangc)%SINLAT(4), &
413 fa%CADRE(krangc)%NSEC2LA(15)=fa%CADRE(krangc)%NSEC2LA(14)
417 fa%CADRE(krangc)%NSEC2LA(16)=0
419 fa%CADRE(krangc)%NSEC2LA(17)=0
421 fa%CADRE(krangc)%NSEC2LA(18)=0
423 fa%CADRE(krangc)%NSEC2LA(19)=8
425 fa%CADRE(krangc)%NSEC2LA(20)=0
427 fa%CADRE(krangc)%NSEC2LA(21)=0
429 fa%CADRE(krangc)%NSEC2LA(22)=0
436 fa%CADRE(krangc)%XSEC2(1)=0._jpdblr
438 fa%CADRE(krangc)%XSEC2(2)=fa%CADRE(krangc)%SCODIL
440 fa%CADRE(krangc)%XSEC2(3:10)=0._jpdblr
442 fa%CADRE(krangc)%XSEC2(11:11+inivau)=fa%CADRE(krangc)%SFOHYB(1,0:inivau)* &
443 & fa%CADRE(krangc)%SPREFE
444 fa%CADRE(krangc)%XSEC2(12+inivau:12+2*inivau)= &
445 & fa%CADRE(krangc)%SFOHYB(2,0:inivau)
453 IF (fa%LFAMOP.OR.krep.NE.0)
THEN 458 WRITE (unit=clmess,fmt=
'(''KREP='',I4,'', KRANGC='',I4)') &
461 & (fa, inumer,inimes,krep,.false.,clmess, &
462 & clnspr,clnspr,.false.)
472 INTEGER (KIND=JPLIKB) :: KLON
474 klon = modulo(klon, 360000_jplikb)
491 INTEGER (KIND=JPLIKB) KREP
492 INTEGER (KIND=JPLIKB) KRANGC
509 INTEGER (KIND=JPLIKM) KREP
510 INTEGER (KIND=JPLIKM) KRANGC
526 INTEGER (KIND=JPLIKM) KREP
527 INTEGER (KIND=JPLIKM) KRANGC
529 INTEGER (KIND=JPLIKB) IREP
530 INTEGER (KIND=JPLIKB) IRANGC
533 irangc = int( krangc,
jplikb)
integer, parameter jplikb
logical, save fa_com_default_init
subroutine faisc264(KREP, KRANGC)
subroutine new_fa_default()
subroutine lon360000(KLON)
subroutine faisc2(KREP, KRANGC)
subroutine faisc2_mt(FA, KREP, KRANGC)
integer, parameter jplikm
type(fa_com), target, save fa_com_default
subroutine faisc2_fort(FA, KREP, KRANGC)
subroutine faipar_fort(FA, KNUMER, KNIMES, KCODE, LDFATA, CDMESS, CDNSPR, CDACTI, LDRLFI)
integer(kind=jplikb), parameter jpniil