Changeset 5103 for LMDZ6/branches/Amaury_dev/libf/phylmd/physiq_mod.F90
- Timestamp:
- Jul 23, 2024, 3:29:36 PM (8 weeks ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/Amaury_dev/libf/phylmd/physiq_mod.F90
r5101 r5103 349 349 reffclwc, cldnvi, lcc3d, lcc3dcon, lcc3dstra, icc3dcon, icc3dstra 350 350 USE output_physiqex_mod, ONLY: output_physiqex 351 USE lmdz_cppkeys_wrapper, ONLY: CPPKEY_INCA352 351 353 352 IMPLICIT NONE … … 776 775 777 776 !@$$ LOGICAL offline ! Controle du stockage ds "physique" 778 !@$$ PARAMETER (offline=. false.)777 !@$$ PARAMETER (offline=.FALSE.) 779 778 !@$$ INTEGER physid 780 779 REAL frac_impa(klon, klev) ! fractions d'aerosols lessivees (impaction) … … 1261 1260 if (debut) then ! 1262 1261 iflag_physiq = 0 1263 callgetin_p('iflag_physiq', iflag_physiq) !1262 CALL getin_p('iflag_physiq', iflag_physiq) ! 1264 1263 endif ! 1265 1264 if (iflag_physiq == 2) then ! 1266 callphysiqex (nlon, nlev, & !1265 CALL physiqex (nlon, nlev, & ! 1267 1266 debut, lafin, pdtphys_, & ! 1268 1267 paprs, pplay, pphi, pphis, presnivs, & ! … … 1276 1275 pi = 4. * ATAN(1.) 1277 1276 1278 ! set-up callto alerte function1277 ! set-up CALL to alerte function 1279 1278 call_alert = (alert_first_call .AND. is_master) 1280 1279 … … 1365 1364 CALL regr_horiz_time_climoz(read_climoz, ok_daily_climoz) 1366 1365 1367 print*, '================================================='1366 PRINT*, '=================================================' 1368 1367 1369 1368 !CR: check sur le nb de traceurs de l eau … … 1448 1447 WRITE(lunout, *) 'debut physiq_mod tau_gl=', tau_gl 1449 1448 iflag_thermcell_tke = 0 1450 callgetin_p('iflag_thermcell_tke', iflag_thermcell_tke) !1449 CALL getin_p('iflag_thermcell_tke', iflag_thermcell_tke) ! 1451 1450 1452 1451 CALL getin_p('iflag_alp_wk_cond', iflag_alp_wk_cond) … … 1476 1475 fl_cor_ebil = 0 ! by default, no correction to ensure energy conservation 1477 1476 CALL getin_p('fl_cor_ebil', fl_cor_ebil) 1478 iflag_phytrac = 1 ! by default we do want to callphytrac1477 iflag_phytrac = 1 ! by default we do want to CALL phytrac 1479 1478 CALL getin_p('iflag_phytrac', iflag_phytrac) 1480 1479 … … 1482 1481 CALL getin_p('ok_water_mass_fixer', ok_water_mass_fixer) 1483 1482 IF (CPPKEY_DUST) THEN 1484 IF (iflag_phytrac .EQ.0) THEN1483 IF (iflag_phytrac==0) THEN 1485 1484 WRITE(lunout, *) 'In order to run with SPLA, iflag_phytrac will be forced to 1' 1486 1485 iflag_phytrac = 1 … … 1514 1513 !AI 08 2023 1515 1514 #ifdef CPP_ECRAD 1516 ok_3Deffect=. false.1515 ok_3Deffect=.FALSE. 1517 1516 CALL getin_p('ok_3Deffect',ok_3Deffect) 1518 1517 namelist_ecrad_file='namelist_ecrad' … … 1584 1583 clwcon(:, :) = 0.0 1585 1584 1586 print*, 'iflag_coupl,iflag_clos,iflag_wake', &1585 PRINT*, 'iflag_coupl,iflag_clos,iflag_wake', & 1587 1586 iflag_coupl, iflag_clos, iflag_wake 1588 print*, 'iflag_cycle_diurne', iflag_cycle_diurne1587 PRINT*, 'iflag_cycle_diurne', iflag_cycle_diurne 1589 1588 1590 1589 IF (iflag_con==2.AND.iflag_cld_th>-1) THEN … … 1674 1673 CLOSE(98) 1675 1674 IF(nCFMIP>npCFMIP) THEN 1676 print*, 'nCFMIP > npCFMIP : augmenter npCFMIP et recompiler'1675 PRINT*, 'nCFMIP > npCFMIP : augmenter npCFMIP et recompiler' 1677 1676 CALL abort_physic("physiq", "", 1) 1678 1677 ELSE 1679 print*, 'physiq npCFMIP=', npCFMIP, 'nCFMIP=', nCFMIP1678 PRINT*, 'physiq npCFMIP=', npCFMIP, 'nCFMIP=', nCFMIP 1680 1679 ENDIF 1681 1680 … … 1708 1707 ENDIF 1709 1708 1710 #ifdef CPP_IOIPSL1711 1709 1712 1710 !$OMP MASTER 1713 ! FH : if ok_sync=. true. , the time axis is written at each time step1711 ! FH : if ok_sync=.TRUE. , the time axis is written at each time step 1714 1712 ! in the output files. Only at the end in the opposite case 1715 1713 ok_sync_omp=.FALSE. … … 1740 1738 END IF 1741 1739 1742 #endif1743 1740 ecrit_reg = ecrit_reg * un_jour 1744 1741 ecrit_tra = ecrit_tra * un_jour … … 1920 1917 ENDIF 1921 1918 !IM begin 1922 print*, 'physiq: clwcon rnebcon ratqs', clwcon(1, 1), rnebcon(1, 1) &1919 PRINT*, 'physiq: clwcon rnebcon ratqs', clwcon(1, 1), rnebcon(1, 1) & 1923 1920 , ratqs(1, 1) 1924 1921 !IM end … … 1937 1934 ! pdtphys 1938 1935 ! abort_message='Pas physique n est pas correct ' 1939 ! ! callabort_physic(modname,abort_message,1)1936 ! ! CALL abort_physic(modname,abort_message,1) 1940 1937 ! phys_tstep=pdtphys 1941 1938 ! ENDIF … … 1997 1994 , alp_bl_prescr, ale_bl_prescr) 1998 1995 ! 11/09/06 rajout initialisation ALE et ALP du wake et PBL(YU) 1999 ! print*,'apres ini_wake iflag_cld_th=', iflag_cld_th1996 ! PRINT*,'apres ini_wake iflag_cld_th=', iflag_cld_th 2000 1997 2001 1998 ! Initialize tendencies of wake state variables (for some flag values … … 2091 2088 CALL bcast_omp(missing_val) 2092 2089 2093 ! Now we activate some double radiation callflags only if some2090 ! Now we activate some double radiation CALL flags only if some 2094 2091 ! diagnostics are requested, otherwise there is no point in doing this 2095 2092 IF (is_master) THEN … … 2145 2142 2146 2143 IF (ANY(type_trac == ['inca', 'inco'])) THEN ! ModThL 2147 IF (CPPKEY_INCA) THEN2148 2144 CALL VTe(VTphysiq) 2149 2145 CALL VTb(VTinca) … … 2151 2147 WRITE(lunout, *) 'initial time chemini', days_elapsed, calday 2152 2148 2153 callinit_const_lmdz(&2149 CALL init_const_lmdz(& 2154 2150 ndays, nbsrf, is_oce, is_sic, is_ter, is_lic, calend, & 2155 2151 config_inca) … … 2221 2217 CALL VTe(VTinca) 2222 2218 CALL VTb(VTphysiq) 2223 END IF2224 2219 ENDIF 2225 2220 … … 2338 2333 #ifdef REPROBUS 2339 2334 CALL Init_chem_rep_xjour(jD_cur-jD_ref+day_ref) 2340 print*,'xjour equivalent rjourvrai',jD_cur-jD_ref+day_ref2335 PRINT*,'xjour equivalent rjourvrai',jD_cur-jD_ref+day_ref 2341 2336 CALL Rtime(debut) 2342 2337 #endif … … 3056 3051 3057 3052 IF (iflag_con==1) THEN 3058 abort_message = 'reactiver le callconlmd dans physiq.F'3053 abort_message = 'reactiver le CALL conlmd dans physiq.F' 3059 3054 CALL abort_physic (modname, abort_message, 1) 3060 3055 ! CALL conlmd (phys_tstep, paprs, pplay, t_seri, q_seri, conv_q, … … 3105 3100 ! Perform dry adiabatic adjustment on wake profile 3106 3101 ! The corresponding tendencies are added to the convective tendencies 3107 ! after the callto the convective scheme.3102 ! after the CALL to the convective scheme. 3108 3103 IF (iflag_wake>=1) then 3109 3104 IF (iflag_adjwk >= 1) THEN … … 3201 3196 3202 3197 !IM begin 3203 ! print*,'physiq: cin pbase dnwd0 ftd fqd ',cin(1),pbase(1),3198 ! PRINT*,'physiq: cin pbase dnwd0 ftd fqd ',cin(1),pbase(1), 3204 3199 ! .dnwd0(1,1),ftd(1,1),fqd(1,1) 3205 3200 !IM end … … 3210 3205 3211 3206 !jyg< 3212 ! If convective tendencies are too large, then callconvection3207 ! If convective tendencies are too large, then CALL convection 3213 3208 ! every time step 3214 3209 cvpas = cvpas_0 … … 3236 3231 ENDDO 3237 3232 !!! Ligne a ne surtout pas remettre sans avoir murement reflechi (jyg) 3238 !!! callbcast(cvpas)3233 !!! CALL bcast(cvpas) 3239 3234 !!! ------------------------------------------------------------ 3240 3235 !>jyg … … 3378 3373 !! dqi0, paprs, 'convection_sat', abortphy, flag_inhib_tend,& 3379 3374 !! itap, 1) 3380 !! callprt_enerbil('convection_sat',itap)3375 !! CALL prt_enerbil('convection_sat',itap) 3381 3376 !! 3382 3377 !! … … 3685 3680 ! FH : 2010/02/01 3686 3681 if (iflag_thermcell_tke==1) then 3687 callthermcell_dtke(klon, klev, nbsrf, pdtphys, fm_therm, entr_therm, rg, paprs, pbl_tke)3682 CALL thermcell_dtke(klon, klev, nbsrf, pdtphys, fm_therm, entr_therm, rg, paprs, pbl_tke) 3688 3683 endif 3689 3684 ! ------------------------------------------------------------------- … … 3713 3708 ENDIF 3714 3709 3715 ! Attention : le callajsec_convV2 n'est maintenu que momentanneement3710 ! Attention : le CALL ajsec_convV2 n'est maintenu que momentanneement 3716 3711 ! pour des test de convergence numerique. 3717 3712 ! Le nouveau ajsec est a priori mieux, meme pour le cas … … 3900 3895 IF (iflag_cld_th<=-1) THEN ! seulement pour Tiedtke 3901 3896 snow_tiedtke = 0. 3902 ! print*,'avant calcul de la pseudo precip '3903 ! print*,'iflag_cld_th',iflag_cld_th3897 ! PRINT*,'avant calcul de la pseudo precip ' 3898 ! PRINT*,'iflag_cld_th',iflag_cld_th 3904 3899 IF (iflag_cld_th==-1) THEN 3905 3900 rain_tiedtke = rain_con 3906 3901 ELSE 3907 ! print*,'calcul de la pseudo precip '3902 ! PRINT*,'calcul de la pseudo precip ' 3908 3903 rain_tiedtke = 0. 3909 ! print*,'calcul de la pseudo precip 0'3904 ! PRINT*,'calcul de la pseudo precip 0' 3910 3905 DO k = 1, klev 3911 3906 DO i = 1, klon … … 3918 3913 ENDIF 3919 3914 3920 ! calldump2d(iim,jjm,rain_tiedtke(2:klon-1),'PSEUDO PRECIP ')3915 ! CALL dump2d(iim,jjm,rain_tiedtke(2:klon-1),'PSEUDO PRECIP ') 3921 3916 3922 3917 ! Nuages diagnostiques pour Tiedtke … … 4096 4091 4097 4092 IF (ANY(type_trac == ['inca', 'inco'])) THEN ! ModThL 4098 IF (CPPKEY_INCA) THEN4099 4093 CALL VTe(VTphysiq) 4100 4094 CALL VTb(VTinca) … … 4149 4143 CALL VTe(VTinca) 4150 4144 CALL VTb(VTphysiq) 4151 END IF4152 4145 ENDIF !type_trac = inca or inco 4153 4146 IF (type_trac == 'repr') THEN … … 4352 4345 4353 4346 !IM 251017 begin 4354 ! print*,'physiq betaCRF global zdtime=',zdtime4347 ! PRINT*,'physiq betaCRF global zdtime=',zdtime 4355 4348 !IM 251017 end 4356 4349 DO k = 1, klev … … 4403 4396 !lecture de la chlorophylle pour le nouvel albedo de Sunghye Baek 4404 4397 IF (ok_chlorophyll) THEN 4405 print*, "-- reading chlorophyll"4398 PRINT*, "-- reading chlorophyll" 4406 4399 CALL readchlorophyll(debut) 4407 4400 ENDIF … … 4433 4426 4434 4427 IF (aerosol_couple.AND.config_inca=='aero') THEN 4435 IF (CPPKEY_INCA) THEN4436 4428 CALL radlwsw_inca & 4437 4429 (chemistry_couple, kdlon, kflev, dist, rmu0, fract, solaire, & … … 4453 4445 cldtaupirad, & 4454 4446 topswai_aero, solswai_aero) 4455 END IF4456 4447 ELSE 4457 4448 … … 4600 4591 #ifdef CPP_ECRAD 4601 4592 IF (ok_3Deffect) then 4602 ! print*,'ok_3Deffect = ',ok_3Deffect4593 ! PRINT*,'ok_3Deffect = ',ok_3Deffect 4603 4594 namelist_ecrad_file='namelist_ecrad_s2' 4604 4595 CALL radlwsw & … … 4722 4713 4723 4714 IF (prt_level >=10) THEN 4724 print *, ' callorography ? ', ok_orodr4715 print *, ' CALL orography ? ', ok_orodr 4725 4716 ENDIF 4726 4717 … … 4989 4980 4990 4981 IF (prt_level>=5) & 4991 print*, 'addtkeoro', addtkeoro4982 PRINT*, 'addtkeoro', addtkeoro 4992 4983 4993 4984 alphatkeoro = 1. … … 5090 5081 5091 5082 IF (prt_level .GE.10) THEN 5092 print*,'freq_cosp',freq_cosp5083 PRINT*,'freq_cosp',freq_cosp 5093 5084 ENDIF 5094 5085 mr_ozone=wo(:, :, 1) * dobson_u * 1e3 / zmasse 5095 ! print*,'Dans physiq.F avant appel cosp ref_liq,ref_ice=',5086 ! PRINT*,'Dans physiq.F avant appel cosp ref_liq,ref_ice=', 5096 5087 ! s ref_liq,ref_ice 5097 5088 CALL phys_cosp(itap,phys_tstep,freq_cosp, & … … 5121 5112 5122 5113 IF (prt_level .GE.10) THEN 5123 print*,'freq_cosp',freq_cosp5114 PRINT*,'freq_cosp',freq_cosp 5124 5115 ENDIF 5125 5116 mr_ozone=wo(:, :, 1) * dobson_u * 1e3 / zmasse 5126 print*,'Dans physiq.F avant appel '5117 PRINT*,'Dans physiq.F avant appel ' 5127 5118 ! s ref_liq,ref_ice 5128 5119 CALL phys_cosp2(itap,phys_tstep,freq_cosp, & … … 5146 5137 5147 5138 IF (prt_level .GE.10) THEN 5148 print*,'freq_cosp',freq_cosp5139 PRINT*,'freq_cosp',freq_cosp 5149 5140 ENDIF 5150 5141 DO k = 1, klev … … 5154 5145 ENDDO 5155 5146 mr_ozone=wo(:, :, 1) * dobson_u * 1e3 / zmasse 5156 print*,'Dans physiq.F avant appel '5147 PRINT*,'Dans physiq.F avant appel ' 5157 5148 ! s ref_liq,ref_ice 5158 5149 CALL lmdz_cosp_interface(itap,phys_tstep,freq_cosp, & … … 5267 5258 5268 5259 5269 print*,'avt add phys rep',abortphy5260 PRINT*,'avt add phys rep',abortphy 5270 5261 5271 5262 CALL add_phys_tend & … … 5274 5265 IF (abortphy==1) Print*,'ERROR ABORT REP' 5275 5266 5276 print*,'apr add phys rep',abortphy5267 PRINT*,'apr add phys rep',abortphy 5277 5268 5278 5269 #endif … … 5285 5276 5286 5277 IF (prt_level>=9) & 5287 print*, 'Attention on met a 0 les thermiques pour phystoke'5278 PRINT*, 'Attention on met a 0 les thermiques pour phystoke' 5288 5279 CALL phystokenc (& 5289 5280 nlon, klev, pdtphys, longitude_deg, latitude_deg, & … … 5423 5414 5424 5415 IF (ANY(type_trac == ['inca', 'inco'])) THEN 5425 IF (CPPKEY_INCA) THEN5426 5416 CALL VTe(VTphysiq) 5427 5417 CALL VTb(VTinca) … … 5443 5433 CALL VTe(VTinca) 5444 5434 CALL VTb(VTphysiq) 5445 END IF5446 5435 ENDIF 5447 5436 … … 5591 5580 ! Ecriture des sorties 5592 5581 !============================================================= 5593 #ifdef CPP_IOIPSL5594 5582 5595 5583 ! Recupere des varibles calcule dans differents modules … … 5651 5639 END IF 5652 5640 5653 #endif5654 5641 ! Petit appelle de sorties pour accompagner le travail sur phyex 5655 5642 if (iflag_physiq == 1) then 5656 calloutput_physiqex(debut, jD_eq, pdtphys, presnivs, paprs, u, v, t, qx, cldfra, 0. * t, 0. * t, 0. * t, pbl_tke, theta)5643 CALL output_physiqex(debut, jD_eq, pdtphys, presnivs, paprs, u, v, t, qx, cldfra, 0. * t, 0. * t, 0. * t, pbl_tke, theta) 5657 5644 endif 5658 5645 … … 5695 5682 IF (using_xios) THEN 5696 5683 5697 IF (CPPKEY_INCA) THEN5698 5684 IF (type_trac == 'inca') THEN 5699 5685 IF (is_omp_master .AND. grid_type==unstructured) THEN 5700 5686 CALL finalize_inca 5701 5687 ENDIF 5702 ENDIF5703 5688 END IF 5704 5689 … … 5710 5695 ENDIF 5711 5696 5712 ! first=. false.5697 ! first=.FALSE. 5713 5698 5714 5699 END SUBROUTINE physiq
Note: See TracChangeset
for help on using the changeset viewer.