Changeset 3870 for LMDZ6/trunk/libf/phylmd
- Timestamp:
- Apr 8, 2021, 10:58:58 PM (4 years ago)
- Location:
- LMDZ6/trunk/libf/phylmd
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/phylmd/infotrac_phy.F90
r3865 r3870 21 21 !$OMP THREADPRIVATE(nbtr) 22 22 23 ! ThL : number of tracers specific to INCA24 INTEGER, SAVE :: nq INCA25 !$OMP THREADPRIVATE(nq INCA)23 ! ThL : number of CO2 tracers ModThL 24 INTEGER, SAVE :: nqCO2 25 !$OMP THREADPRIVATE(nqCO2) 26 26 27 27 #ifdef CPP_StratAer … … 37 37 INTEGER, SAVE :: nqperes 38 38 !$OMP THREADPRIVATE(nqperes) 39 40 ! ThL : nb de traceurs dans le traceur.def41 INTEGER, SAVE :: nqexcl42 !$OMP THREADPRIVATE(nqexcl)43 39 44 40 ! Name variables … … 104 100 CONTAINS 105 101 106 SUBROUTINE init_infotrac_phy(nqtot_,nqo_,nbtr_,nq INCA_,tname_,ttext_,type_trac_,&102 SUBROUTINE init_infotrac_phy(nqtot_,nqo_,nbtr_,nqCO2_,tname_,ttext_,type_trac_,& 107 103 niadv_,conv_flg_,pbl_flg_,solsym_,& 108 104 nqfils_,nqdesc_,nqdesc_tot_,iqfils_,iqpere_,& … … 126 122 INTEGER,INTENT(IN) :: nqo_ 127 123 INTEGER,INTENT(IN) :: nbtr_ 128 INTEGER,INTENT(IN) :: nq INCA_124 INTEGER,INTENT(IN) :: nqCO2_ 129 125 #ifdef CPP_StratAer 130 126 INTEGER,INTENT(IN) :: nbtr_bin_ … … 139 135 CHARACTER(len=4),INTENT(IN) :: type_trac_ 140 136 INTEGER,INTENT(IN) :: niadv_ (nqtot_) ! equivalent dyn / physique 141 INTEGER,INTENT(IN) :: conv_flg_(n qINCA_)142 INTEGER,INTENT(IN) :: pbl_flg_(n qINCA_)143 CHARACTER(len=8),INTENT(IN) :: solsym_(n qINCA_)137 INTEGER,INTENT(IN) :: conv_flg_(nbtr_) ! ModThL 138 INTEGER,INTENT(IN) :: pbl_flg_(nbtr_) ! ModThL 139 CHARACTER(len=8),INTENT(IN) :: solsym_(nbtr_) ! ModThL 144 140 ! Isotopes: 145 141 INTEGER,INTENT(IN) :: nqfils_(nqtot_) … … 172 168 nqo=nqo_ 173 169 nbtr=nbtr_ 174 nq INCA=nqINCA_170 nqCO2=nqCO2_ ! ModThL 175 171 #ifdef CPP_StratAer 176 172 nbtr_bin=nbtr_bin_ … … 189 185 niadv(:)=niadv_(:) 190 186 ALLOCATE(conv_flg(nbtr)) 191 IF (type_trac == 'inco') THEN 192 conv_flg(1)=1 193 conv_flg(2:nbtr)=conv_flg_(:) 194 ELSE 195 conv_flg(:)=conv_flg_(:) 196 ENDIF 187 conv_flg(:)=conv_flg_(:) 197 188 ALLOCATE(pbl_flg(nbtr)) 198 IF (type_trac == 'inco') THEN 199 pbl_flg(1)=1 200 pbl_flg(2:nbtr)=pbl_flg_(:) 201 ELSE 202 pbl_flg(:)=pbl_flg_(:) 203 ENDIF 189 pbl_flg(:)=pbl_flg_(:) 204 190 ALLOCATE(solsym(nbtr)) 205 IF (type_trac == 'inco') THEN 206 solsym(1)='CO2' 207 solsym(2:nbtr)=solsym_(:) 208 ELSE 209 solsym(:)=solsym_(:) 210 ENDIF 191 solsym(:)=solsym_(:) 211 192 212 193 IF(prt_level.ge.1) THEN 213 write(lunout,*) TRIM(modname)//": nqtot,nqo,nbtr,nq INCA",nqtot,nqo,nbtr,nqINCA194 write(lunout,*) TRIM(modname)//": nqtot,nqo,nbtr,nqCO2",nqtot,nqo,nbtr,nqCO2 ! ModThL 214 195 ENDIF 215 196 -
LMDZ6/trunk/libf/phylmd/physiq_mod.F90
r3865 r3870 39 39 USE ioipsl_getin_p_mod, ONLY : getin_p 40 40 USE indice_sol_mod 41 USE infotrac_phy, ONLY: nqtot, nbtr, nqo, type_trac, nq INCA41 USE infotrac_phy, ONLY: nqtot, nbtr, nqo, type_trac, nqCO2 42 42 USE iophy 43 43 USE limit_read_mod, ONLY : init_limit_read … … 1926 1926 !c ENDDO 1927 1927 ! 1928 IF (type_trac == 'inca' ) THEN1928 IF (type_trac == 'inca' .OR. type_trac == 'inco') THEN ! ModThL 1929 1929 #ifdef INCA 1930 1930 CALL VTe(VTphysiq) … … 1943 1943 klon, & 1944 1944 nqtot, & 1945 nqo , &1945 nqo+nqCO2, & ! ModThL 1946 1946 pdtphys, & 1947 1947 annee_ref, & … … 1968 1968 cg_aero(:,:,:,:) = init_cginca 1969 1969 ! 1970 1971 1972 CALL VTe(VTinca)1973 CALL VTb(VTphysiq)1974 #endif1975 ELSEIF (type_trac == 'inco') THEN1976 #ifdef INCA1977 CALL VTe(VTphysiq)1978 CALL VTb(VTinca)1979 calday = REAL(days_elapsed) + jH_cur1980 WRITE(lunout,*) 'initial time chemini', days_elapsed, calday1981 1982 CALL chemini( &1983 rg, &1984 ra, &1985 cell_area, &1986 latitude_deg, &1987 longitude_deg, &1988 presnivs, &1989 calday, &1990 klon, &1991 nqtot, &1992 nqo+1, & ! Note ThL: diff is here with case 'inca'1993 pdtphys, &1994 annee_ref, &1995 year_cur, &1996 day_ref, &1997 day_ini, &1998 start_time, &1999 itau_phy, &2000 date0, &2001 io_lon, &2002 io_lat, &2003 chemistry_couple, &2004 init_source, &2005 init_tauinca, &2006 init_pizinca, &2007 init_cginca, &2008 init_ccminca)2009 2010 2011 ! initialisation des variables depuis le restart de inca2012 ccm(:,:,:) = init_ccminca2013 tau_aero(:,:,:,:) = init_tauinca2014 piz_aero(:,:,:,:) = init_pizinca2015 cg_aero(:,:,:,:) = init_cginca2016 !2017 1970 2018 1971 … … 3785 3738 ENDDO 3786 3739 3787 IF (type_trac == 'inca' ) THEN3740 IF (type_trac == 'inca' .OR. type_trac == 'inco') THEN ! ModThL 3788 3741 #ifdef INCA 3789 3742 CALL VTe(VTphysiq) … … 3828 3781 nbp_lon, & 3829 3782 nbp_lat-1, & 3830 tr_seri, & 3831 ftsol, & 3832 paprs, & 3833 cdragh, & 3834 cdragm, & 3835 pctsrf, & 3836 pdtphys, & 3837 itap) 3838 3839 CALL VTe(VTinca) 3840 CALL VTb(VTphysiq) 3841 #endif 3842 ELSEIF (type_trac == 'inco') THEN 3843 #ifdef INCA 3844 CALL VTe(VTphysiq) 3845 CALL VTb(VTinca) 3846 calday = REAL(days_elapsed + 1) + jH_cur 3847 3848 CALL chemtime(itap+itau_phy-1, date0, phys_tstep, itap) 3849 CALL AEROSOL_METEO_CALC( & 3850 calday,pdtphys,pplay,paprs,t,pmflxr,pmflxs, & 3851 prfl,psfl,pctsrf,cell_area, & 3852 latitude_deg,longitude_deg,u10m,v10m) 3853 3854 zxsnow_dummy(:) = 0.0 3855 3856 CALL chemhook_begin (calday, & 3857 days_elapsed+1, & 3858 jH_cur, & 3859 pctsrf(1,1), & 3860 latitude_deg, & 3861 longitude_deg, & 3862 cell_area, & 3863 paprs, & 3864 pplay, & 3865 coefh(1:klon,1:klev,is_ave), & 3866 pphi, & 3867 t_seri, & 3868 u, & 3869 v, & 3870 rot, & 3871 wo(:, :, 1), & 3872 q_seri, & 3873 zxtsol, & 3874 zt2m, & 3875 zxsnow_dummy, & 3876 solsw, & 3877 albsol1, & 3878 rain_fall, & 3879 snow_fall, & 3880 itop_con, & 3881 ibas_con, & 3882 cldfra, & 3883 nbp_lon, & 3884 nbp_lat-1, & 3885 tr_seri(:,:,2:nbtr), & ! Note ThL: diff is here with case 'inca' 3783 tr_seri(:,:,1+nqCO2:nbtr), & ! ModThL 3886 3784 ftsol, & 3887 3785 paprs, & … … 5025 4923 ENDDO 5026 4924 ! 5027 IF (type_trac == 'inca' ) THEN4925 IF (type_trac == 'inca' .OR. type_trac == 'inco') THEN ! ModThL 5028 4926 #ifdef INCA 5029 4927 CALL VTe(VTphysiq) … … 5034 4932 pplay, & 5035 4933 t_seri, & 5036 tr_seri, & 5037 nbtr, & 5038 paprs, & 5039 q_seri, & 5040 cell_area, & 5041 pphi, & 5042 pphis, & 5043 zx_rh, & 5044 aps, bps, ap, bp) 5045 5046 CALL VTe(VTinca) 5047 CALL VTb(VTphysiq) 5048 #endif 5049 ELSEIF (type_trac == 'inco') THEN 5050 #ifdef INCA 5051 CALL VTe(VTphysiq) 5052 CALL VTb(VTinca) 5053 5054 CALL chemhook_end ( & 5055 phys_tstep, & 5056 pplay, & 5057 t_seri, & 5058 tr_seri(:,:,2:nbtr), & ! Note ThL: diff is here with case 'inca' 4934 tr_seri(:,:,1+nqCO2:nbtr), & ! ModThL 5059 4935 nbtr, & 5060 4936 paprs, & -
LMDZ6/trunk/libf/phylmd/phytrac_mod.F90
r3865 r3870 56 56 SUBROUTINE phytrac_init() 57 57 USE dimphy 58 USE infotrac_phy, ONLY: nbtr, nq INCA, type_trac58 USE infotrac_phy, ONLY: nbtr, nqCO2, type_trac 59 59 USE tracco2i_mod, ONLY: tracco2i_init 60 60 IMPLICIT NONE … … 124 124 USE phys_cal_mod, only : hour 125 125 USE dimphy 126 USE infotrac_phy, ONLY: nbtr, nq INCA, type_trac, conv_flg, solsym, pbl_flg126 USE infotrac_phy, ONLY: nbtr, nqCO2, type_trac, conv_flg, solsym, pbl_flg 127 127 USE mod_grid_phy_lmdz 128 128 USE mod_phys_lmdz_para … … 508 508 iflag_con_trac= 1 509 509 CASE('inco') 510 source(:,1 ) = 0. ! from CO2i511 source(:, 2:nbtr)=init_source(:,:) ! from INCA512 aerosol(1 ) = .FALSE. ! from CO2i513 CALL tracinca_init(aerosol( 2:nbtr),lessivage) ! from INCA514 pbl_flg(1 ) = 1 ! From CO2i510 source(:,1:nqCO2) = 0. ! from CO2i ModThL 511 source(:,nqCO2+1:nbtr)=init_source(:,:) ! from INCA ModThL 512 aerosol(1:nqCO2) = .FALSE. ! from CO2i ModThL 513 CALL tracinca_init(aerosol(nqCO2+1:nbtr),lessivage) ! from INCA ModThL 514 pbl_flg(1:nqCO2) = 1 ! From CO2i ModThL 515 515 iflag_the_trac= 1 ! From CO2i 516 516 iflag_vdf_trac= 1 ! From CO2i … … 1108 1108 1109 1109 ! -- CHIMIE INCA config_inca = aero or chem -- 1110 IF (type_trac == 'inca' ) THEN1110 IF (type_trac == 'inca' .OR. type_trac == 'inco') THEN ! ModThL 1111 1111 1112 1112 CALL tracinca(& … … 1120 1120 tau_aero, piz_aero, cg_aero, ccm, & 1121 1121 rfname, & 1122 tr_seri, source) 1123 ELSEIF (type_trac == 'inco') THEN ! Add ThL 1124 CALL tracinca(& 1125 nstep, julien, gmtime, lafin, & 1126 pdtphys, t_seri, paprs, pplay, & 1127 pmfu, upwd, ftsol, pctsrf, pphis, & 1128 pphi, albsol, sh, ch, rh, & 1129 cldfra, rneb, diafra, cldliq, & 1130 itop_con, ibas_con, pmflxr, pmflxs, & 1131 prfl, psfl, aerosol_couple, flxmass_w, & 1132 tau_aero, piz_aero, cg_aero, ccm, & 1133 rfname, & 1134 tr_seri(:,:,2:nbtr), source(:,2:nbtr)) ! Difference with case 'inca' 1122 tr_seri(:,:,1+nqCO2:nbtr), source(:,1+nqCO2:nbtr)) ! ModThL 1135 1123 ENDIF 1136 1124 !=============================================================
Note: See TracChangeset
for help on using the changeset viewer.