- Timestamp:
- Oct 5, 2023, 4:14:22 PM (15 months ago)
- Location:
- LMDZ6/trunk/libf
- Files:
-
- 2 added
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/phylmd/lmdz_cloud_optics_prop.F90
r4707 r4715 29 29 USE lmdz_cloud_optics_prop_ini , ONLY : zepsec, novlp, iflag_ice_thermo, ok_new_lscp 30 30 31 USE icefrac_lsc_mod ! computes ice fraction (JBM 3/14)32 USE lmdz_lscp_tools, only: icefrac_lscp33 31 34 32 … … 112 110 REAL, INTENT(OUT) :: icc3dcon(klon, klev)! cloud fraction for liquid part only, convective clouds [-] 113 111 REAL, INTENT(OUT) :: icc3dstra(klon, klev)! cloud fraction for ice part only, stratiform clouds [-] 114 REAL, INTENT( OUT) :: icefrac_optics(klon, klev)! ice fraction in clouds seen by radiation [-]112 REAL, INTENT(INOUT) :: icefrac_optics(klon, klev)! ice fraction in clouds seen by radiation [-] 115 113 116 114 ! Local variables … … 196 194 197 195 198 IF (ok_new_lscp) THEN199 CALL icefrac_lscp(klon,temp(:,k),iflag_ice_thermo,distcltop(:,k),temp_cltop(:,k),icefrac_optics(:,k),dzfice(:,k))200 ELSE201 CALL icefrac_lsc(klon,temp(:,k),pplay(:,k)/paprs(:,1),icefrac_optics(:,k))202 ENDIF196 !!$ IF (ok_new_lscp) THEN 197 !!$ CALL icefrac_lscp(klon,temp(:,k),iflag_ice_thermo,distcltop(:,k),temp_cltop(:,k),icefrac_optics(:,k),dzfice(:,k)) 198 !!$ ELSE 199 !!$ CALL icefrac_lsc(klon,temp(:,k),pplay(:,k)/paprs(:,1),icefrac_optics(:,k)) 200 !!$ ENDIF 203 201 204 202 DO i = 1, klon -
LMDZ6/trunk/libf/phylmd/nuage.F90
r4664 r4715 120 120 ENDIF 121 121 122 IF ((.NOT. ptconv(i,k)) .AND.ok_new_lscp .AND. ok_icefra_lscp) THEN123 124 125 126 127 zfice(i)=picefra(i,k)128 ENDDO122 IF (ok_new_lscp .AND. ok_icefra_lscp) THEN 123 ! EV: take the ice fraction directly from the lscp code 124 ! consistent only for non convective grid points 125 ! critical for mixed phase clouds 126 DO i=1,klon 127 IF (.NOT. ptconv(i,k)) THEN 128 zfice(i)=picefra(i,k) 129 129 ENDIF 130 ENDDO 131 ENDIF 130 132 131 133 -
LMDZ6/trunk/libf/phylmd/physiq_mod.F90
r4707 r4715 78 78 USE wxios, ONLY: g_ctx, wxios_set_context 79 79 USE lmdz_lscp, ONLY : lscp 80 USE lmdz_c loud_optics_prop, ONLY :cloud_optics_prop80 USE lmdz_call_cloud_optics_prop, ONLY : call_cloud_optics_prop 81 81 USE lmdz_lscp_old, ONLY : fisrtilp 82 82 USE lmdz_wake_ini, ONLY : wake_ini … … 1844 1844 RCPD, RLSTT, RLVTT, RLMLT, & 1845 1845 RVTMP2, RTT,RD,RG) 1846 ! Test de coherence sur oc_cdnc utilisé uniquement par cloud_optics_prop 1847 IF (ok_newmicro) then 1848 IF (iflag_rrtm.EQ.1) THEN 1849 #ifdef CPP_RRTM 1850 IF (ok_cdnc.AND.NRADLP.NE.3) THEN 1851 abort_message='RRTM choix incoherent NRADLP doit etre egal a 3 ' & 1852 // 'pour ok_cdnc' 1853 CALL abort_physic(modname,abort_message,1) 1854 ENDIF 1855 #else 1856 1857 abort_message='You should compile with -rrtm if running with '//'iflag_rrtm=1' 1858 CALL abort_physic(modname,abort_message,1) 1859 #endif 1860 ENDIF 1861 ENDIF 1846 1862 CALL cloud_optics_prop_ini(klon, prt_level, lunout, flag_aerosol, & 1847 1863 & ok_cdnc, bl95_b0, & … … 4387 4403 ENDIF 4388 4404 4389 IF (ok_newmicro) then 4390 ! AI IF (iflag_rrtm.NE.0) THEN 4391 IF (iflag_rrtm.EQ.1) THEN 4392 #ifdef CPP_RRTM 4393 IF (ok_cdnc.AND.NRADLP.NE.3) THEN 4394 abort_message='RRTM choix incoherent NRADLP doit etre egal a 3 ' & 4395 // 'pour ok_cdnc' 4396 CALL abort_physic(modname,abort_message,1) 4397 ENDIF 4398 #else 4399 4400 abort_message='You should compile with -rrtm if running with '//'iflag_rrtm=1' 4401 CALL abort_physic(modname,abort_message,1) 4402 #endif 4403 ENDIF 4404 CALL cloud_optics_prop(klon, klev, & 4405 !Rajout appel a interface calcul proprietes optiques des nuages 4406 CALL call_cloud_optics_prop(klon, klev, ok_newmicro, & 4405 4407 paprs, pplay, t_seri, radocond, picefra, cldfra, & 4406 4408 cldtau, cldemi, cldh, cldl, cldm, cldt, cldq, & 4407 flwp, fiwp, flwc, fiwc, &4409 flwp, fiwp, flwc, fiwc, ok_aie, & 4408 4410 mass_solu_aero, mass_solu_aero_pi, & 4409 4411 cldtaupi, distcltop, temp_cltop, re, fl, ref_liq, ref_ice, & … … 4411 4413 reffclwc, cldnvi, lcc3d, lcc3dcon, lcc3dstra, icc3dcon, icc3dstra, & 4412 4414 zfice, dNovrN, ptconv, rnebcon, clwcon) 4413 ELSE 4414 CALL nuage (paprs, pplay, & 4415 t_seri, radocond, picefra, cldfra, cldtau, cldemi, & 4416 cldh, cldl, cldm, cldt, cldq, & 4417 ok_aie, & 4418 mass_solu_aero, mass_solu_aero_pi, & 4419 bl95_b0, bl95_b1, distcltop, temp_cltop, & 4420 cldtaupi, re, fl) 4421 ENDIF 4415 4422 4416 ! 4423 4417 !IM betaCRF -
LMDZ6/trunk/libf/phylmdiso/physiq_mod.F90
r4707 r4715 78 78 USE wxios, ONLY: g_ctx, wxios_set_context 79 79 USE lmdz_lscp, ONLY : lscp 80 USE lmdz_c loud_optics_prop, ONLY :cloud_optics_prop80 USE lmdz_call_cloud_optics_prop, ONLY : call_cloud_optics_prop 81 81 USE lmdz_lscp_old, ONLY : fisrtilp 82 82 USE lmdz_wake_ini, ONLY : wake_ini … … 1932 1932 RCPD, RLSTT, RLVTT, RLMLT, & 1933 1933 RVTMP2, RTT,RD,RG) 1934 ! Test de coherence sur oc_cdnc utilisé uniquement par cloud_optics_prop 1935 IF (ok_newmicro) then 1936 IF (iflag_rrtm.EQ.1) THEN 1937 #ifdef CPP_RRTM 1938 IF (ok_cdnc.AND.NRADLP.NE.3) THEN 1939 abort_message='RRTM choix incoherent NRADLP doit etre egal a 3 ' & 1940 // 'pour ok_cdnc' 1941 CALL abort_physic(modname,abort_message,1) 1942 ENDIF 1943 #else 1944 1945 abort_message='You should compile with -rrtm if running with '//'iflag_rrtm=1' 1946 CALL abort_physic(modname,abort_message,1) 1947 #endif 1948 ENDIF 1949 ENDIF 1934 1950 CALL cloud_optics_prop_ini(klon, prt_level, lunout, flag_aerosol, & 1935 1951 & ok_cdnc, bl95_b0, & … … 5577 5593 ENDIF 5578 5594 5579 IF (ok_newmicro) then 5580 ! AI IF (iflag_rrtm.NE.0) THEN 5581 IF (iflag_rrtm.EQ.1) THEN 5582 #ifdef CPP_RRTM 5583 IF (ok_cdnc.AND.NRADLP.NE.3) THEN 5584 abort_message='RRTM choix incoherent NRADLP doit etre egal a 3 ' & 5585 // 'pour ok_cdnc' 5586 CALL abort_physic(modname,abort_message,1) 5587 ENDIF 5588 #else 5589 5590 abort_message='You should compile with -rrtm if running with '//'iflag_rrtm=1' 5591 CALL abort_physic(modname,abort_message,1) 5592 #endif 5593 ENDIF 5594 CALL cloud_optics_prop(klon, klev, & 5595 !Rajout appel a interface calcul proprietes optiques des nuages 5596 CALL call_cloud_optics_prop(klon, klev, ok_newmicro, & 5595 5597 paprs, pplay, t_seri, radocond, picefra, cldfra, & 5596 5598 cldtau, cldemi, cldh, cldl, cldm, cldt, cldq, & 5597 flwp, fiwp, flwc, fiwc, &5599 flwp, fiwp, flwc, fiwc, ok_aie, & 5598 5600 mass_solu_aero, mass_solu_aero_pi, & 5599 5601 cldtaupi, distcltop, temp_cltop, re, fl, ref_liq, ref_ice, & … … 5601 5603 reffclwc, cldnvi, lcc3d, lcc3dcon, lcc3dstra, icc3dcon, icc3dstra, & 5602 5604 zfice, dNovrN, ptconv, rnebcon, clwcon) 5603 ELSE 5604 CALL nuage (paprs, pplay, & 5605 t_seri, radocond, picefra, cldfra, cldtau, cldemi, & 5606 cldh, cldl, cldm, cldt, cldq, & 5607 ok_aie, & 5608 mass_solu_aero, mass_solu_aero_pi, & 5609 bl95_b0, bl95_b1, distcltop, temp_cltop, & 5610 cldtaupi, re, fl) 5611 ENDIF 5605 5612 5606 ! 5613 5607 !IM betaCRF
Note: See TracChangeset
for help on using the changeset viewer.