Changeset 3270 for trunk/LMDZ.GENERIC
- Timestamp:
- Mar 15, 2024, 7:16:42 PM (8 months ago)
- Location:
- trunk/LMDZ.GENERIC
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.GENERIC/changelog.txt
r3269 r3270 1887 1887 - Changes in computation of snow albedo when ok_slab_ocean is activated 1888 1888 - add diagnostics in physiq_mod.F90 to compute net surface longwave flux (required for intercomparison projects) 1889 1890 == 15/03/2024 == MT 1891 1892 - physiq_mod.F90 cleaning + add moist and dry adjustment heating tendencies -
trunk/LMDZ.GENERIC/libf/phystd/hydrol.F90
r3268 r3270 221 221 frac_snow = MAX(0.0,MIN(1.0,zqsurf(ig,iice)/snow_min)) ! Critical snow height (in kg/m2) from ocean_slab_ice routine. 222 222 ! Standard value should be 15kg/m2 (i.e. about 5 cm). Note that in the previous ocean param. (from BC2014), this value was 45kg/m2 (i.e. about 15cm). 223 alb_ice=alb_ice_max-(alb_ice_max-alb_ice_min) & ! Ice Albedo 224 *exp(-sea_ice(ig)/h_alb_ice) 223 alb_ice=alb_ice_max-(alb_ice_max-alb_ice_min)*exp(-sea_ice(ig)/h_alb_ice) ! this is the old formulation from BC2014 (earth-centric so will be replaced) 225 224 ! Albedo final calculation : 226 225 do nw=1,L_NSPECTV -
trunk/LMDZ.GENERIC/libf/phystd/physiq_mod.F90
r3269 r3270 724 724 qsurf_hist(:,:)=qsurf(:,:) 725 725 726 !! call WriteField_phy("post_qsurf_hist_qsurf",qsurf(1:ngrid,igcm_h2o_vap),1)727 728 726 ! Initialize variable for dynamical heating and zonal wind tendency diagnostic 729 727 ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ … … 774 772 ! or RETV, RLvCp for the thermal plume model 775 773 776 !! call WriteField_phy("post_watercycle_qsurf",qsurf(1:ngrid,igcm_h2o_vap),1)777 774 #ifndef MESOSCALE 778 775 if (ngrid.ne.1) then ! Note : no need to create a restart file in 1d. … … 782 779 endif 783 780 784 !! call WriteField_phy("post_physdem_qsurf",qsurf(1:ngrid,igcm_h2o_vap),1)785 781 #endif 786 782 if (corrk) then … … 801 797 endif 802 798 803 !! call WriteField_phy("post_corrk_firstcall_qsurf",qsurf(1:ngrid,igcm_h2o_vap),1)804 799 ! XIOS outputs 805 800 #ifdef CPP_XIOS … … 810 805 #endif 811 806 812 !! call WriteField_phy("post_xios_qsurf",qsurf(1:ngrid,igcm_h2o_vap),1)813 814 807 write(*,*) "physiq: end of firstcall" 815 808 endif ! end of 'firstcall' 816 809 817 !! call WriteField_phy("post_firstcall_qsurf",qsurf(1:ngrid,igcm_h2o_vap),1)818 !! call writediagfi(ngrid,"firstcall_post_qsurf"," "," ",2,qsurf(1:ngrid,igcm_h2o_vap))819 810 820 811 if (check_physics_inputs) then … … 823 814 endif 824 815 825 ! call writediagfi(ngrid,"pre_physical_rnat"," "," ",2,rnat)826 ! call writediagfi(ngrid,"pre_physical_capcal"," "," ",2,capcal)827 816 828 817 ! ------------------------------------------------------ … … 989 978 call call_rings(ngrid, ptime, pday, diurnal) 990 979 endif 991 992 !! call writediagfi(ngrid,"corrk_pre_dqsurf"," "," ",2,dqsurf(1:ngrid,igcm_h2o_vap))993 !! call writediagfi(ngrid,"corrk_pre_qsurf"," "," ",2,qsurf(1:ngrid,igcm_h2o_vap))994 980 995 981 … … 1206 1192 endif ! of if (callrad) 1207 1193 1208 !! call writediagfi(ngrid,"vdifc_pre_dqsurf"," "," ",2,dqsurf(1:ngrid,igcm_h2o_vap))1209 !! call writediagfi(ngrid,"vdifc_pre_qsurf"," "," ",2,qsurf(1:ngrid,igcm_h2o_vap))1210 1211 1194 1212 1195 ! -------------------------------------------- … … 1260 1243 endif 1261 1244 1262 !! call writediagfi(ngrid,"vdifc_post_zdqsdif"," "," ",2,zdqsdif(1:ngrid,igcm_h2o_vap))1263 1264 1245 if (tracer) then 1265 1246 pdq(1:ngrid,1:nlayer,1:nq)=pdq(1:ngrid,1:nlayer,1:nq)+ zdqdif(1:ngrid,1:nlayer,1:nq) … … 1267 1248 end if ! of if (tracer) 1268 1249 1269 !! call writediagfi(ngrid,"vdifc_post_dqsurf"," "," ",2,dqsurf(1:ngrid,igcm_h2o_vap))1270 !! call writediagfi(ngrid,"vdifc_post_qsurf"," "," ",2,qsurf(1:ngrid,igcm_h2o_vap))1271 1250 1272 1251 ! test energy conservation … … 1481 1460 dqsurf(1:ngrid,igcm_co2_ice) = dqsurf(1:ngrid,igcm_co2_ice) + zdqsurfc(1:ngrid) 1482 1461 1483 !! call writediagfi(ngrid,"condense_co2_post_dqsurf"," "," ",2,dqsurf(1:ngrid,igcm_h2o_vap))1484 !! call writediagfi(ngrid,"condense_co2_post_qsurf"," "," ",2,qsurf(1:ngrid,igcm_h2o_vap))1485 1462 1486 1463 ! test energy conservation … … 1517 1494 ! Moist Convective Adjustment. 1518 1495 ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1519 !!!! 1520 ! call writediagfi(ngrid,"pre_moistadj_pt"," "," ",3,pt) 1521 ! call writediagfi(ngrid,"pre_moistadj_pq_h2o_ice"," "," ",3,pq(:,:,igcm_h2o_ice)) 1522 ! call writediagfi(ngrid,"pre_moistadj_pdq_h2o_ice"," "," ",3,pdq(:,:,igcm_h2o_ice)) 1523 ! call writediagfi(ngrid,"pre_moistadj_pq_h2o_vap"," "," ",3,pq(:,:,igcm_h2o_vap)) 1524 ! call writediagfi(ngrid,"pre_moistadj_pdq_h2o_vap"," "," ",3,pdq(:,:,igcm_h2o_vap)) 1525 !!!! 1496 1526 1497 call moistadj(ngrid,nlayer,nq,pt,pq,pdq,pplev,pplay,dtmoist,dqmoist,ptimestep,rneb_man) 1527 1498 … … 1615 1586 dqsurf(1:ngrid,igcm_h2o_vap) = dqsurf(1:ngrid,igcm_h2o_vap)+zdqsrain(1:ngrid) 1616 1587 dqsurf(1:ngrid,igcm_h2o_ice) = dqsurf(1:ngrid,igcm_h2o_ice)+zdqssnow(1:ngrid) 1617 1618 !! call writediagfi(ngrid,"rain_post_dqsurf"," "," ",2,dqsurf(1:ngrid,igcm_h2o_vap))1619 !! call writediagfi(ngrid,"rain_post_qsurf"," "," ",2,qsurf(1:ngrid,igcm_h2o_vap))1620 1588 1621 1589 ! Test energy conservation. … … 1778 1746 dqsurf(1:ngrid,1:nq) = dqsurf(1:ngrid,1:nq)+zdqsrain_generic(1:ngrid,1:nq) 1779 1747 1780 !! call writediagfi(ngrid,"rain_generic_post_dqsurf"," "," ",2,dqsurf(1:ngrid,igcm_h2o_vap))1781 1782 1748 ! Test energy conservation. 1783 1749 if(enertest)then … … 1862 1828 pdq(1:ngrid,1:nlayer,1:nq) = pdq(1:ngrid,1:nlayer,1:nq) + zdqsed(1:ngrid,1:nlayer,1:nq) 1863 1829 dqsurf(1:ngrid,1:nq) = dqsurf(1:ngrid,1:nq) + zdqssed(1:ngrid,1:nq) 1864 1865 !! call writediagfi(ngrid,"callsedim_post_dqsurf"," "," ",2,dqsurf(1:ngrid,igcm_h2o_vap))1866 1830 1867 1831 ! Test water conservation … … 1878 1842 end if ! end of 'sedimentation' 1879 1843 1880 !! call writediagfi(ngrid,"mass_redist_pre_dqsurf"," "," ",2,dqsurf(1:ngrid,igcm_h2o_vap))1881 !! call writediagfi(ngrid,"mass_redist_pre_qsurf"," "," ",2,qsurf(1:ngrid,igcm_h2o_vap))1882 1844 1883 1845 ! --------------- … … 1917 1879 endif 1918 1880 1919 ! call writediagfi(ngrid,"mass_redistribution_post_dqsurf"," "," ",2,dqsurf(1:ngrid,igcm_h2o_vap))1920 1921 !! call writediagfi(ngrid,"slab_pre_dqsurf"," "," ",2,dqsurf(1:ngrid,igcm_h2o_vap))1922 !! call writediagfi(ngrid,"slab_pre_qsurf"," "," ",2,qsurf(1:ngrid,igcm_h2o_vap))1923 1881 1924 1882 ! ------------------ … … 1980 1938 endif ! end of 'ok_slab_ocean' 1981 1939 1982 !! call writediagfi(ngrid,"hydrol_pre_dqsurf"," "," ",2,dqsurf(1:ngrid,igcm_h2o_vap))1983 !! call writediagfi(ngrid,"hydrol_pre_qsurf"," "," ",2,qsurf(1:ngrid,igcm_h2o_vap))1984 1940 1985 1941 ! ----------------------------- … … 1995 1951 sea_ice) 1996 1952 1997 !! call writediagfi(ngrid,"hydrol_post0_qsurf"," "," ",2,qsurf(1:ngrid,igcm_h2o_vap))1998 1999 1953 zdtsurf(1:ngrid) = zdtsurf(1:ngrid) + zdtsurf_hyd(1:ngrid) 2000 1954 dqsurf(1:ngrid,1:nq) = dqsurf(1:ngrid,1:nq) + dqs_hyd(1:ngrid,1:nq) … … 2002 1956 2003 1957 qsurf(1:ngrid,1:nq) = qsurf(1:ngrid,1:nq) + ptimestep*dqsurf(1:ngrid,1:nq) 2004 2005 !! call writediagfi(ngrid,"hydrol_post_dqsurf"," "," ",2,dqsurf(1:ngrid,igcm_h2o_vap))2006 !! call writediagfi(ngrid,"hydrol_post_qsurf"," "," ",2,qsurf(1:ngrid,igcm_h2o_vap))2007 1958 2008 1959 ! Test energy conservation … … 2576 2527 call writediagfi(ngrid,"qsatatm","atm qsat"," ",3,qsat) 2577 2528 2578 ! 2579 ! 2529 ! call writediagfi(ngrid,"lscaledEz","heat from largescale","W m-2",3,lscaledEz) 2530 ! call writediagfi(ngrid,"madjdEz","heat from moistadj","W m-2",3,madjdEz) 2580 2531 ! call writediagfi(ngrid,"h2o_max_col","maximum H2O column amount","kg.m^-2",2,H2Omaxcol) 2581 2532 … … 2610 2561 call writediagfi(ngrid,"dtrad","radiative heating","K s-1",3,dtrad) 2611 2562 call writediagfi(ngrid,"zdtdyn","Dyn. heating","T s-1",3,zdtdyn) 2563 call writediagfi(ngrid,"dtmoistadj","moist adj heating","K s-1",3,dtmoist) 2564 call writediagfi(ngrid,"dtdryadj","dry adj heating","K s-1",3,zdtadj) 2612 2565 2613 2566 ! For Debugging.
Note: See TracChangeset
for help on using the changeset viewer.