65 INTEGER(KIND=JPIM) :: ILWA (2*
nprgpew)
66 INTEGER(KIND=JPIM) :: ILWB (2*
nprgpew)
67 INTEGER(KIND=JPIM) :: ILWBI(2*
nprgpew)
68 INTEGER(KIND=JPIM) :: ILEA (2*
nprgpew)
69 INTEGER(KIND=JPIM) :: ILEB (2*
nprgpew)
70 INTEGER(KIND=JPIM) :: ILEBI(2*
nprgpew)
73 CHARACTER (LEN = 14) :: CLDBG
75 INTEGER(KIND=JPIM) :: IAO, IAOFF, IB, IB1, IB2, IB3, IB4, IB5,&
76 & IB6, ICNEED, ICTAKE, IGL, IJBXBOFF, &
77 & IJBXSETA, ILE, ILONS, ILW, IMAX, IMAXC, &
78 & IMAXT, IOTHBOFF, IOTHSETA, IPROCB, IRINT, &
79 & IU, IUNIT, JA, JB, JBE, JBW, JBX, JF, JGL, &
82 LOGICAL :: LLMYSETAISWEST, LLP
83 REAL(KIND=JPRB) :: ZHOOK_HANDLE
85 #include "abor1.intfb.h"
121 9
FORMAT(1
x,
'ARRAY ',a10,
' ALLOCATED ',8i8)
166 ista(jgl,jb)=
nsta(igl,jb)
167 ionl(jgl,jb)=
nonl(igl,jb)
171 llmysetaiswest=.
false.
174 llmysetaiswest=.
true.
177 IF( llmysetaiswest )
THEN
192 llmysetaiswest=.
false.
195 llmysetaiswest=.
true.
198 IF( llmysetaiswest )
THEN
214 imaxc=imaxc+(1-mod(imaxc,2))
219 OPEN(
unit=iunit,file=cldbg)
221 WRITE(iunit,
'("SUECRADI: NDGSAL=",I4," NDGENL=",I4)')
ndgsal,
ndgenl
222 WRITE(iunit,
'("SUECRADI: ")')
236 IF( mod(ilons,jf) == 0.AND.ilons/jf <= imaxc )
THEN
244 WRITE(iunit,
'("SUECRADI: JGLGLO=",I4," JGL=",I4,&
245 & " NLOENG=",I4," NRIRINT=",I1," LSPLITLAT=",L2)')&
256 IF( ionl(jgl,jb) == 0 ) cycle
257 nrfrstoff(jgl,jb)=mod(irint-mod(ista(jgl,jb)-1,irint),irint)
259 & mod(irint-mod(ista(jgl,jb)+ionl(jgl,jb)-2,irint),&
262 DO jl=1+
nrfrstoff(jgl,jb),ionl(jgl,jb),irint
277 WRITE(iunit,
'("SUECRADI: JB=",I4," ISTA=",I4,&
278 & " IONL=",I4," NRFRSTOFF=",I1," NRIMAX=",I3,&
279 & " NRLASTOFF=",I1," CNEEDW=",I1," CNEEDE=",I1)')&
280 & jb,ista(jgl,jb),ionl(jgl,jb),
nrfrstoff(jgl,jb),&
287 WRITE(iunit,
'("SUECRADI: ")')
296 WRITE(iunit,
'("SUECRADI: NRIMAXT=",I6)')
nrimaxt
343 IF( ista(jgl,jb) == 1 )
THEN
377 IF( ionl(jgl,jb) > 0 )
THEN
380 ilwb(ilw)=jb-ijbxboff
385 IF( ionl(jgl,jb) > 0 )
THEN
388 ilwb(ilw)=jb-iothboff
393 IF( ionl(jgl,jb) > 0 )
THEN
396 ilwb(ilw)=jb-ijbxboff
417 IF( ionl(jgl,jb) > 0 )
THEN
420 ileb(ile)=jb-ijbxboff
425 IF( ionl(jgl,jb) > 0 )
THEN
428 ileb(ile)=jb-iothboff
433 IF( ionl(jgl,jb) > 0 )
THEN
436 ileb(ile)=jb-ijbxboff
444 IF( ionl(jgl,jb) > 0 )
THEN
452 IF( ionl(jgl,jb) > 0 )
THEN
461 IF( ionl(jgl,jb) > 0 )
THEN
469 IF( ionl(jgl,jb) > 0 )
THEN
478 WRITE(nulout,.OR.
'("SUECRAD: ILW > 2*NPRGPEW ",&
479 & "ILE > 2*NPRGPEW, ILW=",I6," ILE=",I6)') ilw,ile
480 CALL abor1(
'SUECRADI:ILW/E > 2*NPRGPEW')
494 IF( icneed == 0 )
EXIT
498 IF(
nrimax(jgl,ilwbi(jbw)) > 0 )
THEN
503 IF(
nrimax(jgl,ilwbi(jbw)) >= icneed )
THEN
506 ictake=
nrimax(jgl,ilwbi(jbw))
535 IF( icneed == 0 )
EXIT
539 IF(
nrimax(jgl,ilebi(jbe)) > 0 )
THEN
544 IF(
nrimax(jgl,ilebi(jbe)) >= icneed )
THEN
547 ictake=
nrimax(jgl,ilebi(jbe))
585 WRITE(iunit,
'("SUECRADI: ")')
588 WRITE(iunit,
'("SUECRADI: SETA=",I4," SETB=",I4,&
589 & " NRCSNDT=",I6," NRCRCVT=",I6)')&
595 WRITE(iunit,
'("SUECRADI: ")')
598 WRITE(iunit,
'("SUECRADI: ")')
602 IF(
nrcsndw(jgl,jb,ja) > 0.OR.&
606 WRITE(iunit,
'("SUECRADI: JGLGLO=",I4," JGL=",I4,&
607 & " SETA=",I4," SETB=",I4,&
608 & " CSNDW=",I6," CSNDE=",I6,&
609 & " CRCVW=",I6," CRCVE=",I6,&
610 & " CRCVWO=",I1," CRCVEO=",I1)')&
integer(kind=jpim), dimension(:,:,:), allocatable nrcsndw
integer(kind=jpim), dimension(:,:), allocatable nrcneedw
integer(kind=jpim), dimension(:,:), allocatable nrcrcvt
integer(kind=jpim), dimension(:), allocatable, target nloeng
integer(kind=jpim), dimension(:), allocatable, target nlstlat
integer(kind=jpim) nrimaxt
integer(kind=jpim), dimension(:,:,:), allocatable nrcrcveo
integer(kind=jpim) ndgsal
logical, dimension(:), allocatable lsplitlat
integer(kind=jpim), dimension(:,:), allocatable nrlastoff
!$Id itapm1 ENDIF!IM on interpole les champs sur les niveaux STD de pression!IM a chaque pas de temps de la physique c!positionnement de l argument logique a false c!pour ne pas recalculer deux fois la meme chose!c!a cet effet un appel a plevel_new a ete deplace c!a la fin de la serie d appels c!la boucle DO nlevSTD a ete internalisee c!dans d ou la creation de cette routine c c!CALL false
integer(kind=jpim), dimension(:,:), allocatable nrcneede
integer(kind=jpim) nprgpew
integer(kind=jpim), dimension(:,:,:), allocatable nrcsnde
integer(kind=jpim) nprintlev
integer(kind=jpim), dimension(:,:,:), allocatable nrcrcvw
integer(kind=jpim) ndgenl
integer(kind=jpim), parameter jpradce
!$Header!c c INCLUDE fxyprim h c c c Fonctions in line c c REAL fyprim REAL rj c c il faut la calculer avant d appeler ces fonctions c c c Fonctions a changer selon x(x) et y(y) choisis.c-----------------------------------------------------------------c c.....ici
integer(kind=jpim) my_region_ns
!$Id itapm1 ENDIF!IM on interpole les champs sur les niveaux STD de pression!IM a chaque pas de temps de la physique c!positionnement de l argument logique a false c!pour ne pas recalculer deux fois la meme chose!c!a cet effet un appel a plevel_new a ete deplace c!a la fin de la serie d appels c!la boucle DO nlevSTD a ete internalisee c!dans d ou la creation de cette routine c c!CALL ulevSTD CALL &zphi philevSTD CALL &zx_rh rhlevSTD!DO klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon du jour ou toutes les read_climoz CALL true
integer(kind=jpim), dimension(:,:), allocatable, target nsta
integer(kind=jpim), dimension(:), allocatable nptrlstlat
integer(kind=jpim), dimension(:,:), allocatable, target nonl
integer(kind=jpim), parameter jpradcw
integer(kind=jpim), dimension(:,:,:), allocatable nrcrcve
subroutine dr_hook(CDNAME, KSWITCH, PKEY)
integer(kind=jpim) ndgsag
integer(kind=jpim), dimension(:), allocatable, target nptrfrstlat
integer(kind=jpim) my_region_ew
integer(kind=jpim) ndgeng
integer(kind=jpim), dimension(:), allocatable, target nfrstlat
!$Header!integer nvarmx s s unit
integer(kind=jpim), dimension(:,:), allocatable nrimax
integer(kind=jpim), dimension(:,:,:), allocatable nrcrcvwo
integer(kind=jpim), dimension(:,:), allocatable nrcsndt
integer(kind=jpim), dimension(:), allocatable nrirint
integer(kind=jpim), dimension(:,:), allocatable nrfrstoff