Changeset 4124 for LMDZ6/trunk/libf/phylmd
- Timestamp:
- Apr 8, 2022, 4:47:04 PM (3 years ago)
- Location:
- LMDZ6/trunk/libf/phylmd
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
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
Note: See TracChangeset
for help on using the changeset viewer.