Ignore:
Timestamp:
Jul 19, 2024, 11:28:59 AM (2 months ago)
Author:
abarral
Message:

[coherence with Fortran standards]
Replace obsolete DO with shared termination
(minor) replace obsolete bool operators

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/trunk/libf/dyn3d_common/advyp.F

    r2600 r5079  
    153153C-AA 20/10/94  le signe -1 est necessaire car indexation opposee
    154154
    155       DO 500 l = 1,llm
    156          DO 500 j = 1,jjm
    157             DO 500 i = 1,iip1 
     155      DO l = 1,llm
     156         DO j = 1,jjm
     157            DO i = 1,iip1
    158158            vgri (i,j,llm+1-l)=-1.*pbarv (i,j,l)
    159   500 CONTINUE
     159      END DO
     160      END DO
     161      END DO
    160162
    161163CAA Initialisation de flux fictifs aux bords sup. des boites pol.
     
    171173C  boucle sur les niveaux
    172174C
    173       DO 1 L=1,NIV
     175      DO L=1,NIV
    174176C
    175177C  place limits on appropriate moments before transport
     
    178180      IF(.NOT.LIMIT) GO TO 11
    179181C
    180       DO 10 JV=1,NTRA
    181       DO 10 K=1,LAT
    182       DO 100 I=1,LON
    183          IF(S0(I,K,L,JV).GT.0.) THEN
     182      DO JV=1,NTRA
     183      DO K=1,LAT
     184      DO I=1,LON
     185         IF(S0(I,K,L,JV)>0.) THEN
    184186           SLPMAX=AMAX1(S0(I,K,L,JV),0.)
    185187           S1MAX=1.5*SLPMAX
     
    197199           SYZ(I,K,L,JV)=0.
    198200         ENDIF
    199  100  CONTINUE
    200  10   CONTINUE
     201      END DO
     202      END DO
     203      END DO
    201204C
    202205 11   CONTINUE
     
    205208C
    206209      SM0=0.
    207       DO 20 JV=1,NTRA
     210      DO JV=1,NTRA
    208211         S00(JV)=0.
    209  20   CONTINUE
    210 C
    211       DO 21 I=1,LON
    212 C
    213          IF(VGRI(I,0,L).LE.0.) THEN
     212      END DO
     213C
     214      DO I=1,LON
     215C
     216         IF(VGRI(I,0,L)<=0.) THEN
    214217           FM(I,0)=-VGRI(I,0,L)*DTY
    215218           ALF(I,0)=FM(I,0)/SM(I,1,L)
     
    225228         ALF4(I,0)=ALF1(I,0)*ALF1Q(I,0)
    226229C
    227  21   CONTINUE
     230      END DO
    228231c     print*,'ADVYP 21'
    229232C
    230       DO 22 JV=1,NTRA
    231       DO 220 I=1,LON
    232 C
    233          IF(VGRI(I,0,L).LE.0.) THEN
     233      DO JV=1,NTRA
     234      DO I=1,LON
     235C
     236         IF(VGRI(I,0,L)<=0.) THEN
    234237C
    235238           F0(I,0,JV)=ALF(I,0)* ( S0(I,1,L,JV)-ALF1(I,0)*
     
    253256         ENDIF
    254257C
    255  220  CONTINUE
    256  22   CONTINUE
    257 C
    258       DO 23 I=1,LON
    259          IF(VGRI(I,0,L).GT.0.) THEN
     258      END DO
     259      END DO
     260C
     261      DO I=1,LON
     262         IF(VGRI(I,0,L)>0.) THEN
    260263           FM(I,0)=VGRI(I,0,L)*DTY
    261264           ALF(I,0)=FM(I,0)/SM0
    262265         ENDIF
    263  23   CONTINUE
    264 C
    265       DO 24 JV=1,NTRA
    266       DO 240 I=1,LON
    267          IF(VGRI(I,0,L).GT.0.) THEN
     266      END DO
     267C
     268      DO JV=1,NTRA
     269      DO I=1,LON
     270         IF(VGRI(I,0,L)>0.) THEN
    268271           F0(I,0,JV)=ALF(I,0)*S00(JV)
    269272         ENDIF
    270  240  CONTINUE
    271  24   CONTINUE
     273      END DO
     274      END DO
    272275C
    273276C  puts the temporary moments Fi into appropriate neighboring boxes
    274277C
    275278c     print*,'av ADVYP 25'
    276       DO 25 I=1,LON
    277 C
    278          IF(VGRI(I,0,L).GT.0.) THEN
     279      DO I=1,LON
     280C
     281         IF(VGRI(I,0,L)>0.) THEN
    279282           SM(I,1,L)=SM(I,1,L)+FM(I,0)
    280283           ALF(I,0)=FM(I,0)/SM(I,1,L)
     
    287290         ALF3(I,0)=ALF1(I,0)*ALF(I,0)
    288291C
    289  25   CONTINUE
     292      END DO
    290293c     print*,'av ADVYP 25'
    291294C
    292       DO 26 JV=1,NTRA
    293       DO 260 I=1,LON
    294 C
    295          IF(VGRI(I,0,L).GT.0.) THEN
     295      DO JV=1,NTRA
     296      DO I=1,LON
     297C
     298         IF(VGRI(I,0,L)>0.) THEN
    296299C
    297300         TEMPTM=ALF(I,0)*S0(I,1,L,JV)-ALF1(I,0)*F0(I,0,JV)
     
    305308         ENDIF
    306309C
    307  260  CONTINUE
    308  26   CONTINUE
     310      END DO
     311      END DO
    309312C
    310313C  calculate flux and moments between adjacent boxes
     
    315318C
    316319c     print*,'av ADVYP 30'
    317       DO 30 K=1,LAT-1
     320      DO K=1,LAT-1
    318321      KP=K+1
    319       DO 300 I=1,LON
    320 C
    321          IF(VGRI(I,K,L).LT.0.) THEN
     322      DO I=1,LON
     323C
     324         IF(VGRI(I,K,L)<0.) THEN
    322325           FM(I,K)=-VGRI(I,K,L)*DTY
    323326           ALF(I,K)=FM(I,K)/SM(I,KP,L)
     
    336339         ALF4(I,K)=ALF1(I,K)*ALF1Q(I,K)
    337340C
    338  300  CONTINUE
    339  30   CONTINUE
     341      END DO
     342      END DO
    340343c     print*,'ap ADVYP 30'
    341344C
    342       DO 31 JV=1,NTRA
    343       DO 31 K=1,LAT-1
     345      DO JV=1,NTRA
     346      DO K=1,LAT-1
    344347      KP=K+1
    345       DO 310 I=1,LON
    346 C
    347          IF(VGRI(I,K,L).LT.0.) THEN
     348      DO I=1,LON
     349C
     350         IF(VGRI(I,K,L)<0.) THEN
    348351C
    349352           F0 (I,K,JV)=ALF (I,K)* ( S0(I,KP,L,JV)-ALF1(I,K)*
     
    403406         ENDIF
    404407C
    405  310  CONTINUE
    406  31   CONTINUE
     408      END DO
     409      END DO
     410      END DO
    407411c     print*,'ap ADVYP 31'
    408412C
    409413C  puts the temporary moments Fi into appropriate neighboring boxes
    410414C
    411       DO 32 K=1,LAT-1
     415      DO K=1,LAT-1
    412416      KP=K+1
    413       DO 320 I=1,LON
    414 C
    415          IF(VGRI(I,K,L).LT.0.) THEN
     417      DO I=1,LON
     418C
     419         IF(VGRI(I,K,L)<0.) THEN
    416420           SM(I,K,L)=SM(I,K,L)+FM(I,K)
    417421           ALF(I,K)=FM(I,K)/SM(I,K,L)
     
    427431         ALF3(I,K)=ALF1(I,K)*ALF(I,K)
    428432C
    429  320  CONTINUE
    430  32   CONTINUE
     433      END DO
     434      END DO
    431435c     print*,'ap ADVYP 32'
    432436C
    433       DO 33 JV=1,NTRA
    434       DO 33 K=1,LAT-1
     437      DO JV=1,NTRA
     438      DO K=1,LAT-1
    435439      KP=K+1
    436       DO 330 I=1,LON
    437 C
    438          IF(VGRI(I,K,L).LT.0.) THEN
     440      DO I=1,LON
     441C
     442         IF(VGRI(I,K,L)<0.) THEN
    439443C
    440444         TEMPTM=-ALF(I,K)*S0(I,K,L,JV)+ALF1(I,K)*F0(I,K,JV)
     
    474478         ENDIF
    475479C
    476  330  CONTINUE
    477  33   CONTINUE
     480      END DO
     481      END DO
     482      END DO
    478483c     print*,'ap ADVYP 33'
    479484C
     
    483488C
    484489      SM0=0.
    485       DO 40 JV=1,NTRA
     490      DO JV=1,NTRA
    486491         S00(JV)=0.
    487  40   CONTINUE
    488 C
    489       DO 41 I=1,LON
    490 C
    491          IF(VGRI(I,K,L).GE.0.) THEN
     492      END DO
     493C
     494      DO I=1,LON
     495C
     496         IF(VGRI(I,K,L)>=0.) THEN
    492497           FM(I,K)=VGRI(I,K,L)*DTY
    493498           ALF(I,K)=FM(I,K)/SM(I,K,L)
     
    503508         ALF4(I,K)=ALF1(I,K)*ALF1Q(I,K)
    504509C
    505  41   CONTINUE
     510      END DO
    506511c     print*,'ap ADVYP 41'
    507512C
    508       DO 42 JV=1,NTRA
    509       DO 420 I=1,LON
    510 C
    511          IF(VGRI(I,K,L).GE.0.) THEN
     513      DO JV=1,NTRA
     514      DO I=1,LON
     515C
     516         IF(VGRI(I,K,L)>=0.) THEN
    512517           F0 (I,K,JV)=ALF(I,K)* ( S0(I,K,L,JV)+ALF1(I,K)*
    513518     +             ( SY(I,K,L,JV)+ALF2(I,K)*SYY(I,K,L,JV) ) )
     
    527532         ENDIF
    528533C
    529  420  CONTINUE
    530  42   CONTINUE
     534      END DO
     535      END DO
    531536c     print*,'ap ADVYP 42'
    532537C
    533       DO 43 I=1,LON
    534          IF(VGRI(I,K,L).LT.0.) THEN
     538      DO I=1,LON
     539         IF(VGRI(I,K,L)<0.) THEN
    535540           FM(I,K)=-VGRI(I,K,L)*DTY
    536541           ALF(I,K)=FM(I,K)/SM0
    537542         ENDIF
    538  43   CONTINUE
     543      END DO
    539544c     print*,'ap ADVYP 43'
    540545C
    541       DO 44 JV=1,NTRA
    542       DO 440 I=1,LON
    543          IF(VGRI(I,K,L).LT.0.) THEN
     546      DO JV=1,NTRA
     547      DO I=1,LON
     548         IF(VGRI(I,K,L)<0.) THEN
    544549           F0(I,K,JV)=ALF(I,K)*S00(JV)
    545550         ENDIF
    546  440  CONTINUE
    547  44   CONTINUE
     551      END DO
     552      END DO
    548553C
    549554C  puts the temporary moments Fi into appropriate neighboring boxes
    550555C
    551       DO 45 I=1,LON
    552 C
    553          IF(VGRI(I,K,L).LT.0.) THEN
     556      DO I=1,LON
     557C
     558         IF(VGRI(I,K,L)<0.) THEN
    554559           SM(I,K,L)=SM(I,K,L)+FM(I,K)
    555560           ALF(I,K)=FM(I,K)/SM(I,K,L)
     
    562567         ALF3(I,K)=ALF1(I,K)*ALF(I,K)
    563568C
    564  45   CONTINUE
     569      END DO
    565570c     print*,'ap ADVYP 45'
    566571C
    567       DO 46 JV=1,NTRA
    568       DO 460 I=1,LON
    569 C
    570          IF(VGRI(I,K,L).LT.0.) THEN
     572      DO JV=1,NTRA
     573      DO I=1,LON
     574C
     575         IF(VGRI(I,K,L)<0.) THEN
    571576C
    572577         TEMPTM=-ALF(I,K)*S0(I,K,L,JV)+ALF1(I,K)*F0(I,K,JV)
     
    580585         ENDIF
    581586C
    582  460  CONTINUE
    583  46   CONTINUE
     587      END DO
     588      END DO
    584589c     print*,'ap ADVYP 46'
    585590C
    586  1    CONTINUE
     591      END DO
    587592
    588593c--------------------------------------------------
Note: See TracChangeset for help on using the changeset viewer.