Ignore:
Timestamp:
Jul 19, 2023, 11:40:38 AM (18 months ago)
Author:
llange
Message:

Mars PCM
Include perenial_co2ice (equivalent of watercap) to distinguich between CO2 frost and perenial CO2 ice for paleoclimate studies.
When no frost is present and we dig into perenial ice, the surface albedo is changed. The albedo for seasonal ice is set to 0.65, and the perenial ice albedo can be fixed in the callphys.def. I recommand values between 0.8 and 0.9.
To use this, paleoclimate must be set to True and TESalbedo to false in the callphys.def. Else, it runs as usual with TES albedo
LL

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

Legend:

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

    r2959 r2999  
    33     &     t,ucov,vcov,ps,h,phisold_newgrid,
    44     &     q,qsurf,tauscaling,totcloudfrac,surfith,nid,
    5      &     watercap)
     5     &     watercap,peren_co2ice)
    66c=======================================================================
    77c
     
    5757      REAL,INTENT(OUT) :: totcloudfrac(ngrid) ! sub grid cloud fraction
    5858      REAL,INTENT(OUT) :: watercap(ngrid,nslope) ! infinite polar cap
     59      REAL,INTENT(OUT) :: peren_co2ice(ngrid,nslope) ! infinite co2 polar cap
    5960      REAL,INTENT(OUT) :: phisold_newgrid(iip1,jjp1)
    6061      REAL,INTENT(OUT) :: t(iip1,jjp1,llm)
     
    140141      real totcloudfracS(iip1,jjp1)
    141142      real watercapS(iip1,jjp1,nslope)
     143      real peren_co2iceS(iip1,jjp1,nslope)
    142144      real watercaptagS(iip1,jjp1)
    143145      real albedoS(iip1,jjp1,nslope)
     
    178180      real, dimension(:,:), allocatable :: totcloudfracold
    179181      real, dimension(:,:,:), allocatable :: watercapold
     182      real, dimension(:,:,:), allocatable :: peren_co2iceold
    180183      real, dimension(:,:), allocatable :: watercapold_noslope
     184      real, dimension(:,:), allocatable :: peren_co2iceold_noslope
    181185      real, dimension(:,:), allocatable :: watercaptagold
    182186      real, dimension(:), allocatable :: watercaptag_tmp
     
    430434      allocate(totcloudfracold(imold+1,jmold+1))
    431435      allocate(watercapold(imold+1,jmold+1,nslope))
     436      allocate(peren_co2iceold(imold+1,jmold+1,nslope))
    432437      allocate(watercaptagold(imold+1,jmold+1))
    433438      allocate(watercaptag_tmp(ngrid))
     
    439444      allocate(emisold_noslope(imold+1,jmold+1))
    440445      allocate(watercapold_noslope(imold+1,jmold+1))
     446      allocate(peren_co2iceold_noslope(imold+1,jmold+1))
    441447      allocate(albedoold_noslope(imold+1,jmold+1))
    442448      allocate(qsurfold_noslope(imold+1,jmold+1,nqtot))
     
    914920        IF (ierr .NE. NF_NOERR) THEN
    915921           PRINT*, "lect_start_archive: Failed loading <watercap>"
     922           PRINT*, NF_STRERROR(ierr)
     923           CALL abort
     924        ENDIF
     925      ENDIF
     926
     927      ierr = NF_INQ_VARID (nid, "perenial_co2ice", nvarid)
     928      IF (ierr .NE. NF_NOERR) THEN
     929         PRINT*, "lect_start_archive: <perenial_co2ice> not in file"
     930         peren_co2iceold(:,:,:) = 0.
     931      ELSE
     932      if(no_slope) then
     933       ierr = nf90_get_var(nid, nvarid,peren_co2iceold_noslope)
     934       peren_co2iceold(:,:,1)=peren_co2iceold_noslope(:,:)
     935      else
     936       ierr = nf90_get_var(nid, nvarid,peren_co2iceold)
     937      endif
     938        IF (ierr .NE. NF_NOERR) THEN
     939           PRINT*, "lect_start_archive:"
     940           PRINT*, "Failed loading<peren_co2iceold>"
    916941           PRINT*, NF_STRERROR(ierr)
    917942           CALL abort
     
    12521277     &       watercap(:,1))
    12531278
     1279c Watercap
     1280      call interp_horiz (peren_co2iceold(:,:,1),peren_co2iceS(:,:,1),
     1281     &       imold,jmold,iim,jjm,1,rlonuold,rlatvold,rlonu,rlatv)
     1282      call gr_dyn_fi (1,iim+1,jjm+1,ngrid,peren_co2iceS(:,:,1),
     1283     &       peren_co2ice(:,1))
     1284
    12541285c Watercaptag
    12551286      if(imold.eq.iim .and. jmold.eq.jjm) then
     
    16481679      deallocate(tauscalingold)
    16491680      deallocate(totcloudfracold)
     1681      deallocate(peren_co2iceold)
    16501682      deallocate(watercapold)
    16511683      deallocate(watercaptagold)
  • trunk/LMDZ.MARS/libf/dynphy_lonlat/phymars/newstart.F

    r2952 r2999  
    3030     &                     albedodat, z0_default, qsurf, tsurf,
    3131     &                     emis, hmons, summit, base, watercap,
    32      &               ini_surfdat_h_slope_var,end_surfdat_h_slope_var
     32     &               ini_surfdat_h_slope_var,end_surfdat_h_slope_var,
     33     &               perenial_co2ice
    3334      use comsoil_h, only: inertiedat, inertiesoil,layer, mlayer,
    3435     & nsoilmx,tsoil,ini_comsoil_h_slope_var, end_comsoil_h_slope_var,
     
    196197      REAL,ALLOCATABLE :: qsurf_old_slope(:,:,:) ! tracer on surface (e.g. kg.m-2)
    197198      REAL,ALLOCATABLE :: watercap_old_slope(:,:) ! Surface water ice (kg.m-2)
     199      REAL,ALLOCATABLE :: perenial_co2_old_slope(:,:) ! Surface water ice (kg.m-2)
    198200      REAL,ALLOCATABLE :: tsoil_old_slope(:,:,:)
    199201      REAL,ALLOCATABLE :: inertiesoil_old_slope(:,:,:)
     
    464466     &        day_ini,time,tsurf,tsoil,albedo,emis,
    465467     &        q2,qsurf,tauscaling,totcloudfrac,
    466      &        wstar,watercap,def_slope,def_slope_mean,subslope_dist)
     468     &        wstar,watercap,perenial_co2ice,
     469     &        def_slope,def_slope_mean,subslope_dist)
    467470       
    468471        ! copy albedo and soil thermal inertia
     
    18001803        allocate(emis_old_slope(ngridmx,nslope_old))   
    18011804        allocate(watercap_old_slope(ngridmx,nslope_old))
     1805        allocate(perenial_co2_old_slope(ngridmx,nslope_old))
    18021806
    18031807
     
    18061810        emis_old_slope(:,:)=emis(:,:)
    18071811        watercap_old_slope(:,:)=watercap(:,:)
    1808 
     1812        perenial_co2_old_slope(:,:) = perenial_co2ice(:,:)
    18091813        call end_surfdat_h_slope_var
    18101814        call ini_surfdat_h_slope_var(ngridmx,nqtot,nslope_new)
     
    18371841             emis(:,islope)=emis_old_slope(:,1)
    18381842             watercap(:,islope)=watercap_old_slope(:,1)
     1843             perenial_co2ice(:,islope)= perenial_co2_old_slope(:,1)
    18391844             tsoil(:,:,islope)=tsoil_old_slope(:,:,1)
    18401845             albedo(:,:,islope)=albedo_old_slope(:,:,1)
     
    18471852             emis(:,1)=emis_old_slope(:,iflat)
    18481853             watercap(:,1)=watercap_old_slope(:,iflat)
     1854             perenial_co2ice(:,islope)= perenial_co2_old_slope(:,iflat)
    18491855             tsoil(:,:,1)=tsoil_old_slope(:,:,iflat)
    18501856             albedo(:,:,1)=albedo_old_slope(:,:,iflat)
     
    18571863             emis(:,islope)=emis_old_slope(:,iflat)
    18581864             watercap(:,islope)=watercap_old_slope(:,iflat)
     1865             perenial_co2ice(:,islope)= perenial_co2_old_slope(:,iflat)
    18591866             tsoil(:,:,islope)=tsoil_old_slope(:,:,iflat)
    18601867             albedo(:,:,islope)=albedo_old_slope(:,:,iflat)
     
    18681875             emis(:,islope)=emis_old_slope(:,iflat)
    18691876             watercap(:,islope)=watercap_old_slope(:,iflat)
     1877             perenial_co2ice(:,islope)= perenial_co2_old_slope(:,iflat)
    18701878             tsoil(:,:,islope)=tsoil_old_slope(:,:,iflat)
    18711879             albedo(:,:,islope)=albedo_old_slope(:,:,iflat)
     
    20012009     &              dtphys,hour_ini,
    20022010     &              tsurf,tsoil,inertiesoil,albedo,emis,q2,qsurf,
    2003      &              tauscaling,totcloudfrac,wstar,watercap)
     2011     &              tauscaling,totcloudfrac,wstar,watercap,
     2012     &              perenial_co2ice)
    20042013
    20052014c=======================================================================
  • trunk/LMDZ.MARS/libf/dynphy_lonlat/phymars/start2archive.F

    r2959 r2999  
    6767      REAL,ALLOCATABLE :: tsoil(:,:,:) ! Soil temperature
    6868      REAL,ALLOCATABLE :: watercap(:,:)        ! h2o ice layer
     69      REAL,ALLOCATABLE :: perenial_co2ice(:,:) ! co2 ice layer
    6970      REAL :: tauscaling(ngridmx) ! dust conversion factor
    7071      REAL:: totcloudfrac(ngridmx) ! sub-grid cloud fraction
     
    8687      REAL ithS(ip1jmp1,nsoilmx) ! Soil Thermal Inertia for inertie dat (present day climate)
    8788      REAL,ALLOCATABLE :: watercapS(:,:)
     89      REAL,ALLOCATABLE :: perenial_co2iceS(:,:)
    8890      REAL,ALLOCATABLE :: watercaptag_tmp(:)
    8991      REAL,ALLOCATABLE :: watercaptagS(:)
     
    169171      allocate(tsoil(ngridmx,nsoilmx,nslope))
    170172      allocate(watercap(ngridmx,nslope))
     173      allocate(perenial_co2ice(ngridmx,nslope))
    171174      allocate(emis(ngridmx,nslope))
    172175      allocate(albedo(ngridmx,2,nslope))
     
    177180      allocate(inertiesoilS(ip1jmp1,nsoilmx,nslope))
    178181      allocate(watercapS(ip1jmp1,nslope))
     182      allocate(perenial_co2iceS(ip1jmp1,nslope))
    179183      allocate(watercaptagS(ip1jmp1))
    180184      allocate(emisS(ip1jmp1,nslope))
     
    184188      CALL phyetat0 (fichnom,0,Lmodif,nsoilmx,ngridmx,llm,nqtot,
    185189     &      day_ini_fi,timefi,tsurf,tsoil,albedo,emis,q2,qsurf,
    186      &      tauscaling,totcloudfrac,wstar,watercap,def_slope,
    187      &      def_slope_mean,subslope_dist)
     190     &      tauscaling,totcloudfrac,wstar,watercap,perenial_co2ice,
     191     &      def_slope, def_slope_mean,subslope_dist)
    188192
    189193       ierr = NF_OPEN (fichnom, NF_NOWRITE,nid1)
     
    270274c tsurf --> tsurfS
    271275c watercap --> watercapS
     276c perenial_co2ice --> perenial_co2iceS
    272277c tsoil --> tsoilS
    273278c inertiesoil --> inertiesoilS
     
    287292      call gr_fi_dyn(1,ngridmx,iip1,jjp1,watercap(:,islope),
    288293     &    watercapS(:,islope))
     294      call gr_fi_dyn(1,ngridmx,iip1,jjp1,perenial_co2ice(:,islope),
     295     &    perenial_co2iceS(:,islope))
    289296      call gr_fi_dyn(nsoilmx,ngridmx,iip1,jjp1,tsoil(:,:,islope),
    290297     &    tsoilS(:,:,islope))
     
    417424      call write_archive(nid,ntime,'watercap','couche de glace h2o',
    418425     &  'kg/m2',2,watercapS)
     426      call write_archive(nid,ntime,'perenial_co2ice',
     427     &'couche de glace co2','kg/m2',2,perenial_co2iceS)
    419428      call write_archive(nid,ntime,'watercaptag','couche de glace h2o',
    420429     &  'kg/m2',2,watercaptagS)
  • trunk/LMDZ.MARS/libf/dynphy_lonlat/phymars/start2archive_SSO.F

    r2959 r2999  
    6969      REAL,ALLOCATABLE :: tsoil(:,:,:) ! Soil temperature
    7070      REAL,ALLOCATABLE :: watercap(:,:)        ! h2o ice layer
     71      REAL,ALLOCATABLE :: perenial_co2ice(:,:)        ! co2 ice layer
    7172      REAL tauscaling(ngridmx) ! dust conversion factor
    7273      REAL totcloudfrac(ngridmx) ! sub-grid cloud fraction
     
    9192      REAL ithS(ip1jmp1,nsoilmx) ! Soil Thermal Inertia for inertie dat (present day climate)
    9293      REAL,ALLOCATABLE :: watercapS(:,:)
     94      REAL,ALLOCATABLE :: perenial_co2iceS(:,:)        ! co2 ice layer
    9395      REAL tauscalingS(ip1jmp1)
    9496      REAL totcloudfracS(ip1jmp1)
     
    184186      allocate(tsoil(ngridmx,nsoilmx,nslope))
    185187      allocate(watercap(ngridmx,nslope))
     188      allocate(perenial_co2ice(ngridmx,nslope))
    186189      allocate(emis(ngridmx,nslope))
    187190      allocate(albedo(ngridmx,2,nslope))
     
    192195      allocate(inertiesoilS(ip1jmp1,nsoilmx,nslope))
    193196      allocate(watercapS(ip1jmp1,nslope))
     197      allocate(perenial_co2iceS(ngridmx,nslope))
    194198      allocate(emisS(ip1jmp1,nslope))
    195199      allocate(albedoS(ip1jmp1,nslope))
     
    198202      CALL phyetat0 (fichnom,0,Lmodif,nsoilmx,ngridmx,llm,nqtot,
    199203     &      day_ini_fi,timefi,tsurf,tsoil,albedo,emis,q2,qsurf,
    200      &      tauscaling,totcloudfrac,wstar,watercap,def_slope,
    201      &      def_slope_mean,subslope_dist)
     204     &      tauscaling,totcloudfrac,wstar,watercap,perenial_co2ice,
     205     &      def_slope,def_slope_mean,subslope_dist)
    202206
    203207       ierr = NF_OPEN (fichnom, NF_NOWRITE,nid1)
     
    296300      call gr_fi_dyn(1,ngridmx,iip1,jjp1,watercap(:,islope),
    297301     &    watercapS(:,islope))
     302      call gr_fi_dyn(1,ngridmx,iip1,jjp1,perenial_co2ice(:,islope),
     303     &    perenial_co2iceS(:,islope))
    298304      call gr_fi_dyn(nsoilmx,ngridmx,iip1,jjp1,tsoil(:,:,islope),
    299305     &    tsoilS(:,:,islope))
     
    427433      call write_archive(nid,ntime,'watercap','couche de glace h2o',
    428434     &  'kg/m2',2,watercapS)
     435      call write_archive(nid,ntime,'perenial_co2ice','couche de glace co2',
     436     &  'kg/m2',2,perenial_co2iceS)
    429437      call write_archive(nid,ntime,'tauscaling',
    430438     &  'dust conversion factor',' ',2,tauscalingS)
Note: See TracChangeset for help on using the changeset viewer.