Changeset 4124 for LMDZ6/trunk/libf


Ignore:
Timestamp:
Apr 8, 2022, 4:47:04 PM (3 years ago)
Author:
dcugnet
Message:

Remove solsym, ok_isotopes (=niso>0), ok_isotrac (=nzone>0)

Location:
LMDZ6/trunk/libf
Files:
18 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/trunk/libf/dyn3d/check_isotopes.F

    r4050 r4124  
    11        subroutine check_isotopes_seq(q,ip1jmp1,err_msg)
    2         USE infotrac, ONLY: nqtot, nqo, niso, ntraciso, ntraceurs_zone,
    3      &                     ok_isotopes, ok_isotrac, use_iso,
     2        USE infotrac, ONLY: nqtot, nqo, niso, ntraciso, nzone,
     3     &                     use_iso,
    44     &                     iqiso, index_trac,indnum_fn_num, tnat
    55        implicit none
     
    2929        real deltaD
    3030
    31         if (ok_isotopes) then
     31        if (niso > 0) then
    3232
    3333        write(*,*) 'check_isotopes 31: err_msg=',err_msg
     
    130130
    131131        !write(*,*) 'check_isotopes 129'
    132         if (ok_isotrac) then
     132        if (nzone > 0) then
    133133
    134134          if (use_iso(2).and.use_iso(1)) then
    135             do izone=1,ntraceurs_zone
     135            do izone=1,nzone
    136136             ixt=index_trac(izone,indnum_fn_num(2))
    137137             ieau=index_trac(izone,indnum_fn_num(1))
     
    157157                enddo  ! do k=1,llm
    158158              enddo ! do phase=1,nqo   
    159             enddo !do izone=1,ntraceurs_zone
     159            enddo !do izone=1,nzone
    160160          endif !if (use_iso(2).and.use_iso(1)) then
    161161
     
    167167                   xtractot=0.0
    168168                   xiiso=q(i,k,iq)
    169                    do izone=1,ntraceurs_zone
     169                   do izone=1,nzone
    170170                      iq=iqiso(index_trac(izone,iiso),phase)
    171171                      xtractot=xtractot+ q(i,k,iq)
     
    185185                 ! bidouille pour éviter divergence:
    186186                 if (abs(xtractot).gt.ridicule) then
    187                    do izone=1,ntraceurs_zone
     187                   do izone=1,nzone
    188188                     ixt=index_trac(izone,iiso)
    189189                     q(i,k,iq)=q(i,k,iq)/xtractot*xiiso
    190                    enddo !do izone=1,ntraceurs_zone               
     190                   enddo !do izone=1,nzone               
    191191                  endif !if ((abs(xtractot).gt.ridicule) then
    192192                enddo !DO i = 1,ip1jmp1
     
    195195          enddo !do iiso=1,niso
    196196
    197         endif !if (ok_isotrac) then
    198 
    199         endif ! if (ok_isotopes)
     197        endif !if (nzone > 0)
     198
     199        endif ! if (niso > 0)
    200200        !write(*,*) 'check_isotopes 198'
    201201       
  • LMDZ6/trunk/libf/dyn3d/dynetat0.F90

    r4120 r4124  
    66! Purpose: Initial state reading.
    77!-------------------------------------------------------------------------------
    8   USE infotrac,    ONLY: nqtot, tracers, niso, iqiso, iso_indnum, iso_num, tnat, alpha_ideal, ok_isotopes, iH2O
     8  USE infotrac,    ONLY: nqtot, tracers, niso, iqiso, iso_indnum, iso_num, tnat, alpha_ideal, iH2O
    99  USE strings_mod, ONLY: maxlen, msg, strStack, real2str
    1010  USE netcdf,      ONLY: NF90_OPEN,  NF90_NOWRITE, NF90_INQ_VARID, &
  • LMDZ6/trunk/libf/dyn3d/iniacademic.F90

    r4120 r4124  
    55
    66  USE filtreg_mod, ONLY: inifilr
    7   USE infotrac,    ONLY: nqtot, niso_possibles, ok_isotopes, ok_iso_verif, tnat, alpha_ideal, &
     7  USE infotrac,    ONLY: nqtot, niso, niso_possibles, ok_iso_verif, tnat, alpha_ideal, &
    88                         iqiso, tracers, iso_indnum, iso_num
    99  USE control_mod, ONLY: day_step,planet_type
     
    284284!             iName    = tracers(iq)%iso_iName  ! (next commit)
    285285              iName    = iso_num(iq)
    286               if (.NOT.ok_isotopes .OR. iName <= 0) CYCLE
     286              if (niso <= 0 .OR. iName <= 0) CYCLE
    287287              iPhase   = tracers(iq)%iso_iPhase
    288288              iqParent = tracers(iq)%iqParent
  • LMDZ6/trunk/libf/dyn3d/qminimum.F

    r2600 r4124  
    44      SUBROUTINE qminimum( q,nqtot,deltap )
    55
    6       USE infotrac, ONLY: ok_isotopes,ntraciso,iqiso,ok_iso_verif
     6      USE infotrac, ONLY: niso, ntraciso,iqiso,ok_iso_verif
    77      IMPLICIT none
    88c
     
    5959          if (seuil_liq - q(i,k,iq_liq) .gt. 0.d0 ) then
    6060
    61               if (ok_isotopes) then
    62                  zx_defau_diag(i,k,iq_liq)=AMAX1
     61              if (niso > 0) zx_defau_diag(i,k,iq_liq)=AMAX1
    6362     :               ( seuil_liq - q(i,k,iq_liq), 0.0 )
    64               endif !if (ok_isotopes) then
    6563
    6664             q(i,k,iq_vap) = q(i,k,iq_vap) + q(i,k,iq_liq) - seuil_liq
     
    8078          if ( seuil_vap - q(i,k,iq) .gt. 0.d0 ) then
    8179
    82             if (ok_isotopes) then
    83               zx_defau_diag(i,k,iq)=AMAX1( seuil_vap - q(i,k,iq), 0.0 )
    84             endif !if (ok_isotopes) then
     80            if (niso > 0)
     81     &        zx_defau_diag(i,k,iq)=AMAX1( seuil_vap - q(i,k,iq), 0.0 )
    8582
    8683            q(i,k-1,iq) =  q(i,k-1,iq) - ( seuil_vap - q(i,k,iq) ) *
     
    110107
    111108      !write(*,*) 'qminimum 128'
    112       if (ok_isotopes) then
     109      if (niso > 0) then
    113110      ! CRisi: traiter de même les traceurs d'eau
    114111      ! Mais il faut les prendre à l'envers pour essayer de conserver la
     
    184181        endif !if (ok_iso_verif) then
    185182
    186       endif !if (ok_isotopes) then
     183      endif !if (niso > 0) then
    187184      !write(*,*) 'qminimum 188'
    188185     
  • LMDZ6/trunk/libf/dyn3d_common/infotrac.F90

    r4122 r4124  
    1616   PUBLIC :: tracers, type_trac                            !--- Full tracers database, tracers type keyword
    1717   PUBLIC :: nqtot,   nbtr,   nqo,   nqCO2,   nqtottr      !--- Main dimensions
    18    PUBLIC :: solsym, conv_flg, pbl_flg                     !--- Tracers names + convection & boundary layer activation keys
     18   PUBLIC :: conv_flg, pbl_flg                             !--- Convection & boundary layer activation keys
    1919
    2020   !=== FOR ISOTOPES: General
     
    3636   !=== OLD QUANTITIES OR ALIASES FOR OLDER NAMES (TO BE REMOVED SOON)
    3737   PUBLIC :: ntraciso, ntraceurs_zone
    38    PUBLIC :: ok_isotopes, ok_iso_verif, ok_isotrac, use_iso
     38   PUBLIC :: ok_iso_verif, use_iso
    3939   PUBLIC :: iso_num, iso_indnum, indnum_fn_num, niso_possibles
    4040   PUBLIC :: qperemin, masseqmin, ratiomin
     
    139139   REAL,    SAVE :: qperemin, masseqmin, ratiomin
    140140   INTEGER, SAVE :: niso_possibles
    141    LOGICAL, SAVE :: ok_isotopes, ok_iso_verif, ok_isotrac
     141   LOGICAL, SAVE :: ok_iso_verif
    142142   LOGICAL, SAVE, ALLOCATABLE ::       use_iso(:)
    143143   INTEGER, SAVE, ALLOCATABLE ::       iso_num(:)               !--- idx in [1,niso_possibles] = f(1<=iq <=nqtot)
     
    150150   INTEGER,             SAVE, ALLOCATABLE :: conv_flg(:), &     !--- Convection     activation ; needed for INCA        (nbtr)
    151151                                              pbl_flg(:)        !--- Boundary layer activation ; needed for INCA        (nbtr)
    152    CHARACTER(LEN=8),    SAVE, ALLOCATABLE ::   solsym(:)        !--- Names from INCA                                    (nbtr)
    153152   LOGICAL, PARAMETER :: lOldCode = .TRUE.
    154153
     
    379378      IF(ALL([2,3] /= nqo)) CALL abort_gcm(modname, 'Only 2 or 3 water phases allowed ; found nqo='//TRIM(int2str(nqo)), 1)
    380379      ALLOCATE(hadv(nqtrue), conv_flg(nbtr), hadv_inca(nqINCA), conv_flg_inca(nqINCA), solsym_inca(nqINCA))
    381       ALLOCATE(vadv(nqtrue),  pbl_flg(nbtr), vadv_inca(nqINCA),  pbl_flg_inca(nqINCA), solsym(nbtr))
     380      ALLOCATE(vadv(nqtrue),  pbl_flg(nbtr), vadv_inca(nqINCA),  pbl_flg_inca(nqINCA))
    382381      CALL init_transport(hadv_inca, vadv_inca, conv_flg_inca, pbl_flg_inca, solsym_inca)
    383382      !--- Passive CO2 tracer is at position 1 because: H2O has been removed ; nqCO2/=0 in "inco" case only
    384383      conv_flg(1:nbtr) = [(1,          k=1, nqCO2), conv_flg_inca]
    385384       pbl_flg(1:nbtr) = [(1,          k=1, nqCO2),  pbl_flg_inca]
    386        solsym (1:nbtr) = [('CO2     ', k=1, nqCO2),   solsym_inca]
    387385      ALLOCATE(ttr(nqtrue))
    388386      ttr(1:nqo+nqCO2)                    = tracers
     
    390388      ttr(1+nqo:nqCO2+nqo   )%component   = 'co2i'
    391389      ttr(1+nqo+nqCO2:nqtrue)%component   = 'inca'
    392       ttr(1+nqo      :nqtrue)%name        = solsym
     390      ttr(1+nqo      :nqtrue)%name        = [('CO2     ', k=1, nqCO2), solsym_inca]
    393391      ttr(1+nqo+nqCO2:nqtrue)%parent      = tran0
    394392      ttr(1+nqo+nqCO2:nqtrue)%phase       = 'g'
     
    409407      lerr = getKey('hadv', hadv, ky=tracers(:)%keys)
    410408      lerr = getKey('vadv', vadv, ky=tracers(:)%keys)
    411       ALLOCATE(conv_flg(nbtr), pbl_flg(nbtr), solsym(nbtr))
     409      ALLOCATE(conv_flg(nbtr), pbl_flg(nbtr))
    412410      conv_flg(1:nbtr) = [(1, it=1, nbtr)]                           !--- Convection activated for all tracers
    413411       pbl_flg(1:nbtr) = [(1, it=1, nbtr)]                           !--- Boundary layer activated for all tracers
     
    534532   nqtottr = nqtot-nqo*(1+ntiso)            !--- NO H2O-FAMILY    TRACER  IS      PASSED TO THE PHYSICS
    535533
    536    ALLOCATE(conv_flg(nbtr), pbl_flg(nbtr), solsym(nbtr))
     534   ALLOCATE(conv_flg(nbtr), pbl_flg(nbtr))
    537535#ifndef INCA
    538536   conv_flg(1:nbtr) = 1                                              !--- Convection activated for all tracers
     
    540538#else
    541539   !--- Passive CO2 tracer is at position 1 because: H2O has been removed ; nqCO2/=0 in "inco" case only
    542    conv_flg(1:nbtr) = [(  1,        ic=1, nqCO2),conv_flg_inca]
    543     pbl_flg(1:nbtr) = [(  1,        ic=1, nqCO2), pbl_flg_inca]
    544      solsym(1:nbtr) = [('CO2     ', ic=1, nqCO2),  solsym_inca]
     540   conv_flg(1:nbtr) = [(1, ic=1, nqCO2),conv_flg_inca]
     541    pbl_flg(1:nbtr) = [(1, ic=1, nqCO2), pbl_flg_inca]
    545542#endif
    546543
     
    798795
    799796   !--- Isotopic quantities (to be removed soon)
    800    ok_isotopes   = i%niso  > 0
    801    ok_isotrac    = i%nzone > 0
    802797   ok_iso_verif  = i%check
    803798   niso_possibles = SIZE(tnom_iso)
  • LMDZ6/trunk/libf/dyn3dmem/check_isotopes_loc.F

    r4050 r4124  
    11        subroutine check_isotopes(q,ijb,ije,err_msg)
    2         USE infotrac, ONLY: nqtot, nqo, niso, ntraciso, ntraceurs_zone,
    3      &                ok_isotopes, ok_isotrac, use_iso,
     2        USE infotrac, ONLY: nqtot, nqo, niso, ntraciso, nzone,
     3     &                use_iso,
    44     &                iqiso, indnum_fn_num, index_trac, tnat
    55        USE parallel_lmdz
     
    3030        real deltaD
    3131
    32         if (ok_isotopes) then
     32        if (niso > 0) then
    3333
    3434!        write(*,*) 'check_isotopes 31: err_msg=',err_msg
     
    139139
    140140!        write(*,*) 'check_isotopes 129'
    141         if (ok_isotrac) then
     141        if (nzone > 0) then
    142142
    143143          if (use_iso(2).and.use_iso(1)) then
     
    208208          enddo !do iiso=1,niso
    209209
    210         endif !if (ok_isotrac) then
    211 
    212         endif ! if (ok_isotopes)
     210        endif !if (nzone > 0)
     211
     212        endif ! if (niso > 0)
    213213!        write(*,*) 'check_isotopes 198'
    214214       
  • LMDZ6/trunk/libf/dyn3dmem/dynetat0_loc.F90

    r4120 r4124  
    77!-------------------------------------------------------------------------------
    88  USE parallel_lmdz
    9   USE infotrac,    ONLY: nqtot, tracers, niso, iqiso, iso_indnum, iso_num, tnat, alpha_ideal, ok_isotopes, iH2O
     9  USE infotrac,    ONLY: nqtot, tracers, niso, iqiso, iso_indnum, iso_num, tnat, alpha_ideal, iH2O
    1010  USE strings_mod, ONLY: maxlen, msg, strStack, real2str
    1111  USE netcdf,      ONLY: NF90_OPEN,  NF90_NOWRITE, NF90_INQUIRE_DIMENSION, NF90_INQ_VARID, &
  • LMDZ6/trunk/libf/dyn3dmem/iniacademic_loc.F90

    r4120 r4124  
    55
    66  USE filtreg_mod, ONLY: inifilr
    7   USE infotrac,    ONLY: nqtot, niso_possibles, ok_isotopes, ok_iso_verif, tnat, alpha_ideal, &
     7  USE infotrac,    ONLY: nqtot, niso, niso_possibles, ok_iso_verif, tnat, alpha_ideal, &
    88                         iqiso, tracers, iso_indnum, iso_num
    99  USE control_mod, ONLY: day_step,planet_type
     
    288288!             iName    = tracers(iq)%iso_iName  ! (next commit)
    289289              iName    = iso_num(iq)
    290               if (.NOT.ok_isotopes .OR. iName <= 0) CYCLE
     290              if (niso <= 0 .OR. iName <= 0) CYCLE
    291291              iPhase   = tracers(iq)%iso_iPhase
    292292              iqParent = tracers(iq)%iqParent
  • LMDZ6/trunk/libf/dyn3dmem/qminimum_loc.F

    r3801 r4124  
    44      SUBROUTINE qminimum_loc( q,nqtot,deltap )
    55      USE parallel_lmdz
    6       USE infotrac, ONLY: ok_isotopes,ntraciso,iqiso,ok_iso_verif,             &
     6      USE infotrac, ONLY: niso,ntraciso,iqiso,ok_iso_verif,             &
    77     &   ratiomin,qperemin ! CRisi 23nov2020
    88      IMPLICIT none
     
    7171            if (seuil_liq - q(i,k,iq_liq) .gt. 0.d0 ) then
    7272
    73               if (ok_isotopes) then
    74                  zx_defau_diag(i,k,iq_liq)=AMAX1
     73              if (niso > 0) zx_defau_diag(i,k,iq_liq)=AMAX1
    7574     :               ( seuil_liq - q(i,k,iq_liq), 0.0 )
    76               endif !if (ok_isotopes) then
    7775
    7876               q(i,k,iq_vap) = q(i,k,iq_vap) + q(i,k,iq_liq) - seuil_liq
     
    10098         if ( seuil_vap - q(i,k,iq) .gt. 0.d0 ) then
    10199
    102             if (ok_isotopes) then
    103               zx_defau_diag(i,k,iq)=AMAX1( seuil_vap - q(i,k,iq), 0.0 )
    104             endif !if (ok_isotopes) then
     100            if (niso > 0)
     101     &        zx_defau_diag(i,k,iq)=AMAX1( seuil_vap - q(i,k,iq), 0.0 )
    105102
    106103            q(i,k-1,iq) =  q(i,k-1,iq) - ( seuil_vap - q(i,k,iq) ) *
     
    141138
    142139      !write(lunout,*) 'qminimum 128'
    143       if (ok_isotopes) then
     140      if (niso > 0) then
    144141              !write(lunout,*) 'qminimum 140'
    145142      ! CRisi: traiter de même les traceurs d'eau
     
    277274        endif !if (ok_iso_verif) then
    278275
    279       endif !if (ok_isotopes) then
     276      endif !if (niso > 0) then
    280277      !write(*,*) 'qminimum 188'
    281278c
  • LMDZ6/trunk/libf/dynphy_lonlat/phylmd/iniphysiq_mod.F90

    r4120 r4124  
    1616  USE mod_phys_lmdz_para, ONLY: klon_omp ! number of columns (on local omp grid)
    1717  USE vertical_layers_mod, ONLY : init_vertical_layers
    18   USE infotrac, ONLY: nbtr,nqCO2,tracers,isotopes,type_trac,conv_flg,pbl_flg,solsym,nqtottr
     18  USE infotrac, ONLY: nbtr,nqCO2,tracers,isotopes,type_trac,conv_flg,pbl_flg,nqtottr
    1919#ifdef CPP_StratAer
    2020  USE infotrac_phy, ONLY: nbtr_bin, nbtr_sulgas, id_OCS_strat, &
     
    137137
    138138  ! Initialize tracer names, numbers, etc. for physics
    139   CALL init_infotrac_phy(type_trac, tracers, isotopes, nqtottr, nqCO2, pbl_flg, conv_flg, solsym)
     139  CALL init_infotrac_phy(type_trac, tracers, isotopes, nqtottr, nqCO2, pbl_flg, conv_flg)
    140140
    141141  ! Initializations for Reprobus
  • LMDZ6/trunk/libf/phylmd/infotrac_phy.F90

    r4120 r4124  
    1515   PUBLIC :: tracers, type_trac                            !--- Full tracers database, tracers type keyword
    1616   PUBLIC :: nqtot,   nbtr,   nqo,   nqCO2,   nqtottr      !--- Main dimensions
    17    PUBLIC :: conv_flg, pbl_flg, solsym                     !--- Convection & boundary layer activation keys
     17   PUBLIC :: conv_flg, pbl_flg                             !--- Convection & boundary layer activation keys
    1818
    1919   !=== FOR ISOTOPES: General
     
    3333
    3434   PUBLIC :: ntraciso, ntraceurs_zone, indnum_fn_num, use_iso, index_trac, iqiso
    35    PUBLIC :: niso_possibles, ok_isotrac, ok_isotopes, ok_iso_verif
     35   PUBLIC :: niso_possibles, ok_iso_verif
    3636
    3737   INTERFACE isoSelect; MODULE PROCEDURE isoSelectByIndex, isoSelectByName; END INTERFACE isoSelect
     
    132132   INTEGER,          SAVE,    ALLOCATABLE ::conv_flg(:),  &     !--- Convection     activation ; needed for INCA        (nbtr)
    133133                                             pbl_flg(:)         !--- Boundary layer activation ; needed for INCA        (nbtr)
    134    CHARACTER(LEN=8), SAVE,    ALLOCATABLE ::  solsym(:)
    135 !$OMP THREADPRIVATE(conv_flg, pbl_flg, solsym)
     134!$OMP THREADPRIVATE(conv_flg, pbl_flg)
    136135
    137136   !--- Aliases for older names + quantities to be removed             (will be replaced by:)
     
    142141   INTEGER, SAVE :: niso_possibles                              !--- suppressed (use effective niso instead)
    143142!$OMP THREADPRIVATE(niso_possibles)
    144    LOGICAL, SAVE :: ok_isotopes, ok_iso_verif, ok_isotrac       !--- -> niso>0, isoCheck, nzone>0
    145 !$OMP THREADPRIVATE(ok_isotopes, ok_iso_verif, ok_isotrac)
     143   LOGICAL, SAVE :: ok_iso_verif                                !--- -> isoCheck
     144!$OMP THREADPRIVATE(ok_iso_verif)
    146145   LOGICAL, SAVE, ALLOCATABLE :: use_iso(:)                     !--- suppressed
    147146!$OMP THREADPRIVATE             (use_iso)
     
    159158CONTAINS
    160159
    161 SUBROUTINE init_infotrac_phy(type_trac_, tracers_, isotopes_, nqtottr_, nqCO2_, pbl_flg_, conv_flg_, solsym_)
     160SUBROUTINE init_infotrac_phy(type_trac_, tracers_, isotopes_, nqtottr_, nqCO2_, pbl_flg_, conv_flg_)
    162161
    163162   USE print_control_mod, ONLY: prt_level, lunout
     
    171170   INTEGER,         INTENT(IN) :: conv_flg_(:)
    172171   INTEGER,         INTENT(IN) ::  pbl_flg_(:)
    173    CHARACTER(LEN=*),INTENT(IN) ::   solsym_(:)
    174172
    175173   INTEGER :: iq, ixt
     
    186184   pbl_flg   =  pbl_flg_
    187185   conv_flg  = conv_flg_
    188    solsym    = solsym_
    189186   nqtot     = SIZE(tracers_)
    190187   nqo       = COUNT(delPhase(tracers%name)=='H2O' .AND. tracers%iGeneration==0)
     
    230227   iqiso          => iqTraPha
    231228   index_trac     => itZonIso
    232    ok_isotopes    = niso  > 0
    233    ok_isotrac     = nzone > 0
    234229   ok_iso_verif   = isoCheck
    235230   niso_possibles = SIZE(tnom_iso)
  • LMDZ6/trunk/libf/phylmd/phytrac_mod.F90

    r4089 r4124  
    124124    USE phys_cal_mod, only : hour
    125125    USE dimphy
    126     USE infotrac_phy, ONLY: nbtr, nqCO2, type_trac, conv_flg, solsym, pbl_flg
     126    USE infotrac_phy, ONLY: nbtr, nqCO2, type_trac, conv_flg, pbl_flg
     127    USE strings_mod,  ONLY: int2str
    127128    USE mod_grid_phy_lmdz
    128129    USE mod_phys_lmdz_para
     
    753754          END DO
    754755
    755           CALL minmaxqfi(tr_seri(:,:,it),0.,1.e33,'convection it = '//solsym(it))
     756          CALL minmaxqfi(tr_seri(:,:,it),0.,1.e33,'convection it = '//TRIM(int2str(it)))
    756757
    757758       END DO ! nbtr
     
    955956                ENDDO
    956957             ENDDO
    957              CALL minmaxqfi(tr_seri(:,:,it),0.,1.e33,'lsc scav it = '//solsym(it))
     958             CALL minmaxqfi(tr_seri(:,:,it),0.,1.e33,'lsc scav it = '//TRIM(int2str(it)))
    958959             ENDIF
    959960
  • LMDZ6/trunk/libf/phylmd/rrtm/readaerosol_optic_rrtm.F90

    r3630 r4124  
    2020       load_tmp8,load_tmp9,load_tmp10
    2121
    22   USE infotrac_phy
     22  USE infotrac_phy, ONLY: tracers, nqtot, nbtr
    2323  USE YOMCST
    2424
     
    9191  integer :: id_ASBCM, id_ASPOMM, id_ASSO4M, id_ASMSAM, id_CSSO4M, id_CSMSAM, id_SSSSM
    9292  integer :: id_CSSSM, id_ASSSM, id_CIDUSTM, id_AIBCM, id_AIPOMM, id_ASNO3M, id_CSNO3M, id_CINO3M
    93   INTEGER :: k, i
     93  INTEGER :: k, i, iq, itr
    9494
    9595  !--air density
     
    107107     !--convert to ug m-3 unit for consistency with offline fields
    108108     !
    109      DO i=1,nbtr
    110         SELECT CASE(trim(solsym(i)))
    111            CASE ("ASBCM")
    112               id_ASBCM = i
    113            CASE ("ASPOMM")
    114               id_ASPOMM = i
    115            CASE ("ASSO4M")
    116               id_ASSO4M = i
    117            CASE ("ASMSAM")
    118               id_ASMSAM = i
    119            CASE ("CSSO4M")
    120               id_CSSO4M = i
    121            CASE ("CSMSAM")
    122               id_CSMSAM = i
    123            CASE ("SSSSM")
    124               id_SSSSM = i
    125            CASE ("CSSSM")
    126               id_CSSSM = i
    127            CASE ("ASSSM")
    128               id_ASSSM = i
    129            CASE ("CIDUSTM")
    130               id_CIDUSTM = i
    131            CASE ("AIBCM")
    132               id_AIBCM = i
    133            CASE ("AIPOMM")
    134               id_AIPOMM = i
    135            CASE ("ASNO3M")
    136               id_ASNO3M = i
    137            CASE ("CSNO3M")
    138               id_CSNO3M = i
    139            CASE ("CINO3M")
    140               id_CINO3M = i
    141            END SELECT
    142      ENDDO
     109     itr = 0
     110     DO iq = 1,nqtot
     111        IF(.NOT. tracers(iq)%isInPhysics) CYCLE
     112        itr = itr+1
     113        SELECT CASE(trim(tracers(iq)%name))
     114           CASE ("ASBCM");  id_ASBCM  = itr
     115           CASE ("ASPOMM"); id_ASPOMM = itr
     116           CASE ("ASSO4M"); id_ASSO4M = itr
     117           CASE ("ASMSAM"); id_ASMSAM = itr
     118           CASE ("CSSO4M"); id_CSSO4M = itr
     119           CASE ("CSMSAM"); id_CSMSAM = itr
     120           CASE ("SSSSM");  id_SSSSM  = itr
     121           CASE ("CSSSM");  id_CSSSM  = itr
     122           CASE ("ASSSM");  id_ASSSM  = itr
     123           CASE ("CIDUSTM");id_CIDUSTM= itr
     124           CASE ("AIBCM");  id_AIBCM  = itr
     125           CASE ("AIPOMM"); id_AIPOMM = itr
     126           CASE ("ASNO3M"); id_ASNO3M = itr
     127           CASE ("CSNO3M"); id_CSNO3M = itr
     128           CASE ("CINO3M"); id_CINO3M = itr
     129        END SELECT
     130     END DO
    143131
    144132     bcsol(:,:)        =   tr_seri(:,:,id_ASBCM)                         *zrho(:,:)*1.e9  ! ASBCM
  • LMDZ6/trunk/libf/phylmd/traclmdz_mod.F90

    r4071 r4124  
    311311   
    312312    USE dimphy
    313     USE infotrac_phy, ONLY: nbtr, pbl_flg, solsym
     313    USE infotrac_phy, ONLY: nbtr, pbl_flg
     314    USE strings_mod,  ONLY: int2str
    314315    USE regr_pr_comb_coefoz_m, ONLY: regr_pr_comb_coefoz
    315316    USE o3_chem_m, ONLY: o3_chem
     
    551552
    552553    DO it=1,nbtr
    553        WRITE(solsym(it),'(i2)') it
    554     END DO
    555 
    556     DO it=1,nbtr
    557554       IF(radio(it)) then     
    558555          DO k = 1, klev
     
    561558             END DO
    562559          END DO
    563           CALL minmaxqfi(tr_seri(:,:,it),0.,1.e33,'puits rn it='//solsym(it))
     560          CALL minmaxqfi(tr_seri(:,:,it),0.,1.e33,'puits rn it='//TRIM(int2str(it)))
    564561       END IF
    565562    END DO
  • LMDZ6/trunk/libf/phylmd/tracreprobus_mod.F90

    r4050 r4124  
    1212
    1313    USE dimphy
    14     USE infotrac_phy, ONLY: nbtr, solsym
     14    USE infotrac_phy, ONLY: nbtr
    1515#ifdef REPROBUS
    1616    USE CHEM_REP, ONLY : pdt_rep, &  ! pas de temps reprobus
     
    119119       
    120120    END DO
    121    
    122 
    123     !
    124     DO it=1,nbtr
    125        WRITE(solsym(it),'(i2)') it
    126     END DO
    127121#endif
    128122  END SUBROUTINE tracreprobus
  • LMDZ6/trunk/libf/phylmdiso/climb_hq_mod.F90

    r4004 r4124  
    502502
    503503#ifdef ISOVERIF
    504 USE infotrac_phy, ONLY: ok_isotrac
     504USE infotrac_phy, ONLY: nzone
    505505USE isotopes_mod, ONLY: iso_eau,iso_HDO,iso_O18, ridicule
    506506USE isotopes_verif_mod
     
    578578         endif
    579579#ifdef ISOTRAC
    580          if (ok_isotrac) then
    581            call iso_verif_traceur(xt_old(1,i,k),'climb_hq_mod 422')
    582          endif
     580         IF(nzone > 0) CALL iso_verif_traceur(xt_old(1,i,k),'climb_hq_mod 422')
    583581#endif
    584582        enddo
     
    781779        endif
    782780#ifdef ISOTRAC
    783         if (ok_isotrac) then
    784            call iso_verif_traceur(xt_old(1,i,k),'climb_hq_mod 526')
    785         endif
     781        IF(nzone > 0) CALL iso_verif_traceur(xt_old(1,i,k),'climb_hq_mod 526')
    786782#endif       
    787783#endif       
  • LMDZ6/trunk/libf/phylmdiso/isotopes_mod.F90

    r4036 r4124  
    33
    44MODULE isotopes_mod
    5 USE infotrac_phy, ONLY: ntraciso,niso,indnum_fn_num,ok_isotrac,use_iso, &
     5USE infotrac_phy, ONLY: ntraciso,niso,indnum_fn_num,use_iso, &
    66&       niso_possibles
    77IMPLICIT NONE
     
    245245      write(*,*) 'iso_init 64: niso=',niso
    246246
    247 ! init de ntracisoOR: on écrasera en cas de ok_isotrac si complications avec
     247! init de ntracisoOR: on écrasera en cas de nzone>0 si complications avec
    248248! ORCHIDEE
    249249      ntracisoOR=ntraciso 
     
    327327call getin_p('essai_convergence',essai_convergence)
    328328call getin_p('initialisation_iso',initialisation_iso)
    329 !if (ok_isotrac) then     
     329!if (nzone>0) then     
    330330!if (initialisation_iso.eq.0) then
    331331!  call getin_p('initialisation_isotrac',initialisation_isotrac)
    332332!endif !if (initialisation_iso.eq.0) then
    333 !endif !if (ok_isotrac) then     
     333!endif !if (nzone>0)
    334334call getin_p('modif_sst',modif_sst)
    335335if (modif_sst.ge.1) then
  • LMDZ6/trunk/libf/phylmdiso/physiq_mod.F90

    r4120 r4124  
    4040    USE indice_sol_mod
    4141    USE infotrac, ONLY: iso_num, iso_indnum
    42     USE infotrac_phy, ONLY: nqtot, nbtr, nqo, tracers, type_trac, nqCO2, ok_isotopes, indnum_fn_num
     42    USE infotrac_phy, ONLY: nqtot, nbtr, nqo, tracers, type_trac, nqCO2, indnum_fn_num
    4343    USE readTracFiles_mod, ONLY: addPhase
    4444    USE strings_mod,  ONLY: strIdx, strStack, int2str
     
    126126
    127127#ifdef ISO
    128     USE infotrac_phy, ONLY:  &
    129         iqiso,ok_isotrac,niso, ntraciso
    130      USE isotopes_mod, ONLY: iso_eau,iso_HDO,iso_O18,iso_O17,iso_HTO, &
     128    USE infotrac_phy, ONLY: iqiso,niso, ntraciso, nzone
     129    USE isotopes_mod, ONLY: iso_eau,iso_HDO,iso_O18,iso_O17,iso_HTO, &
    131130        & bidouille_anti_divergence,ok_bidouille_wake, &
    132131        & modif_ratqs,essai_convergence,iso_init,ridicule_rain,tnat, &
    133132        & ridicule,ridicule_snow
    134      USE isotopes_routines_mod, ONLY: iso_tritium
     133    USE isotopes_routines_mod, ONLY: iso_tritium
    135134#ifdef ISOVERIF
    136135    USE isotopes_verif_mod, ONLY: errmax,errmaxrel, &
     
    15951594! dyn3dmem et physiq
    15961595#ifdef ISO
    1597     write(*,*) 'physiq 1846a: ok_isotopes,ntraciso,niso=',ok_isotopes,ntraciso,niso
    1598     if (.not.ok_isotopes) then
    1599       CALL abort_gcm('physiq 1756','options iso incompatibles',1)
    1600     endif
     1596    write(*,*) 'physiq 1846a: ok_isotopes,ntraciso,niso=',niso>0,ntraciso,niso
     1597    IF(niso  <= 0) CALL abort_gcm('physiq 1756','options iso incompatibles',1)
    16011598#ifdef ISOTRAC
    1602     if (.not.ok_isotrac) then
    1603       CALL abort_gcm('physiq 1758','options isotrac incompatibles',1)
    1604     endif   
     1599    IF(nzone <= 0) CALL abort_gcm('physiq 1758','options isotrac incompatibles',1)
    16051600#else
    1606 ! #ifdef ISOTRAC
    1607     if (ok_isotrac) then
    1608       CALL abort_gcm('physiq 1762','options isotrac incompatibles',1)
    1609     endif
    1610 #endif
    1611 !! #ifdef ISOTRAC
    1612 ! -> on supprime opion ISOTRAC, tout passe par ok_isotrac
     1601    IF(nzone  > 0) CALL abort_gcm('physiq 1762','options isotrac incompatibles',1)
     1602#endif
    16131603#else
    1614 ! #ifdef ISO
    1615     if (ok_isotopes) then
    1616       CALL abort_gcm('physiq 1772','options iso incompatibles',1)
    1617     endif
    1618 #endif
    1619 ! #ifdef ISO
     1604    if(niso   > 0) CALL abort_gcm('physiq 1772','options iso incompatibles',1)
     1605#endif
    16201606
    16211607#ifdef ISO
     
    16231609#ifdef ISOVERIF
    16241610           write(*,*) 'physiq 1366: call iso_init'
    1625            write(*,*) 'ok_isotopes=',ok_isotopes
    1626 #endif
    1627         if (ok_isotopes) then
    1628            call iso_init()
    1629         endif
     1611           write(*,*) 'ok_isotopes=',niso > 0
     1612#endif
     1613        if (niso > 0) call iso_init()
    16301614#ifdef ISOTRAC
    1631 if (ok_isotrac) then
     1615IF(nzone > 0) then
    16321616        write(*,*) 'physiq 1416: call iso_traceurs_init'
    16331617        call iso_traceurs_init()
     
    24242408#ifdef ISOVERIF
    24252409!    write(*,*) 'physiq 1847: qx(1,1,:)=',qx(1,1,:)
    2426     write(*,*) 'physiq 1846b: ok_isotopes,ntraciso,niso=',ok_isotopes,ntraciso,niso
     2410    write(*,*) 'physiq 1846b: ok_isotopes,ntraciso,niso=',niso>0,ntraciso,niso
    24272411#endif
    24282412    do ixt=1,ntraciso
     
    24512435#endif
    24522436! #ifdef ISO
    2453 
    24542437    !
    24552438    !--OB mass fixer
     
    25212504    ! Diagnostiquer la tendance dynamique
    25222505#ifdef ISOVERIF
    2523       !write(*,*) 'physiq tmp 2010: ancien_ok=',ancien_ok       
    25242506      if ((iso_HDO.gt.0).and.(iso_O18.gt.0)) then 
    25252507        do i=1,klon
     
    68216803            endif ! if (iso_eau.gt.0) then
    68226804#ifdef ISOTRAC
    6823             if (ok_isotrac) then     
    6824             call iso_verif_traceur(xt_ancien(1,i,k),'physiq 4802')
    6825             endif !if (ok_isotrac) then
     6805            IF(nzone > 0) CALL iso_verif_traceur(xt_ancien(1,i,k),'physiq 4802')
    68266806#endif         
    68276807          enddo
Note: See TracChangeset for help on using the changeset viewer.