Ignore:
Timestamp:
Dec 23, 2021, 6:54:17 PM (2 years ago)
Author:
dcugnet
Message:

Second commit for new tracers.

  • include most of the keys in the tracers descriptor vector "tracers(:)".
  • fix in phylmdiso/cv3_routines: fq_* variables were used where their fxt_* counterparts were expected.
  • multiple IF(nqdesc(iq)>0) and IF(nqfils(iq)>0) tests suppressed, because they are not needed: "do ... enddo" loops with 0 upper bound are not executed.
  • remove French accents from comments (encoding problem) in phylmdiso/cv3_routines and phylmdiso/cv30_routines.
  • modifications in "isotopes_verif_mod", where the call to function "iso_verif_tag17_q_deltad_chn" in "iso_verif_tag17_q_deltad_chn" was not detected at linking stage, although defined in the same module (?).
File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/trunk/libf/dyn3d/advtrac.F90

    r2622 r4050  
    99  !            M.A Filiberti (04/2002)
    1010  !
    11   USE infotrac, ONLY: nqtot, iadv,nqperes,ok_iso_verif
     11  USE infotrac, ONLY: nqtot, tracers, nqperes,ok_iso_verif
    1212  USE control_mod, ONLY: iapp_tracvl, day_step
    1313  USE comconst_mod, ONLY: dtvr
     
    7272  real cflz(ip1jmp1,llm)
    7373  real, save :: cflxmax(llm),cflymax(llm),cflzmax(llm)
     74  INTEGER :: iadv
    7475
    7576  IF(iadvtr.EQ.0) THEN
     
    226227     do iq=1,nqperes
    227228        !        call clock(t_initial)
    228         if(iadv(iq) == 0) cycle
     229       iadv = tracers(iq)%iadv
     230       SELECT CASE(iadv)
     231         CASE(0); CYCLE
     232         CASE(10)
    229233        !   ----------------------------------------------------------------
    230234        !   Schema de Van Leer I MUSCL
    231235        !   ----------------------------------------------------------------
    232         if(iadv(iq).eq.10) THEN
    233236           ! CRisi: on fait passer tout q pour avoir acces aux fils
    234237           
     
    236239           call vlsplt(q,2.,massem,wg,pbarug,pbarvg,dtvr,iq)
    237240           
     241         CASE(14)
    238242           !   ----------------------------------------------------------------
    239243           !   Schema "pseudo amont" + test sur humidite specifique
    240244           !    pour la vapeur d'eau. F. Codron
    241245           !   ----------------------------------------------------------------
    242         else if(iadv(iq).eq.14) then
    243246           !
    244247           !write(*,*) 'advtrac 248: iq,q(1721,19,:)=',iq,q(1721,19,:)
     
    246249                pbarug,pbarvg,dtvr,p,pk,teta,iq)
    247250           
     251         CASE(12)
    248252           !   ----------------------------------------------------------------
    249253           !   Schema de Frederic Hourdin
    250254           !   ----------------------------------------------------------------
    251         else if(iadv(iq).eq.12) then
    252255           !            Pas de temps adaptatif
    253            call adaptdt(iadv(iq),dtbon,n,pbarug,massem)
     256           call adaptdt(iadv,dtbon,n,pbarug,massem)
    254257           if (n.GT.1) then
    255258              write(*,*) 'WARNING horizontal dt=',dtbon,'dtvr=', &
     
    259262              call advn(q(1,1,iq),massem,wg,pbarug,pbarvg,dtbon,1)
    260263           end do
    261         else if(iadv(iq).eq.13) then
     264         CASE(13)
    262265           !            Pas de temps adaptatif
    263            call adaptdt(iadv(iq),dtbon,n,pbarug,massem)
     266           call adaptdt(iadv,dtbon,n,pbarug,massem)
    264267           if (n.GT.1) then
    265268              write(*,*) 'WARNING horizontal dt=',dtbon,'dtvr=', &
     
    269272              call advn(q(1,1,iq),massem,wg,pbarug,pbarvg,dtbon,2)
    270273           end do
     274         CASE(20)
    271275           !   ----------------------------------------------------------------
    272276           !   Schema de pente SLOPES
    273277           !   ----------------------------------------------------------------
    274         else if (iadv(iq).eq.20) then
    275278           call pentes_ini (q(1,1,iq),wg,massem,pbarug,pbarvg,0)
    276279
     280         CASE(30)
    277281           !   ----------------------------------------------------------------
    278282           !   Schema de Prather
    279283           !   ----------------------------------------------------------------
    280         else if (iadv(iq).eq.30) then
    281284           !            Pas de temps adaptatif
    282            call adaptdt(iadv(iq),dtbon,n,pbarug,massem)
     285           call adaptdt(iadv,dtbon,n,pbarug,massem)
    283286           if (n.GT.1) then
    284287              write(*,*) 'WARNING horizontal dt=',dtbon,'dtvr=', &
     
    288291                n,dtbon)
    289292
     293         CASE(11,16,17,18)
    290294           !   ----------------------------------------------------------------
    291295           !   Schemas PPM Lin et Rood
    292296           !   ----------------------------------------------------------------
    293         else if (iadv(iq).eq.11.OR.(iadv(iq).GE.16.AND. &
    294              iadv(iq).LE.18)) then
    295297
    296298           !        Test sur le flux horizontal
    297299           !        Pas de temps adaptatif
    298            call adaptdt(iadv(iq),dtbon,n,pbarug,massem)
     300           call adaptdt(iadv,dtbon,n,pbarug,massem)
    299301           if (n.GT.1) then
    300302              write(*,*) 'WARNING horizontal dt=',dtbon,'dtvr=', &
     
    316318
    317319           !-----------------------------------------------------------
    318            !        Ss-prg interface LMDZ.4->PPM3d
     320           !        Ss-prg interface LMDZ.4->PPM3d (ss-prg de Lin)
    319321           !-----------------------------------------------------------
    320322
     
    327329              !                         VL (version PPM) horiz. et PPM vert.
    328330              !----------------------------------------------------------------
    329               if (iadv(iq).eq.11) then
    330                  !                  Ss-prg PPM3d de Lin
     331             SELECT CASE(iadv)
     332               CASE(11)
    331333                 call ppm3d(1,qppm(1,1,iq), &
    332334                      psppm,psppm, &
     
    335337                      fill,dum,220.)
    336338
     339               CASE(16)
    337340                 !-------------------------------------------------------------
    338341                 !                           Monotonic PPM
    339342                 !-------------------------------------------------------------
    340               else if (iadv(iq).eq.16) then
    341                  !                  Ss-prg PPM3d de Lin
    342343                 call ppm3d(1,qppm(1,1,iq), &
    343344                      psppm,psppm, &
     
    347348                 !-------------------------------------------------------------
    348349
     350               CASE(17)
    349351                 !-------------------------------------------------------------
    350352                 !                           Semi Monotonic PPM
    351353                 !-------------------------------------------------------------
    352               else if (iadv(iq).eq.17) then
    353                  !                  Ss-prg PPM3d de Lin
    354354                 call ppm3d(1,qppm(1,1,iq), &
    355355                      psppm,psppm, &
     
    359359                 !-------------------------------------------------------------
    360360
     361               CASE(18)
    361362                 !-------------------------------------------------------------
    362363                 !                         Positive Definite PPM
    363364                 !-------------------------------------------------------------
    364               else if (iadv(iq).eq.18) then
    365                  !                  Ss-prg PPM3d de Lin
    366365                 call ppm3d(1,qppm(1,1,iq), &
    367366                      psppm,psppm, &
     
    370369                      fill,dum,220.)
    371370                 !-------------------------------------------------------------
    372               endif
     371             END SELECT
    373372           enddo
    374373           !-----------------------------------------------------------------
     
    376375           !-----------------------------------------------------------------
    377376           call interpost(q(1,1,iq),qppm(1,1,iq))
    378         endif
     377         END SELECT
    379378        !----------------------------------------------------------------------
    380379
Note: See TracChangeset for help on using the changeset viewer.