Ignore:
Timestamp:
Nov 2, 2023, 6:24:46 PM (14 months ago)
Author:
llange
Message:

MARS PCM
1) Following r-3098, adding d_coeff in the OMPthreadprivate
2) Introduce a temporary "old_wsublimation_scheme": when set to true (by
default), the water frost sublimation is computed as usual. Else, it is
computed as rho Ch U (q-qsat) and not rho Cd U (q-qsat)
LL

Location:
trunk/LMDZ.MARS/libf/phymars
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.MARS/libf/phymars/conf_phys.F

    r3098 r3111  
    2121      use surfdat_h, only: albedo_h2o_cap,albedo_h2o_frost,
    2222     &                     frost_albedo_threshold, inert_h2o_ice,
    23      &                     frost_metam_threshold
     23     &                     frost_metam_threshold,old_wsublimation_scheme
    2424      use time_phylmdz_mod, only: ecritphy,day_step,iphysiq,ecritstart,
    2525     &                            daysec,dtphys
     
    890890     &            frost_albedo_threshold
    891891
     892! TMP: old_wsublimation_scheme
     893         write(*,*) "Old water sublimation scheme?"
     894         old_wsublimation_scheme = .true.
     895         call getin_p("old_wsublimation_scheme",old_wsublimation_scheme)
     896         write(*,*) "old_wsublimation_scheme",old_wsublimation_scheme
     897
    892898! call Titus crocus line -- DEFAULT IS NONE
    893899         write(*,*) "Titus crocus line ?"
  • trunk/LMDZ.MARS/libf/phymars/paleoclimate_mod.F90

    r3098 r3111  
    2020    real, save, allocatable :: d_coef(:,:)  ! Diffusion coeficent
    2121    LOGICAL,SAVE :: lag_layer ! does lag layer is present?
    22 !$OMP THREADPRIVATE(h2o_ice_depth,lag_co2_ice,albedo_perenialco2)
     22!$OMP THREADPRIVATE(h2o_ice_depth,d_coef,lag_co2_ice,albedo_perenialco2)
    2323
    2424    CONTAINS
  • trunk/LMDZ.MARS/libf/phymars/surfdat_h.F90

    r2999 r3111  
    3131  real,save :: z0_default ! default (constant over planet) surface roughness (m)
    3232
     33  LOGICAL, SAVE :: old_wsublimation_scheme    ! TEMPORARY : TO USE THE OLD WATER SUBLIMATION SCHEME (i.e., using Cd instead of Ch), true by default
     34
    3335!$OMP THREADPRIVATE(albedo_h2o_cap,albedo_h2o_frost,inert_h2o_ice,               &
    3436!$OMP                frost_albedo_threshold,frost_metam_threshold,TESice_Ncoef,  &
    3537!$OMP                TESice_Scoef,iceradius,dtemisice,                           &
    36 !$OMP                zmea,zstd,zsig,zgam,zthe,hmons,summit,base,z0,z0_default )
     38!$OMP                zmea,zstd,zsig,zgam,zthe,hmons,summit,base,z0,z0_default, &
     39!$OMP                old_wsublimation_scheme)
    3740
    3841  !! mountain top dust flows
  • trunk/LMDZ.MARS/libf/phymars/vdifc_mod.F

    r3107 r3111  
    2020     &                      igcm_hdo_vap, igcm_hdo_ice,
    2121     &                      igcm_stormdust_mass, igcm_stormdust_number
    22       use surfdat_h, only: watercaptag, frost_albedo_threshold, dryness
     22      use surfdat_h, only: watercaptag, frost_albedo_threshold, dryness,
     23     &                     old_wsublimation_scheme
    2324      USE comcstfi_h, ONLY: cpp, r, rcp, g, pi
    2425      use watersat_mod, only: watersat
     
    952953c           the subtimestep.
    953954           saved_h2o_vap(:)= zq(:,1,igcm_h2o_vap)   
    954 
    955955           DO ig=1,ngrid
    956956            subtimestep = ptimestep/nsubtimestep(ig)
     
    963963             zb(1:ngrid,2:nlay)=zkh(1:ngrid,2:nlay)*zb0(1:ngrid,2:nlay)
    964964     &                     /float(nsubtimestep(ig))
    965              zb(1:ngrid,1)=zcdv(1:ngrid)*zb0(1:ngrid,1)
     965             if(old_wsublimation_scheme) then
     966               zb(1:ngrid,1)=zcdv(1:ngrid)*zb0(1:ngrid,1)
    966967     &                     /float(nsubtimestep(ig))
     968             else
     969               zb(1:ngrid,1)=zcdh(1:ngrid)*zb0(1:ngrid,1)
     970     &                     /float(nsubtimestep(ig))
     971             endif
    967972             zb(1:ngrid,1)=dryness(1:ngrid)*zb(1:ngrid,1)
    968973             
     
    986991             zd(ig,1)=zb(ig,1)*z1(ig)
    987992             zq1temp(ig)=zc(ig,1)+ zd(ig,1)*qsat(ig)
    988 
    989              zdqsdif(ig)=rho(ig)*dryness(ig)*zcdv(ig)
    990      &                      *(zq1temp(ig)-qsat(ig))
     993             if(old_wsublimation_scheme) then
     994                zdqsdif(ig)=rho(ig)*dryness(ig)*zcdv(ig)
     995     &                           *(zq1temp(ig)-qsat(ig))
     996             else
     997                zdqsdif(ig)=rho(ig)*dryness(ig)*zcdh(ig)
     998     &                           *(zq1temp(ig)-qsat(ig))
     999             endif
    9911000c             write(*,*)'subliming more than available frost:  qsurf!'
    9921001
Note: See TracChangeset for help on using the changeset viewer.