Changeset 4773
- Timestamp:
- Dec 14, 2023, 11:00:52 PM (13 months ago)
- Location:
- LMDZ6/trunk
- Files:
-
- 575 added
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/DefLists/context_lmdz.xml
r4608 r4773 22 22 <file_definition src="./file_def_histdayCOSP_lmdz.xml"/> 23 23 <file_definition src="./file_def_histhfCOSP_lmdz.xml"/> 24 <!-- <file_definition src="./file_def_histmthECRAD2app_lmdz.xml"/> --> 25 <!-- <file_definition src="./file_def_histhfECRAD2app_lmdz.xml"/> --> 26 <!-- <file_definition src="./file_def_histdayECRAD2app_lmdz.xml"/> --> 24 27 <!-- <file_definition src="./file_def_histmthCOSPv2_lmdz.xml"/> --> 25 28 <!-- <file_definition src="./file_def_histdayCOSPv2_lmdz.xml"/> --> -
LMDZ6/trunk/bld.cfg
r4598 r4773 35 35 src::ext_src %EXT_SRC 36 36 src::Ocean_skin %SRC_PATH/%PHYS/Ocean_skin 37 src::radiation %RAD/radiation 38 src::ifsrrtm %RAD/ifsrrtm 39 src::ifsaux %RAD/ifsaux 40 src::ecradinc %RAD/include 41 src::ecradhook %RAD/drhook 42 src::ecradutil %RAD/utilities 37 43 38 44 bld::lib lmdz -
LMDZ6/trunk/libf/phylmd/clesphys.h
r4722 r4773 109 109 !AI flags pour ECRAD 110 110 LOGICAL :: ok_3Deffect 111 CHARACTER(len=512) :: namelist_ecrad_file112 111 113 112 COMMON/clesphys/ & … … 162 161 & , iflag_phytrac, ok_new_lscp, ok_bs, ok_rad_bs & 163 162 & , iflag_thermals,nsplit_thermals, tau_thermals & 164 & , iflag_physiq, ok_3Deffect , namelist_ecrad_file163 & , iflag_physiq, ok_3Deffect 165 164 save /clesphys/ 166 165 !$OMP THREADPRIVATE(/clesphys/) -
LMDZ6/trunk/libf/phylmd/phys_output_ctrlout_mod.F90
r4677 r4773 539 539 !AI Ecrad 3Deffect 540 540 #ifdef CPP_ECRAD 541 TYPE(ctrl_out), SAVE :: o_cloud_cover_sw = ctrl_out((/ 11, 11, 10, 10, 10, 10, 11, 11, 11, 11/), & 542 'cloud_cover_sw', 'Ecrad SW cloud cover', '-', (/ ('', i=1, 10) /)) 543 TYPE(ctrl_out), SAVE :: o_cloud_cover_sw_s2 = ctrl_out((/ 11, 11, 10, 10, 10, 10, 11, 11, 11, 11/), & 544 'cloud_cover_sw_s2', 'Ecrad SW cloud cover 2 call', '-', (/ ('', i=1, 10) /)) 541 545 TYPE(ctrl_out), SAVE :: o_sols_s2 = ctrl_out((/ 11, 11, 10, 10, 10, 10, 11, 11, 11, 11/), & 542 546 'sols_s2', 'Solar rad. at surf.', 'W/m2', (/ ('', i=1, 10) /)) -
LMDZ6/trunk/libf/phylmd/phys_output_var_mod.F90
r4703 r4773 177 177 !$OMP THREADPRIVATE(tkt, tks, taur, sss) 178 178 179 !AI. cloud_cover_sw, cloud_cover_sw_s2 from Ecrad (1rt and 2 call) 180 REAL, SAVE, ALLOCATABLE:: cloud_cover_sw(:), cloud_cover_sw_s2(:) 181 !$OMP THREADPRIVATE(cloud_cover_sw, cloud_cover_sw_s2) 182 179 183 CONTAINS 180 184 … … 253 257 ALLOCATE(icc3dstra(klon, klev)) 254 258 259 ! cloud_cover_sw, cloud_cover_sw_s2 from Ecrad 260 ALLOCATE(cloud_cover_sw(klon)) 261 ALLOCATE(cloud_cover_sw_s2(klon)) 262 255 263 END SUBROUTINE phys_output_var_init 256 264 … … 304 312 DEALLOCATE(icc3dstra) 305 313 314 !AI cloud_cover_sw, cloud_cover_sw_s2 from Ecrad 315 DEALLOCATE(cloud_cover_sw, cloud_cover_sw_s2) 316 306 317 END SUBROUTINE phys_output_var_end 307 318 -
LMDZ6/trunk/libf/phylmd/phys_output_write_mod.F90
r4755 r4773 231 231 USE phys_output_ctrlout_mod, ONLY: & 232 232 o_soll0_s2,o_soll_s2,o_sols0_s2,o_sols_s2, & 233 o_topl0_s2,o_topl_s2,o_tops0_s2,o_tops_s2 233 o_topl0_s2,o_topl_s2,o_tops0_s2,o_tops_s2, & 234 o_SWupTOA_s2,o_SWupTOAclr_s2,o_cloud_cover_sw, & 235 o_cloud_cover_sw_s2,o_SWdnTOA_s2,o_SWdnTOAclr_s2, & 236 o_LWupSFCclr_s2, o_LWdnSFCclr_s2, o_SWupSFC_s2, & 237 o_SWupSFCclr_s2, o_SWdnSFC_s2, o_SWdnSFCclr_s2, & 238 o_LWupSFC_s2, o_LWdnSFC_s2 234 239 #endif 235 240 … … 290 295 USE phys_state_var_mod, ONLY: & 291 296 sollw0_s2,sollw_s2,solsw0_s2,solsw_s2, & 292 toplw0_s2,toplw_s2,topsw0_s2,topsw_s2 297 toplw0_s2,toplw_s2,topsw0_s2,topsw_s2, & 298 toplw0_s2,toplw_s2,topsw0_s2,topsw_s2, & 299 swup0_s2,swup_s2,swdn_s2,swdn0_s2,sollwdownclr_s2, & 300 sollwdown_s2,lwdn0_s2 301 USE phys_output_var_mod, ONLY: cloud_cover_sw, & 302 cloud_cover_sw_s2 293 303 #endif 294 304 … … 1063 1073 !AI 08 2023 Ecrad 3Deffect 1064 1074 #ifdef CPP_ECRAD 1075 CALL histwrite_phy(o_cloud_cover_sw, cloud_cover_sw) 1065 1076 IF (ok_3Deffect) THEN 1066 IF (vars_defined) THEN 1077 CALL histwrite_phy(o_cloud_cover_sw_s2, cloud_cover_sw_s2) 1078 IF (vars_defined) THEN 1067 1079 zx_tmp_fi2d = solsw_s2*swradcorr 1068 1080 ENDIF … … 1086 1098 CALL histwrite_phy(o_topl_s2, toplw_s2) 1087 1099 CALL histwrite_phy(o_topl0_s2, toplw0_s2) 1088 ENDIF 1100 1101 IF (vars_defined) THEN 1102 zx_tmp_fi2d(:) = swup_s2(:,klevp1)*swradcorr(:) 1103 ENDIF 1104 CALL histwrite_phy(o_SWupTOA_s2, zx_tmp_fi2d) 1105 1106 IF (vars_defined) THEN 1107 zx_tmp_fi2d(:) = swup0_s2(:,klevp1)*swradcorr(:) 1108 ENDIF 1109 CALL histwrite_phy(o_SWupTOAclr_s2, zx_tmp_fi2d) 1110 1111 IF (vars_defined) THEN 1112 zx_tmp_fi2d(:) = swdn_s2(:,klevp1)*swradcorr(:) 1113 ENDIF 1114 CALL histwrite_phy(o_SWdnTOA_s2, zx_tmp_fi2d) 1115 1116 IF (vars_defined) THEN 1117 zx_tmp_fi2d(:) = swdn0_s2(:,klevp1)*swradcorr(:) 1118 ENDIF 1119 CALL histwrite_phy(o_SWdnTOAclr_s2, zx_tmp_fi2d) 1120 1121 IF (vars_defined) THEN 1122 zx_tmp_fi2d(:)=sollwdown_s2(:)-sollw_s2(:) 1123 ENDIF 1124 CALL histwrite_phy(o_LWupSFC_s2, zx_tmp_fi2d) 1125 CALL histwrite_phy(o_LWdnSFC_s2, sollwdown_s2) 1126 1127 IF (vars_defined) THEN 1128 sollwdownclr_s2(1:klon) = -1.*lwdn0_s2(1:klon,1) 1129 zx_tmp_fi2d(1:klon)=sollwdownclr_s2(1:klon)-sollw0_s2(1:klon) 1130 ENDIF 1131 CALL histwrite_phy(o_LWupSFCclr_s2, zx_tmp_fi2d) 1132 CALL histwrite_phy(o_LWdnSFCclr_s2, sollwdownclr_s2) 1133 1134 IF (vars_defined) THEN 1135 zx_tmp_fi2d(:) = swup_s2(:,1)*swradcorr(:) 1136 ENDIF 1137 CALL histwrite_phy(o_SWupSFC_s2, zx_tmp_fi2d) 1138 1139 IF (vars_defined) THEN 1140 zx_tmp_fi2d(:) = swup0_s2(:,1)*swradcorr(:) 1141 ENDIF 1142 CALL histwrite_phy(o_SWupSFCclr_s2, zx_tmp_fi2d) 1143 1144 IF (vars_defined) THEN 1145 zx_tmp_fi2d(:) = swdn_s2(:,1)*swradcorr(:) 1146 ENDIF 1147 CALL histwrite_phy(o_SWdnSFC_s2, zx_tmp_fi2d) 1148 1149 IF (vars_defined) THEN 1150 zx_tmp_fi2d(:) = swdn0_s2(:,1)*swradcorr(:) 1151 ENDIF 1152 CALL histwrite_phy(o_SWdnSFCclr_s2, zx_tmp_fi2d) 1153 ENDIF !ok_3Deffect 1089 1154 #endif 1090 1155 -
LMDZ6/trunk/libf/phylmd/phys_state_var_mod.F90
r4744 r4773 411 411 REAL,ALLOCATABLE,SAVE :: solsw_s2(:), solswfdiff_s2(:), sollw_s2(:) 412 412 !$OMP THREADPRIVATE(solsw_s2, solswfdiff_s2, sollw_s2) 413 REAL,ALLOCATABLE,SAVE :: sollwdown_s2(:) 414 !$OMP THREADPRIVATE(sollwdown_s2 )413 REAL,ALLOCATABLE,SAVE :: sollwdown_s2(:), sollwdownclr_s2(:) 414 !$OMP THREADPRIVATE(sollwdown_s2, sollwdownclr_s2) 415 415 REAL,ALLOCATABLE,SAVE :: topsw0_s2(:),toplw0_s2(:) 416 416 REAL,ALLOCATABLE,SAVE :: solsw0_s2(:),sollw0_s2(:) … … 728 728 ALLOCATE(albpla_s2(klon)) 729 729 ALLOCATE(solsw_s2(klon), solswfdiff_s2(klon), sollw_s2(klon)) 730 ALLOCATE(sollwdown_s2(klon) )730 ALLOCATE(sollwdown_s2(klon),sollwdownclr_s2(klon)) 731 731 ALLOCATE(topsw0_s2(klon),toplw0_s2(klon)) 732 732 ALLOCATE(solsw0_s2(klon),sollw0_s2(klon)) … … 901 901 DEALLOCATE(albpla_s2) 902 902 DEALLOCATE(solsw_s2, solswfdiff_s2, sollw_s2) 903 DEALLOCATE(sollwdown_s2 )903 DEALLOCATE(sollwdown_s2, sollwdownclr_s2) 904 904 DEALLOCATE(topsw0_s2,toplw0_s2) 905 905 DEALLOCATE(solsw0_s2,sollw0_s2) -
LMDZ6/trunk/libf/phylmd/physiq_mod.F90
r4755 r4773 92 92 USE lmdz_cloud_optics_prop_ini, ONLY : cloud_optics_prop_ini 93 93 USE phys_output_var_mod, ONLY : cloudth_sth,cloudth_senv,cloudth_sigmath,cloudth_sigmaenv 94 USE phys_output_var_mod, ONLY : cloud_cover_sw, cloud_cover_sw_s2 94 95 95 96 … … 1268 1269 REAL viscom, viscoh 1269 1270 INTEGER ieru 1271 1272 !AI namelist pour gerer le double appel de Ecrad 1273 CHARACTER(len=512) :: namelist_ecrad_file 1270 1274 1271 1275 !======================================================================! … … 4582 4586 ENDIF 4583 4587 ! 4588 ! AI namelist utilise pour l appel principal de radlwsw (ecrad) 4589 namelist_ecrad_file='namelist_ecrad' 4590 ! 4584 4591 CALL radlwsw & 4585 4592 (dist, rmu0, fract, & … … 4600 4607 zqsat, flwc, fiwc, & 4601 4608 ref_liq, ref_ice, ref_liq_pi, ref_ice_pi, & 4609 namelist_ecrad_file, & 4602 4610 heat,heat0,cool,cool0,albpla, & 4603 4611 heat_volc,cool_volc, & … … 4619 4627 !-end 4620 4628 ZLWFT0_i, ZFLDN0, ZFLUP0, & 4621 ZSWFT0_i, ZFSDN0, ZFSUP0) 4629 ZSWFT0_i, ZFSDN0, ZFSUP0, & 4630 cloud_cover_sw) 4622 4631 4623 4632 !lwoff=y, betalwoff=1. : offset LW CRE for radiation code and other … … 4656 4665 ENDIF 4657 4666 ! 4667 namelist_ecrad_file='namelist_ecrad' 4668 ! 4658 4669 CALL radlwsw & 4659 4670 (dist, rmu0, fract, & … … 4674 4685 zqsat, flwc, fiwc, & 4675 4686 ref_liq, ref_ice, ref_liq_pi, ref_ice_pi, & 4687 namelist_ecrad_file, & 4676 4688 heatp,heat0p,coolp,cool0p,albplap, & 4677 4689 heat_volc,cool_volc, & … … 4693 4705 !-end 4694 4706 ZLWFT0_i, ZFLDN0, ZFLUP0, & 4695 ZSWFT0_i, ZFSDN0, ZFSUP0) 4707 ZSWFT0_i, ZFSDN0, ZFSUP0, & 4708 cloud_cover_sw) 4696 4709 ENDIF !ok_4xCO2atm 4697 4710 … … 4717 4730 zqsat, flwc, fiwc, & 4718 4731 ref_liq, ref_ice, ref_liq_pi, ref_ice_pi, & 4732 namelist_ecrad_file, & 4719 4733 ! A modifier 4720 4734 heat_s2,heat0_s2,cool_s2,cool0_s2,albpla_s2, & … … 4737 4751 !-end 4738 4752 ZLWFT0_i, ZFLDN0, ZFLUP0, & 4739 ZSWFT0_i, ZFSDN0, ZFSUP0 )4740 namelist_ecrad_file='namelist_ecrad'4753 ZSWFT0_i, ZFSDN0, ZFSUP0, & 4754 cloud_cover_sw_s2) 4741 4755 ENDIF ! ok_3Deffect 4742 4756 #endif -
LMDZ6/trunk/libf/phylmd/radlwsw_m.F90
r4677 r4773 24 24 qsat, flwc, fiwc, & 25 25 ref_liq, ref_ice, ref_liq_pi, ref_ice_pi, & 26 namelist_ecrad_file, & 26 27 heat,heat0,cool,cool0,albpla,& 27 28 heat_volc, cool_volc,& … … 42 43 toplwad0_aero, sollwad0_aero, & 43 44 !-end 44 ZLWFT0_i, ZFLDN0, ZFLUP0,& 45 ZSWFT0_i, ZFSDN0, ZFSUP0) 45 ZLWFT0_i, ZFLDN0, ZFLUP0, & 46 ZSWFT0_i, ZFSDN0, ZFSUP0, & 47 cloud_cover_sw) 46 48 47 49 ! Modules necessaires … … 84 86 USE time_phylmdz_mod, only: current_time 85 87 USE phys_cal_mod, only: day_cur 88 USE interface_lmdz_ecrad 86 89 #endif 87 90 … … 245 248 REAL, INTENT(in) :: ref_ice_pi(klon,klev) ! ice crystal radius pre-industrial from newmicro 246 249 250 CHARACTER(len=512), INTENT(in) :: namelist_ecrad_file 251 247 252 ! Output arguments 248 253 REAL, INTENT(out) :: heat(KLON,KLEV), cool(KLON,KLEV) … … 301 306 REAL(KIND=8) PWV(kdlon,kflev), PQS(kdlon,kflev) 302 307 308 REAL(KIND=8) cloud_cover_sw(klon) 309 303 310 !!!!!!! Declarations specifiques pour ECRAD !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 304 311 ! AI 02.2021 … … 334 341 ZFLUX_SW_DN_TOA(klon), & ! DN SW flux at TOA 335 342 ZEMIS_OUT(klon) ! effective broadband emissivity 343 336 344 REAL(KIND=8) ZLWDERIVATIVE(klon,klev+1) ! LW derivatives 337 345 REAL(KIND=8) ZSWDIFFUSEBAND(klon,NSW), & ! SW DN flux in diffuse albedo band … … 1384 1392 ! & ZFLUX_SW_DN_TOA, 1385 1393 & ZEMIS_OUT, ZLWDERIVATIVE, & 1386 & PSFSWDIF, PSFSWDIR) 1394 & PSFSWDIF, PSFSWDIR, & 1395 & cloud_cover_sw) 1387 1396 1388 1397 print *,'========= RADLWSW: apres RADIATION_SCHEME ==================== ' -
LMDZ6/trunk/makelmdz_fcm
r4489 r4773 777 777 echo "%EXT_SRC $EXT_SRC" >> $config_fcm 778 778 779 779 if [[ "$rad" == "ecrad" ]] 780 then 781 \cp bld.cfg.ecrad bld.cfg 782 else 783 \cp bld.cfg.rrtm bld.cfg 784 fi 780 785 781 786 ln -s arch/arch-${arch}.fcm arch.fcm … … 798 803 ln -s $LIBOGCM/${arch}${SUFF_NAME}/.config/ppsrc tmp_src 799 804 800 801 805 if [[ -r $LIBFGCM/grid/dimensions.h ]] 802 806 then
Note: See TracChangeset
for help on using the changeset viewer.