6 & (fa, krep, cdnomc, ktyptr, pslapo, pclopo, &
8 & pcodil, ktronc, knlati, knxlon, knlopa, &
9 & knozpa, psinla, kniver, prefer, pahybr, &
10 & pbhybr, ldmodc, ldredf, kphase, krangc, &
86 INTEGER (KIND=JPLIKB) KTYPTR, KTRONC, KNLATI
87 INTEGER (KIND=JPLIKB) KNXLON, KNIVER, KREP, KPHASE
88 INTEGER (KIND=JPLIKB) KRANGC, KLNOMC, KGARDE
90 INTEGER (KIND=JPLIKB) KNLOPA (fa%jpxpah), KNOZPA (fa%jpxind)
92 REAL (KIND=JPDBLR) PSLAPO, PCLOPO, PSLOPO, PCODIL, PREFER
94 REAL (KIND=JPDBLR) PSINLA (fa%jpxgeo), PAHYBR (0:kniver)
95 REAL (KIND=JPDBLR) PBHYBR (0:kniver)
96 REAL (KIND=JPDBLR),
PARAMETER :: ZEPS=1.e-15_jpdblr
100 LOGICAL LDREDF, LDMODC
102 INTEGER (KIND=JPLIKB) INPAHE
103 INTEGER (KIND=JPLIKB) ILCDNO, J, IPREC, ICOMPT, IMSMAX
104 INTEGER (KIND=JPLIKB) ISFLAM, JL, IK, INIMES, INUMER, ILNOMC
106 INTEGER (KIND=JPLIKB) IESN0 (0:fa%jpxtro)
107 INTEGER (KIND=JPLIKB) IKNTMP(0:fa%jpxtro)
108 INTEGER (KIND=JPLIKB) IKMTMP(0:fa%jpxtro)
109 INTEGER (KIND=JPLIKB) ICPL4N(0:fa%jpxtro)
111 REAL (KIND=JPDBLR) ZMIN, ZPMIN, ZPMAX, ZPMINP, ZPMAXP
114 CHARACTER(LEN=FA%JPXNOM) CLACTI
115 CHARACTER(LEN=FA%JPLMES) CLMESS
116 CHARACTER(LEN=FA%JPLSPX) CLNSPR
123 REAL(KIND=JPRB) :: ZHOOK_HANDLE
131 IF (ktyptr .LE. 0 )
THEN 139 IF (kphase.EQ.2)
THEN 141 ELSEIF (kphase.EQ.3)
THEN 143 ELSEIF (kphase.LT.0.OR.kphase.GT.3)
THEN 152 ilcdno=int(len(cdnomc),
jplikb)
155 IF (ilcdno.LE.0)
THEN 158 ELSEIF (cdnomc.EQ.
' ')
THEN 161 ELSEIF (kgarde.LT.0.OR.kgarde.GT.2)
THEN 168 IF (cdnomc(j:j).NE.
' ')
THEN 177 IF (klnomc.GT.fa%NCPCAD)
THEN 182 IF (ktronc.LE.0.OR.ktronc.GT.fa%NXTRON)
THEN 185 ELSEIF (knlati.LE.0.OR.knlati.GT.fa%NXLATI)
THEN 188 ELSEIF (kniver.LE.0.OR.kniver.GT.fa%NXNIVV)
THEN 191 ELSEIF (knxlon.LE.0.OR.knxlon.GT.fa%NXLONG)
THEN 205 IF (pcodil.LT.1._jpdblr)
THEN 208 ELSEIF (ktyptr.LE.0.OR.ktyptr.GT.fa%NTYPTX)
THEN 211 ELSEIF (max(abs(pslapo),abs(pclopo),abs(pslopo)) &
212 & .GT.1._jpdblr)
THEN 215 ELSEIF (abs(1._jpdblr-(pclopo**2+pslopo**2)) &
216 & .GT.1.e-5_jpdblr)
THEN 219 ELSEIF (2*ktronc+1.GT.knxlon)
THEN 222 ELSEIF (2*ktronc+1.GT.4*(knlati/2))
THEN 232 IF (kphase.EQ.1)
THEN 243 IF (prefer.LT.0._jpdblr.OR. &
253 iprec=max(0_jplikb ,j-1)
254 zmin=min(pahybr(j),pbhybr(j))
255 zpmin=prefer*pahybr(j)+fa%SPSMIN*pbhybr(j)
256 zpmax=prefer*pahybr(j)+fa%SPSMAX*pbhybr(j)
257 zpminp=prefer*pahybr(iprec)+fa%SPSMIN*pbhybr(iprec)
258 zpmaxp=prefer*pahybr(iprec)+fa%SPSMAX*pbhybr(iprec)
260 IF (zmin.LT.0._jpdblr.OR.pbhybr(j).GT.1._jpdblr)
THEN 263 ELSEIF (j.NE.0.AND.(pbhybr(j).LT.pbhybr(iprec).OR. &
264 & zpmin.LE.zpminp.OR.zpmax.LE.zpmaxp))
THEN 272 IF (.NOT.llmlam)
THEN 275 iprec=max(1_jplikb ,j-1)
277 IF (knlopa(j).LE.0.OR.knlopa(j).GT.knxlon)
THEN 280 ELSEIF (knlopa(j).LT.knlopa(iprec))
THEN 283 ELSEIF (knozpa(j).LT.0.OR.knozpa(j).GT.ktronc)
THEN 286 ELSEIF (knozpa(j).LT.knozpa(iprec))
THEN 289 ELSEIF ((2*knozpa(j)+1).GT.knlopa(j))
THEN 292 ELSEIF (abs(psinla(j)).GT.1._jpdblr)
THEN 295 ELSEIF (psinla(j).GE.psinla(iprec).AND.j.NE.1)
THEN 306 IF (abs(knlopa(2)).GT.1)
THEN 309 ELSEIF (knlopa(3).LE.0.OR.knlopa(3).GT.knxlon)
THEN 312 ELSEIF (knlopa(4).LT.knlopa(3).OR.knlopa(4).GT.knxlon)
THEN 315 ELSEIF (knlopa(5).LE.0.OR.knlopa(5).GT.knlati)
THEN 318 ELSEIF (knlopa(6).LE.knlopa(5).OR.knlopa(6).GT.knlati)
THEN 321 ELSEIF (2*knlopa(7).GT.(knlopa(4)-knlopa(3)))
THEN 324 ELSEIF (2*knlopa(8).GT.(knlopa(6)-knlopa(5)))
THEN 331 IF (kphase.EQ.2)
GOTO 1001
341 & (fa, cdnomc,krangc,.false.)
347 IF (fa%NCADEF.GE.fa%JPNXCA)
THEN 360 IF (fa%CADRE(j)%CNOMCA.EQ.
' ')
THEN 374 fa%NCADEF=fa%NCADEF+1
375 fa%NCAIND(fa%NCADEF)=krangc
379 CALL new_cadre (fa%CADRE(krangc), ktyptr, knlati, ktronc, kniver)
381 fa%CADRE(krangc)%CNOMCA=cdnomc
382 fa%CADRE(krangc)%NLCCAD=klnomc
387 fa%CADRE(krangc)%NULCAD=0
388 fa%CADRE(krangc)%NTYPTR=ktyptr
389 fa%CADRE(krangc)%MTRONC=ktronc
390 fa%CADRE(krangc)%NNIVER=kniver
391 fa%CADRE(krangc)%NLATIT=knlati
392 fa%CADRE(krangc)%NXLOPA=knxlon
393 fa%CADRE(krangc)%SSLAPO=pslapo
394 fa%CADRE(krangc)%SCLOPO=pclopo
395 fa%CADRE(krangc)%SSLOPO=pslopo
396 fa%CADRE(krangc)%SCODIL=pcodil
397 fa%CADRE(krangc)%SPREFE=prefer
399 fa%CADRE(krangc)%LIMLAM=llmlam
400 fa%CADRE(krangc)%NSFLAM=0
402 IF (.NOT.ldredf.OR.kgarde.NE.1) fa%CADRE(krangc)%NGARDE=kgarde
404 IF (.NOT.llmlam)
THEN 408 icompt=icompt+knlopa(j)
409 fa%CADRE(krangc)%NLOPAR(j)=knlopa(j)
410 fa%CADRE(krangc)%NOZPAR(j)=knozpa(j)
411 fa%CADRE(krangc)%SINLAT(j)=psinla(j)
414 IF (knlati.EQ.2*inpahe)
THEN 415 fa%CADRE(krangc)%NVAPDG=icompt*2
417 fa%CADRE(krangc)%NVAPDG=icompt*2-knlopa(inpahe)
425 CALL ellips64 (ktronc,imsmax,ikntmp,ikmtmp)
430 fa%CADRE(krangc)%NOMPAR(2) = 0
432 fa%CADRE(krangc)%NOMPAR(2*jl+3) = fa%CADRE(krangc)%NOMPAR(2*jl+2) + 1
433 fa%CADRE(krangc)%NOMPAR(2*jl+4) = fa%CADRE(krangc)%NOMPAR(2*jl+3) &
434 & + 4*(ikntmp(jl)+1) -1
436 fa%CADRE(krangc)%NOMPAR(1) = ktronc
437 fa%CADRE(krangc)%NOMPAR(2) = imsmax
443 isflam = isflam + 4*(ik+1)
449 iesn0(j)=iesn0(j-1)+icpl4n(j-1)
454 fa%CADRE(krangc)%NLOPAR(j)=knlopa(j)
456 fa%CADRE(krangc)%SINLAT = 0._jpdblr
458 fa%CADRE(krangc)%SINLAT(j)=psinla(j)
460 fa%CADRE(krangc)%NOZPAR(1)=ktronc
461 fa%CADRE(krangc)%NOZPAR(2)=imsmax
464 fa%CADRE(krangc)%NOZPAR(2*j+3)=iesn0(j)
465 fa%CADRE(krangc)%NOZPAR(2*j+4)=iesn0(j)+icpl4n(j)-1
468 IF (fa%CADRE(krangc)%NOZPAR(2*ktronc+4).NE. &
469 & fa%CADRE(krangc)%NOMPAR(2*imsmax+4)) &
475 fa%CADRE(krangc)%NSFLAM=isflam
479 fa%CADRE(krangc)%NVAPDG=knlati*knxlon
484 fa%CADRE(krangc)%SFOHYB(1,j)=pahybr(j)
485 fa%CADRE(krangc)%SFOHYB(2,j)=pbhybr(j)
495 IF (fa%CADRE(krangc)%MTRONC.NE.ktronc)
GOTO 505
496 IF (fa%CADRE(krangc)%NNIVER.NE.kniver)
GOTO 505
497 IF (fa%CADRE(krangc)%NLATIT.NE.knlati)
GOTO 505
498 IF (fa%CADRE(krangc)%NXLOPA.NE.knxlon)
GOTO 505
499 IF (fa%CADRE(krangc)%NTYPTR.NE.ktyptr)
GOTO 505
506 IF (.NOT.llmlam)
THEN 508 IF (fa%CADRE(krangc)%NLOPAR(j).NE.knlopa(j))
GOTO 505
509 IF (fa%CADRE(krangc)%NOZPAR(j).NE.knozpa(j))
GOTO 505
510 IF (abs(
REAL (FA%CADRE(KRANGC)%SINLAT(J), JPDBLR) -
REAL (PSINLA(J), JPDBLR))>zeps) goto 505
514 IF (fa%CADRE(krangc)%NLOPAR(j).NE.knlopa(j))
GOTO 505
517 IF (abs(
REAL (FA%CADRE(KRANGC)%SINLAT(J), JPDBLR)-
REAL (PSINLA(J), jpdblr))>zeps) goto 505
522 IF (abs(
REAL (FA%CADRE(KRANGC)%SFOHYB(1,J), JPDBLR)-
REAL (PAHYBR(J), jpdblr))>zeps) goto 505
523 IF (abs(
REAL (FA%CADRE(KRANGC)%SFOHYB(2,J), JPDBLR)-
REAL (PBHYBR(J), jpdblr))>zeps) goto 505
531 IF (kgarde.NE.1) fa%CADRE(krangc)%NGARDE=kgarde
542 IF (kgarde.EQ.1)
THEN 544 ELSEIF (fa%CADRE(krangc)%NULCAD.NE.0)
THEN 557 llfata=krep.NE.0.AND.fa%NRFAGA.NE.2
559 IF (fa%LFAMOP.OR.llfata)
THEN 564 IF (krep.EQ.-65.AND.ilcdno.LE.0)
THEN 566 clacti(1:ilnomc)=fa%CHAINC(:ilnomc)
568 ilnomc=min(klnomc,fa%NCPCAD,int(len(clacti),
jplikb))
569 clacti(1:ilnomc)=cdnomc(1:ilnomc)
572 WRITE (unit=clmess,fmt=
'(''ARGUM.SIMPLES='',I4,'','''''',A, & 573 & '''''''',4('','',F7.4),4('','',I4),'','',F10.3, & 574 & 2('','',L1),2('','',I2),'','',I3,'','',I1)') &
575 & krep,clacti(1:ilnomc),pslapo,pclopo,pslopo,pcodil, &
576 & ktronc,knlati,knxlon,kniver,prefer,ldmodc,ldredf,kphase, &
577 & krangc,klnomc,kgarde
579 & (fa, inumer,inimes,krep,.false.,clmess, &
580 & clnspr,clacti(1:ilnomc),.false.)
581 ELSEIF (ktronc.LE.fa%NSTROI.AND.(kphase.EQ.0.OR.kphase.EQ.1))
THEN 585 ilnomc=min(klnomc,fa%NCPCAD)
586 WRITE (unit=clmess, &
587 & fmt=
'(''TRONCATURE ('',I2,'') INFERIEURE '', & 588 & ''OU EGALE A LA SOUS-TRONCATURE "NON COMPACTEE" IMPLICITE ('',I2, & 589 & ''), CADRE '''''',A,'''''''')') ktronc,fa%NSTROI,cdnomc(1:ilnomc)
591 & (fa, inumer,inimes,krep,.false.,clmess, &
592 & clnspr,clacti,.false.)
integer, parameter jplikb
subroutine facadi_fort(FA, KREP, CDNOMC, KTYPTR, PSLAPO, PCLOPO, PSLOPO, PCODIL, KTRONC, KNLATI, KNXLON, KNLOPA, KNOZPA, PSINLA, KNIVER, PREFER, PAHYBR, PBHYBR, LDMODC, LDREDF, KPHASE, KRANGC, KLNOMC, KGARDE)
integer(kind=jplikb), parameter jnexpl
subroutine fanuca_fort(FA, CDNOMC, KRANGC, LDVERR)
subroutine new_cadre(CA, KTYPTR, KPXLAT, KPXTRO, KPXNIV)
integer, parameter jpdblr
subroutine free_cadre(CA)
integer(kind=jplikb), parameter jngeom
subroutine faipar_fort(FA, KNUMER, KNIMES, KCODE, LDFATA, CDMESS, CDNSPR, CDACTI, LDRLFI)
integer(kind=jplikb), parameter jpniil