Changeset 3270 for trunk/LMDZ.GENERIC


Ignore:
Timestamp:
Mar 15, 2024, 7:16:42 PM (8 months ago)
Author:
mturbet
Message:

physiq_mod.F90 cleaning + add moist and dry adjustment heating tendencies

Location:
trunk/LMDZ.GENERIC
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.GENERIC/changelog.txt

    r3269 r3270  
    18871887- Changes in computation of snow albedo when ok_slab_ocean is activated
    18881888- 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  
    221221               frac_snow = MAX(0.0,MIN(1.0,zqsurf(ig,iice)/snow_min)) ! Critical snow height (in kg/m2) from ocean_slab_ice routine.
    222222               ! 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)
    225224               ! Albedo final calculation :
    226225               do nw=1,L_NSPECTV
  • trunk/LMDZ.GENERIC/libf/phystd/physiq_mod.F90

    r3269 r3270  
    724724         qsurf_hist(:,:)=qsurf(:,:)
    725725
    726 !!         call WriteField_phy("post_qsurf_hist_qsurf",qsurf(1:ngrid,igcm_h2o_vap),1)
    727 
    728726!        Initialize variable for dynamical heating and zonal wind tendency diagnostic
    729727!        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     
    774772                            ! or RETV, RLvCp for the thermal plume model
    775773
    776 !!         call WriteField_phy("post_watercycle_qsurf",qsurf(1:ngrid,igcm_h2o_vap),1)
    777774#ifndef MESOSCALE
    778775         if (ngrid.ne.1) then ! Note : no need to create a restart file in 1d.
     
    782779         endif
    783780
    784 !!         call WriteField_phy("post_physdem_qsurf",qsurf(1:ngrid,igcm_h2o_vap),1)
    785781#endif
    786782         if (corrk) then
     
    801797         endif
    802798
    803 !!         call WriteField_phy("post_corrk_firstcall_qsurf",qsurf(1:ngrid,igcm_h2o_vap),1)
    804799         ! XIOS outputs
    805800#ifdef CPP_XIOS
     
    810805#endif
    811806
    812 !!         call WriteField_phy("post_xios_qsurf",qsurf(1:ngrid,igcm_h2o_vap),1)
    813 
    814807         write(*,*) "physiq: end of firstcall"
    815808      endif ! end of 'firstcall'
    816809
    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))
    819810
    820811      if (check_physics_inputs) then
     
    823814      endif
    824815
    825 !      call writediagfi(ngrid,"pre_physical_rnat"," "," ",2,rnat)
    826 !      call writediagfi(ngrid,"pre_physical_capcal"," "," ",2,capcal)
    827816
    828817! ------------------------------------------------------
     
    989978                call call_rings(ngrid, ptime, pday, diurnal)
    990979            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))
    994980
    995981
     
    12061192      endif ! of if (callrad)
    12071193
    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 
    12111194
    12121195!  --------------------------------------------
     
    12601243         endif
    12611244
    1262 !!         call writediagfi(ngrid,"vdifc_post_zdqsdif"," "," ",2,zdqsdif(1:ngrid,igcm_h2o_vap))
    1263 
    12641245         if (tracer) then
    12651246           pdq(1:ngrid,1:nlayer,1:nq)=pdq(1:ngrid,1:nlayer,1:nq)+ zdqdif(1:ngrid,1:nlayer,1:nq)
     
    12671248         end if ! of if (tracer)
    12681249
    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))
    12711250
    12721251         ! test energy conservation
     
    14811460         dqsurf(1:ngrid,igcm_co2_ice) = dqsurf(1:ngrid,igcm_co2_ice) + zdqsurfc(1:ngrid)
    14821461
    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))
    14851462
    14861463         ! test energy conservation
     
    15171494                  ! Moist Convective Adjustment.
    15181495                  ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    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
    15261497                  call moistadj(ngrid,nlayer,nq,pt,pq,pdq,pplev,pplay,dtmoist,dqmoist,ptimestep,rneb_man)
    15271498
     
    16151586               dqsurf(1:ngrid,igcm_h2o_vap) = dqsurf(1:ngrid,igcm_h2o_vap)+zdqsrain(1:ngrid)
    16161587               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))
    16201588
    16211589               ! Test energy conservation.
     
    17781746            dqsurf(1:ngrid,1:nq) = dqsurf(1:ngrid,1:nq)+zdqsrain_generic(1:ngrid,1:nq)
    17791747
    1780 !!            call writediagfi(ngrid,"rain_generic_post_dqsurf"," "," ",2,dqsurf(1:ngrid,igcm_h2o_vap))
    1781 
    17821748            ! Test energy conservation.
    17831749            if(enertest)then
     
    18621828            pdq(1:ngrid,1:nlayer,1:nq) = pdq(1:ngrid,1:nlayer,1:nq) + zdqsed(1:ngrid,1:nlayer,1:nq)
    18631829            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))
    18661830
    18671831            ! Test water conservation
     
    18781842         end if ! end of 'sedimentation'
    18791843
    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))
    18821844
    18831845  ! ---------------
     
    19171879         endif
    19181880
    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))
    19231881
    19241882  ! ------------------
     
    19801938         endif ! end of 'ok_slab_ocean'
    19811939
    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))
    19841940
    19851941  ! -----------------------------
     
    19951951                        sea_ice)
    19961952
    1997 !!            call writediagfi(ngrid,"hydrol_post0_qsurf"," "," ",2,qsurf(1:ngrid,igcm_h2o_vap))
    1998 
    19991953            zdtsurf(1:ngrid)     = zdtsurf(1:ngrid) + zdtsurf_hyd(1:ngrid)
    20001954            dqsurf(1:ngrid,1:nq) = dqsurf(1:ngrid,1:nq) + dqs_hyd(1:ngrid,1:nq)
     
    20021956
    20031957            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))
    20071958
    20081959            ! Test energy conservation
     
    25762527            call writediagfi(ngrid,"qsatatm","atm qsat"," ",3,qsat)
    25772528
    2578 !             call writediagfi(ngrid,"lscaledEz","heat from largescale","W m-2",3,lscaledEz)
    2579 !             call writediagfi(ngrid,"madjdEz","heat from moistadj","W m-2",3,madjdEz)
     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)
    25802531!             call writediagfi(ngrid,"h2o_max_col","maximum H2O column amount","kg.m^-2",2,H2Omaxcol)
    25812532
     
    26102561        call writediagfi(ngrid,"dtrad","radiative heating","K s-1",3,dtrad)
    26112562        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)
    26122565
    26132566        ! For Debugging.
Note: See TracChangeset for help on using the changeset viewer.