Changeset 4124 for LMDZ6/trunk/libf
- Timestamp:
- Apr 8, 2022, 4:47:04 PM (3 years ago)
- Location:
- LMDZ6/trunk/libf
- Files:
-
- 18 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/dyn3d/check_isotopes.F
r4050 r4124 1 1 subroutine check_isotopes_seq(q,ip1jmp1,err_msg) 2 USE infotrac, ONLY: nqtot, nqo, niso, ntraciso, n traceurs_zone,3 & ok_isotopes, ok_isotrac,use_iso,2 USE infotrac, ONLY: nqtot, nqo, niso, ntraciso, nzone, 3 & use_iso, 4 4 & iqiso, index_trac,indnum_fn_num, tnat 5 5 implicit none … … 29 29 real deltaD 30 30 31 if ( ok_isotopes) then31 if (niso > 0) then 32 32 33 33 write(*,*) 'check_isotopes 31: err_msg=',err_msg … … 130 130 131 131 !write(*,*) 'check_isotopes 129' 132 if ( ok_isotrac) then132 if (nzone > 0) then 133 133 134 134 if (use_iso(2).and.use_iso(1)) then 135 do izone=1,n traceurs_zone135 do izone=1,nzone 136 136 ixt=index_trac(izone,indnum_fn_num(2)) 137 137 ieau=index_trac(izone,indnum_fn_num(1)) … … 157 157 enddo ! do k=1,llm 158 158 enddo ! do phase=1,nqo 159 enddo !do izone=1,n traceurs_zone159 enddo !do izone=1,nzone 160 160 endif !if (use_iso(2).and.use_iso(1)) then 161 161 … … 167 167 xtractot=0.0 168 168 xiiso=q(i,k,iq) 169 do izone=1,n traceurs_zone169 do izone=1,nzone 170 170 iq=iqiso(index_trac(izone,iiso),phase) 171 171 xtractot=xtractot+ q(i,k,iq) … … 185 185 ! bidouille pour éviter divergence: 186 186 if (abs(xtractot).gt.ridicule) then 187 do izone=1,n traceurs_zone187 do izone=1,nzone 188 188 ixt=index_trac(izone,iiso) 189 189 q(i,k,iq)=q(i,k,iq)/xtractot*xiiso 190 enddo !do izone=1,n traceurs_zone190 enddo !do izone=1,nzone 191 191 endif !if ((abs(xtractot).gt.ridicule) then 192 192 enddo !DO i = 1,ip1jmp1 … … 195 195 enddo !do iiso=1,niso 196 196 197 endif !if ( ok_isotrac) then198 199 endif ! if ( ok_isotopes)197 endif !if (nzone > 0) 198 199 endif ! if (niso > 0) 200 200 !write(*,*) 'check_isotopes 198' 201 201 -
LMDZ6/trunk/libf/dyn3d/dynetat0.F90
r4120 r4124 6 6 ! Purpose: Initial state reading. 7 7 !------------------------------------------------------------------------------- 8 USE infotrac, ONLY: nqtot, tracers, niso, iqiso, iso_indnum, iso_num, tnat, alpha_ideal, ok_isotopes,iH2O8 USE infotrac, ONLY: nqtot, tracers, niso, iqiso, iso_indnum, iso_num, tnat, alpha_ideal, iH2O 9 9 USE strings_mod, ONLY: maxlen, msg, strStack, real2str 10 10 USE netcdf, ONLY: NF90_OPEN, NF90_NOWRITE, NF90_INQ_VARID, & -
LMDZ6/trunk/libf/dyn3d/iniacademic.F90
r4120 r4124 5 5 6 6 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, & 8 8 iqiso, tracers, iso_indnum, iso_num 9 9 USE control_mod, ONLY: day_step,planet_type … … 284 284 ! iName = tracers(iq)%iso_iName ! (next commit) 285 285 iName = iso_num(iq) 286 if ( .NOT.ok_isotopes.OR. iName <= 0) CYCLE286 if (niso <= 0 .OR. iName <= 0) CYCLE 287 287 iPhase = tracers(iq)%iso_iPhase 288 288 iqParent = tracers(iq)%iqParent -
LMDZ6/trunk/libf/dyn3d/qminimum.F
r2600 r4124 4 4 SUBROUTINE qminimum( q,nqtot,deltap ) 5 5 6 USE infotrac, ONLY: ok_isotopes,ntraciso,iqiso,ok_iso_verif6 USE infotrac, ONLY: niso, ntraciso,iqiso,ok_iso_verif 7 7 IMPLICIT none 8 8 c … … 59 59 if (seuil_liq - q(i,k,iq_liq) .gt. 0.d0 ) then 60 60 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 63 62 : ( seuil_liq - q(i,k,iq_liq), 0.0 ) 64 endif !if (ok_isotopes) then65 63 66 64 q(i,k,iq_vap) = q(i,k,iq_vap) + q(i,k,iq_liq) - seuil_liq … … 80 78 if ( seuil_vap - q(i,k,iq) .gt. 0.d0 ) then 81 79 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 ) 85 82 86 83 q(i,k-1,iq) = q(i,k-1,iq) - ( seuil_vap - q(i,k,iq) ) * … … 110 107 111 108 !write(*,*) 'qminimum 128' 112 if ( ok_isotopes) then109 if (niso > 0) then 113 110 ! CRisi: traiter de même les traceurs d'eau 114 111 ! Mais il faut les prendre à l'envers pour essayer de conserver la … … 184 181 endif !if (ok_iso_verif) then 185 182 186 endif !if ( ok_isotopes) then183 endif !if (niso > 0) then 187 184 !write(*,*) 'qminimum 188' 188 185 -
LMDZ6/trunk/libf/dyn3d_common/infotrac.F90
r4122 r4124 16 16 PUBLIC :: tracers, type_trac !--- Full tracers database, tracers type keyword 17 17 PUBLIC :: nqtot, nbtr, nqo, nqCO2, nqtottr !--- Main dimensions 18 PUBLIC :: solsym, conv_flg, pbl_flg !--- Tracers names + convection & boundary layer activation keys18 PUBLIC :: conv_flg, pbl_flg !--- Convection & boundary layer activation keys 19 19 20 20 !=== FOR ISOTOPES: General … … 36 36 !=== OLD QUANTITIES OR ALIASES FOR OLDER NAMES (TO BE REMOVED SOON) 37 37 PUBLIC :: ntraciso, ntraceurs_zone 38 PUBLIC :: ok_iso topes, ok_iso_verif, ok_isotrac, use_iso38 PUBLIC :: ok_iso_verif, use_iso 39 39 PUBLIC :: iso_num, iso_indnum, indnum_fn_num, niso_possibles 40 40 PUBLIC :: qperemin, masseqmin, ratiomin … … 139 139 REAL, SAVE :: qperemin, masseqmin, ratiomin 140 140 INTEGER, SAVE :: niso_possibles 141 LOGICAL, SAVE :: ok_iso topes, ok_iso_verif, ok_isotrac141 LOGICAL, SAVE :: ok_iso_verif 142 142 LOGICAL, SAVE, ALLOCATABLE :: use_iso(:) 143 143 INTEGER, SAVE, ALLOCATABLE :: iso_num(:) !--- idx in [1,niso_possibles] = f(1<=iq <=nqtot) … … 150 150 INTEGER, SAVE, ALLOCATABLE :: conv_flg(:), & !--- Convection activation ; needed for INCA (nbtr) 151 151 pbl_flg(:) !--- Boundary layer activation ; needed for INCA (nbtr) 152 CHARACTER(LEN=8), SAVE, ALLOCATABLE :: solsym(:) !--- Names from INCA (nbtr)153 152 LOGICAL, PARAMETER :: lOldCode = .TRUE. 154 153 … … 379 378 IF(ALL([2,3] /= nqo)) CALL abort_gcm(modname, 'Only 2 or 3 water phases allowed ; found nqo='//TRIM(int2str(nqo)), 1) 380 379 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)) 382 381 CALL init_transport(hadv_inca, vadv_inca, conv_flg_inca, pbl_flg_inca, solsym_inca) 383 382 !--- Passive CO2 tracer is at position 1 because: H2O has been removed ; nqCO2/=0 in "inco" case only 384 383 conv_flg(1:nbtr) = [(1, k=1, nqCO2), conv_flg_inca] 385 384 pbl_flg(1:nbtr) = [(1, k=1, nqCO2), pbl_flg_inca] 386 solsym (1:nbtr) = [('CO2 ', k=1, nqCO2), solsym_inca]387 385 ALLOCATE(ttr(nqtrue)) 388 386 ttr(1:nqo+nqCO2) = tracers … … 390 388 ttr(1+nqo:nqCO2+nqo )%component = 'co2i' 391 389 ttr(1+nqo+nqCO2:nqtrue)%component = 'inca' 392 ttr(1+nqo :nqtrue)%name = solsym390 ttr(1+nqo :nqtrue)%name = [('CO2 ', k=1, nqCO2), solsym_inca] 393 391 ttr(1+nqo+nqCO2:nqtrue)%parent = tran0 394 392 ttr(1+nqo+nqCO2:nqtrue)%phase = 'g' … … 409 407 lerr = getKey('hadv', hadv, ky=tracers(:)%keys) 410 408 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)) 412 410 conv_flg(1:nbtr) = [(1, it=1, nbtr)] !--- Convection activated for all tracers 413 411 pbl_flg(1:nbtr) = [(1, it=1, nbtr)] !--- Boundary layer activated for all tracers … … 534 532 nqtottr = nqtot-nqo*(1+ntiso) !--- NO H2O-FAMILY TRACER IS PASSED TO THE PHYSICS 535 533 536 ALLOCATE(conv_flg(nbtr), pbl_flg(nbtr) , solsym(nbtr))534 ALLOCATE(conv_flg(nbtr), pbl_flg(nbtr)) 537 535 #ifndef INCA 538 536 conv_flg(1:nbtr) = 1 !--- Convection activated for all tracers … … 540 538 #else 541 539 !--- 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] 545 542 #endif 546 543 … … 798 795 799 796 !--- Isotopic quantities (to be removed soon) 800 ok_isotopes = i%niso > 0801 ok_isotrac = i%nzone > 0802 797 ok_iso_verif = i%check 803 798 niso_possibles = SIZE(tnom_iso) -
LMDZ6/trunk/libf/dyn3dmem/check_isotopes_loc.F
r4050 r4124 1 1 subroutine check_isotopes(q,ijb,ije,err_msg) 2 USE infotrac, ONLY: nqtot, nqo, niso, ntraciso, n traceurs_zone,3 & ok_isotopes, ok_isotrac,use_iso,2 USE infotrac, ONLY: nqtot, nqo, niso, ntraciso, nzone, 3 & use_iso, 4 4 & iqiso, indnum_fn_num, index_trac, tnat 5 5 USE parallel_lmdz … … 30 30 real deltaD 31 31 32 if ( ok_isotopes) then32 if (niso > 0) then 33 33 34 34 ! write(*,*) 'check_isotopes 31: err_msg=',err_msg … … 139 139 140 140 ! write(*,*) 'check_isotopes 129' 141 if ( ok_isotrac) then141 if (nzone > 0) then 142 142 143 143 if (use_iso(2).and.use_iso(1)) then … … 208 208 enddo !do iiso=1,niso 209 209 210 endif !if ( ok_isotrac) then211 212 endif ! if ( ok_isotopes)210 endif !if (nzone > 0) 211 212 endif ! if (niso > 0) 213 213 ! write(*,*) 'check_isotopes 198' 214 214 -
LMDZ6/trunk/libf/dyn3dmem/dynetat0_loc.F90
r4120 r4124 7 7 !------------------------------------------------------------------------------- 8 8 USE parallel_lmdz 9 USE infotrac, ONLY: nqtot, tracers, niso, iqiso, iso_indnum, iso_num, tnat, alpha_ideal, ok_isotopes,iH2O9 USE infotrac, ONLY: nqtot, tracers, niso, iqiso, iso_indnum, iso_num, tnat, alpha_ideal, iH2O 10 10 USE strings_mod, ONLY: maxlen, msg, strStack, real2str 11 11 USE netcdf, ONLY: NF90_OPEN, NF90_NOWRITE, NF90_INQUIRE_DIMENSION, NF90_INQ_VARID, & -
LMDZ6/trunk/libf/dyn3dmem/iniacademic_loc.F90
r4120 r4124 5 5 6 6 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, & 8 8 iqiso, tracers, iso_indnum, iso_num 9 9 USE control_mod, ONLY: day_step,planet_type … … 288 288 ! iName = tracers(iq)%iso_iName ! (next commit) 289 289 iName = iso_num(iq) 290 if ( .NOT.ok_isotopes.OR. iName <= 0) CYCLE290 if (niso <= 0 .OR. iName <= 0) CYCLE 291 291 iPhase = tracers(iq)%iso_iPhase 292 292 iqParent = tracers(iq)%iqParent -
LMDZ6/trunk/libf/dyn3dmem/qminimum_loc.F
r3801 r4124 4 4 SUBROUTINE qminimum_loc( q,nqtot,deltap ) 5 5 USE parallel_lmdz 6 USE infotrac, ONLY: ok_isotopes,ntraciso,iqiso,ok_iso_verif, &6 USE infotrac, ONLY: niso,ntraciso,iqiso,ok_iso_verif, & 7 7 & ratiomin,qperemin ! CRisi 23nov2020 8 8 IMPLICIT none … … 71 71 if (seuil_liq - q(i,k,iq_liq) .gt. 0.d0 ) then 72 72 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 75 74 : ( seuil_liq - q(i,k,iq_liq), 0.0 ) 76 endif !if (ok_isotopes) then77 75 78 76 q(i,k,iq_vap) = q(i,k,iq_vap) + q(i,k,iq_liq) - seuil_liq … … 100 98 if ( seuil_vap - q(i,k,iq) .gt. 0.d0 ) then 101 99 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 ) 105 102 106 103 q(i,k-1,iq) = q(i,k-1,iq) - ( seuil_vap - q(i,k,iq) ) * … … 141 138 142 139 !write(lunout,*) 'qminimum 128' 143 if ( ok_isotopes) then140 if (niso > 0) then 144 141 !write(lunout,*) 'qminimum 140' 145 142 ! CRisi: traiter de même les traceurs d'eau … … 277 274 endif !if (ok_iso_verif) then 278 275 279 endif !if ( ok_isotopes) then276 endif !if (niso > 0) then 280 277 !write(*,*) 'qminimum 188' 281 278 c -
LMDZ6/trunk/libf/dynphy_lonlat/phylmd/iniphysiq_mod.F90
r4120 r4124 16 16 USE mod_phys_lmdz_para, ONLY: klon_omp ! number of columns (on local omp grid) 17 17 USE vertical_layers_mod, ONLY : init_vertical_layers 18 USE infotrac, ONLY: nbtr,nqCO2,tracers,isotopes,type_trac,conv_flg,pbl_flg, solsym,nqtottr18 USE infotrac, ONLY: nbtr,nqCO2,tracers,isotopes,type_trac,conv_flg,pbl_flg,nqtottr 19 19 #ifdef CPP_StratAer 20 20 USE infotrac_phy, ONLY: nbtr_bin, nbtr_sulgas, id_OCS_strat, & … … 137 137 138 138 ! 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) 140 140 141 141 ! Initializations for Reprobus -
LMDZ6/trunk/libf/phylmd/infotrac_phy.F90
r4120 r4124 15 15 PUBLIC :: tracers, type_trac !--- Full tracers database, tracers type keyword 16 16 PUBLIC :: nqtot, nbtr, nqo, nqCO2, nqtottr !--- Main dimensions 17 PUBLIC :: conv_flg, pbl_flg , solsym!--- Convection & boundary layer activation keys17 PUBLIC :: conv_flg, pbl_flg !--- Convection & boundary layer activation keys 18 18 19 19 !=== FOR ISOTOPES: General … … 33 33 34 34 PUBLIC :: ntraciso, ntraceurs_zone, indnum_fn_num, use_iso, index_trac, iqiso 35 PUBLIC :: niso_possibles, ok_iso trac, ok_isotopes, ok_iso_verif35 PUBLIC :: niso_possibles, ok_iso_verif 36 36 37 37 INTERFACE isoSelect; MODULE PROCEDURE isoSelectByIndex, isoSelectByName; END INTERFACE isoSelect … … 132 132 INTEGER, SAVE, ALLOCATABLE ::conv_flg(:), & !--- Convection activation ; needed for INCA (nbtr) 133 133 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) 136 135 137 136 !--- Aliases for older names + quantities to be removed (will be replaced by:) … … 142 141 INTEGER, SAVE :: niso_possibles !--- suppressed (use effective niso instead) 143 142 !$OMP THREADPRIVATE(niso_possibles) 144 LOGICAL, SAVE :: ok_iso topes, ok_iso_verif, ok_isotrac !--- -> niso>0, isoCheck, nzone>0145 !$OMP THREADPRIVATE(ok_iso topes, ok_iso_verif, ok_isotrac)143 LOGICAL, SAVE :: ok_iso_verif !--- -> isoCheck 144 !$OMP THREADPRIVATE(ok_iso_verif) 146 145 LOGICAL, SAVE, ALLOCATABLE :: use_iso(:) !--- suppressed 147 146 !$OMP THREADPRIVATE (use_iso) … … 159 158 CONTAINS 160 159 161 SUBROUTINE init_infotrac_phy(type_trac_, tracers_, isotopes_, nqtottr_, nqCO2_, pbl_flg_, conv_flg_ , solsym_)160 SUBROUTINE init_infotrac_phy(type_trac_, tracers_, isotopes_, nqtottr_, nqCO2_, pbl_flg_, conv_flg_) 162 161 163 162 USE print_control_mod, ONLY: prt_level, lunout … … 171 170 INTEGER, INTENT(IN) :: conv_flg_(:) 172 171 INTEGER, INTENT(IN) :: pbl_flg_(:) 173 CHARACTER(LEN=*),INTENT(IN) :: solsym_(:)174 172 175 173 INTEGER :: iq, ixt … … 186 184 pbl_flg = pbl_flg_ 187 185 conv_flg = conv_flg_ 188 solsym = solsym_189 186 nqtot = SIZE(tracers_) 190 187 nqo = COUNT(delPhase(tracers%name)=='H2O' .AND. tracers%iGeneration==0) … … 230 227 iqiso => iqTraPha 231 228 index_trac => itZonIso 232 ok_isotopes = niso > 0233 ok_isotrac = nzone > 0234 229 ok_iso_verif = isoCheck 235 230 niso_possibles = SIZE(tnom_iso) -
LMDZ6/trunk/libf/phylmd/phytrac_mod.F90
r4089 r4124 124 124 USE phys_cal_mod, only : hour 125 125 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 127 128 USE mod_grid_phy_lmdz 128 129 USE mod_phys_lmdz_para … … 753 754 END DO 754 755 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))) 756 757 757 758 END DO ! nbtr … … 955 956 ENDDO 956 957 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))) 958 959 ENDIF 959 960 -
LMDZ6/trunk/libf/phylmd/rrtm/readaerosol_optic_rrtm.F90
r3630 r4124 20 20 load_tmp8,load_tmp9,load_tmp10 21 21 22 USE infotrac_phy 22 USE infotrac_phy, ONLY: tracers, nqtot, nbtr 23 23 USE YOMCST 24 24 … … 91 91 integer :: id_ASBCM, id_ASPOMM, id_ASSO4M, id_ASMSAM, id_CSSO4M, id_CSMSAM, id_SSSSM 92 92 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 94 94 95 95 !--air density … … 107 107 !--convert to ug m-3 unit for consistency with offline fields 108 108 ! 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 143 131 144 132 bcsol(:,:) = tr_seri(:,:,id_ASBCM) *zrho(:,:)*1.e9 ! ASBCM -
LMDZ6/trunk/libf/phylmd/traclmdz_mod.F90
r4071 r4124 311 311 312 312 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 314 315 USE regr_pr_comb_coefoz_m, ONLY: regr_pr_comb_coefoz 315 316 USE o3_chem_m, ONLY: o3_chem … … 551 552 552 553 DO it=1,nbtr 553 WRITE(solsym(it),'(i2)') it554 END DO555 556 DO it=1,nbtr557 554 IF(radio(it)) then 558 555 DO k = 1, klev … … 561 558 END DO 562 559 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))) 564 561 END IF 565 562 END DO -
LMDZ6/trunk/libf/phylmd/tracreprobus_mod.F90
r4050 r4124 12 12 13 13 USE dimphy 14 USE infotrac_phy, ONLY: nbtr , solsym14 USE infotrac_phy, ONLY: nbtr 15 15 #ifdef REPROBUS 16 16 USE CHEM_REP, ONLY : pdt_rep, & ! pas de temps reprobus … … 119 119 120 120 END DO 121 122 123 !124 DO it=1,nbtr125 WRITE(solsym(it),'(i2)') it126 END DO127 121 #endif 128 122 END SUBROUTINE tracreprobus -
LMDZ6/trunk/libf/phylmdiso/climb_hq_mod.F90
r4004 r4124 502 502 503 503 #ifdef ISOVERIF 504 USE infotrac_phy, ONLY: ok_isotrac504 USE infotrac_phy, ONLY: nzone 505 505 USE isotopes_mod, ONLY: iso_eau,iso_HDO,iso_O18, ridicule 506 506 USE isotopes_verif_mod … … 578 578 endif 579 579 #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') 583 581 #endif 584 582 enddo … … 781 779 endif 782 780 #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') 786 782 #endif 787 783 #endif -
LMDZ6/trunk/libf/phylmdiso/isotopes_mod.F90
r4036 r4124 3 3 4 4 MODULE isotopes_mod 5 USE infotrac_phy, ONLY: ntraciso,niso,indnum_fn_num, ok_isotrac,use_iso, &5 USE infotrac_phy, ONLY: ntraciso,niso,indnum_fn_num,use_iso, & 6 6 & niso_possibles 7 7 IMPLICIT NONE … … 245 245 write(*,*) 'iso_init 64: niso=',niso 246 246 247 ! init de ntracisoOR: on écrasera en cas de ok_isotracsi complications avec247 ! init de ntracisoOR: on écrasera en cas de nzone>0 si complications avec 248 248 ! ORCHIDEE 249 249 ntracisoOR=ntraciso … … 327 327 call getin_p('essai_convergence',essai_convergence) 328 328 call getin_p('initialisation_iso',initialisation_iso) 329 !if ( ok_isotrac) then329 !if (nzone>0) then 330 330 !if (initialisation_iso.eq.0) then 331 331 ! call getin_p('initialisation_isotrac',initialisation_isotrac) 332 332 !endif !if (initialisation_iso.eq.0) then 333 !endif !if ( ok_isotrac) then333 !endif !if (nzone>0) 334 334 call getin_p('modif_sst',modif_sst) 335 335 if (modif_sst.ge.1) then -
LMDZ6/trunk/libf/phylmdiso/physiq_mod.F90
r4120 r4124 40 40 USE indice_sol_mod 41 41 USE infotrac, ONLY: iso_num, iso_indnum 42 USE infotrac_phy, ONLY: nqtot, nbtr, nqo, tracers, type_trac, nqCO2, ok_isotopes,indnum_fn_num42 USE infotrac_phy, ONLY: nqtot, nbtr, nqo, tracers, type_trac, nqCO2, indnum_fn_num 43 43 USE readTracFiles_mod, ONLY: addPhase 44 44 USE strings_mod, ONLY: strIdx, strStack, int2str … … 126 126 127 127 #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, & 131 130 & bidouille_anti_divergence,ok_bidouille_wake, & 132 131 & modif_ratqs,essai_convergence,iso_init,ridicule_rain,tnat, & 133 132 & ridicule,ridicule_snow 134 133 USE isotopes_routines_mod, ONLY: iso_tritium 135 134 #ifdef ISOVERIF 136 135 USE isotopes_verif_mod, ONLY: errmax,errmaxrel, & … … 1595 1594 ! dyn3dmem et physiq 1596 1595 #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) 1601 1598 #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) 1605 1600 #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 1613 1603 #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 1620 1606 1621 1607 #ifdef ISO … … 1623 1609 #ifdef ISOVERIF 1624 1610 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() 1630 1614 #ifdef ISOTRAC 1631 if (ok_isotrac) then1615 IF(nzone > 0) then 1632 1616 write(*,*) 'physiq 1416: call iso_traceurs_init' 1633 1617 call iso_traceurs_init() … … 2424 2408 #ifdef ISOVERIF 2425 2409 ! write(*,*) 'physiq 1847: qx(1,1,:)=',qx(1,1,:) 2426 write(*,*) 'physiq 1846b: ok_isotopes,ntraciso,niso=', ok_isotopes,ntraciso,niso2410 write(*,*) 'physiq 1846b: ok_isotopes,ntraciso,niso=',niso>0,ntraciso,niso 2427 2411 #endif 2428 2412 do ixt=1,ntraciso … … 2451 2435 #endif 2452 2436 ! #ifdef ISO 2453 2454 2437 ! 2455 2438 !--OB mass fixer … … 2521 2504 ! Diagnostiquer la tendance dynamique 2522 2505 #ifdef ISOVERIF 2523 !write(*,*) 'physiq tmp 2010: ancien_ok=',ancien_ok2524 2506 if ((iso_HDO.gt.0).and.(iso_O18.gt.0)) then 2525 2507 do i=1,klon … … 6821 6803 endif ! if (iso_eau.gt.0) then 6822 6804 #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') 6826 6806 #endif 6827 6807 enddo
Note: See TracChangeset
for help on using the changeset viewer.