Ignore:
Timestamp:
Jan 29, 2024, 4:18:28 PM (13 months ago)
Author:
jbclement
Message:

Mars PCM:
Addition of the parameter 'CO2cond_ps' (= 1 by default) for 1D. This coefficient controls the surface pressure change. If 'relaxcoef_ps = 1', then surface pressure varies normally. If 'relaxcoef_ps = 0', then surface pressure is kept constant. The ratio of polar cap surface over planetary surface is a typical value (8.3e-4) for tests. To be defined in "callphys.def" so that both PCM and PEM can read it.
JBC

Location:
trunk/LMDZ.MARS/libf/phymars/dyn1d
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.MARS/libf/phymars/dyn1d/init_testphys1d_mod.F90

    r3183 r3188  
    77SUBROUTINE init_testphys1d(start1Dname,startfiname,startfiles_1D,therestart1D,therestartfi,ngrid,nlayer,odpref, &
    88                           nq,q,time,psurf,u,v,temp,ndt,ptif,pks,dttestphys,zqsat,dq,dqdyn,day0,day,gru,grv,w,  &
    9                            play,plev,latitude,longitude,cell_area,atm_wat_profile,atm_wat_tau)
     9                           play,plev,latitude,longitude,cell_area,atm_wat_profile,atm_wat_tau,CO2cond_ps)
    1010
    1111use ioipsl_getincom,          only: getin ! To use 'getin'
     
    7878real, dimension(1),                  intent(out) :: latitude, longitude, cell_area
    7979real,                                intent(out) :: atm_wat_profile, atm_wat_tau ! Force atmospheric water profiles
     80real,                                intent(out) :: CO2cond_ps                 ! Relaxation coefficient for psurf
    8081
    8182!=======================================================================
     
    308309write(*,*) " psurf = ",psurf
    309310
     311! Coefficient to control the surface pressure change
     312! To be defined in "callphys.def" so that the PEM can read it asa well
     313CO2cond_ps = 1. ! Default value
     314write(*,*) 'Coefficient to control the surface pressure change?'
     315call getin("CO2cond_ps",CO2cond_ps)
     316if (CO2cond_ps < 0. .or. CO2cond_ps > 1.) then
     317    write(*,*) 'Value for ''CO2cond_ps'' is not between 0 and 1.'
     318    error stop 'Please, specify a correct value!'
     319endif
     320
    310321! Reference pressures
    311322pa = 20.     ! transition pressure (for hybrid coord.)
  • trunk/LMDZ.MARS/libf/phymars/dyn1d/testphys1d.F90

    r3183 r3188  
    7171real                                :: dttestphys    ! testphys1d timestep
    7272real, dimension(nlayer)             :: play          ! Pressure at the middle of the layers (Pa)
    73 real, dimension(nlayer + 1)         :: plev          ! intermediate pressure levels (pa)
     73real, dimension(nlayer + 1)         :: plev          ! intermediate pressure levels (Pa)
    7474real                                :: psurf         ! Surface pressure
     75real                                :: CO2cond_ps    ! Coefficient to control the surface pressure change
    7576real, dimension(nlayer)             :: u, v          ! zonal, meridional wind
    7677real                                :: gru, grv      ! prescribed "geostrophic" background wind
     
    149150call init_testphys1d('start1D.txt','startfi.nc',startfiles_1D,therestart1D,therestartfi,ngrid,nlayer,odpref, &
    150151                     nq,q,time,psurf,u,v,temp,ndt,ptif,pks,dttestphys,zqsat,dq,dqdyn,day0,day,gru,grv,w,     &
    151                      play,plev,latitude,longitude,cell_area,atm_wat_profile,atm_wat_tau)
     152                     play,plev,latitude,longitude,cell_area,atm_wat_profile,atm_wat_tau,CO2cond_ps)
    152153
    153154! Write a "startfi" file
     
    261262    ! Compute pressure for next time step
    262263    ! -----------------------------------
    263     psurf = psurf + dttestphys*dpsurf(1) ! surface pressure change
     264    ! CO2cond_ps is a coefficient to control the surface pressure change
     265    ! If CO2cond_ps = 0, psurf is kept constant; If CO2cond_ps = 1, psurf varies normally
     266    ! CO2cond_ps = 300*400/144.37e6 = 8.31e-4 (ratio of polar cap surface over planetary surface) is a typical value for tests
     267    psurf = psurf + CO2cond_ps*dttestphys*dpsurf(1) ! Surface pressure change
    264268    plev = ap + psurf*bp
    265269    play = aps + psurf*bps
Note: See TracChangeset for help on using the changeset viewer.