Ignore:
Timestamp:
Oct 29, 2024, 2:53:13 PM (8 weeks ago)
Author:
evos
Message:

we added the option to use NS dynamical subsurface ice in the model to more realisticly calculate the amount of ice in the subsurface and therfore the subsurface thermal inertia

Location:
trunk/LMDZ.COMMON/libf/evolution
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.COMMON/libf/evolution/changelog.txt

    r3460 r3486  
    448448== 15/10/2024 == JBC
    449449Update and correction for the visualization of the layerings over time.
     450
     451== 24,29/10/2024 == EV
     452we added the option to use NS dynamical subsurface ice in the model to more realisticly calculate the amount of ice in the subsurface and therfore the subsurface thermal inertia
     453
  • trunk/LMDZ.COMMON/libf/evolution/dyn_ss_ice_m.f90

    r3470 r3486  
    138138 ! enddo
    139139
    140   print *,'History begins here'
     140  !print *,'History begins here'
    141141 porefill(1:nz,1:NP) =  porefill_in(1:nz,1:NP)
    142142  zdepthT(1:NP) = ssi_depth_in
     
    150150   !  print *,'T_after=  ',Tb(:)
    151151 !    print *,'z=  ',z(:)
    152      print *,'Zt=  ',ZdepthT
    153       ssi_depth=ZdepthT(1)
     152 !    print *,'Zt=  ',ZdepthT
     153     ssi_depth=ZdepthT(1)
    154154    ! if (abs(mod(icetime/100.,1.d0))<1.e-3) then ! output every 1000 years
    155155    !    do k=1,NP
     
    163163  !      enddo
    164164  !   endif
    165      print *,icetime
     165!     print *,icetime
    166166     if (icetime>=tlast) exit
    167167  enddo
  • trunk/LMDZ.COMMON/libf/evolution/fast_modules.f90

    r3470 r3486  
    249249   end subroutine dyn_ss_ice_m
    250250  end interface
     251
     252    interface
     253      subroutine dyn_ss_ice_m_wrapper(ngrid,nsoil,tHIn,p0,pfrost,T_in,ssi_depth_in,porefill_in,porefill,ssi_depth)
     254           implicit none
     255           integer, intent(IN) :: nsoil,ngrid
     256           real(8),  intent(IN) :: thIn(ngrid),ssi_depth_in(ngrid)
     257           real(8),  intent(IN) :: p0(ngrid), pfrost(ngrid)
     258           real(8),  intent(IN) :: T_in(nsoil,ngrid)
     259           real(8), intent(OUT) :: porefill(nsoil,ngrid)
     260           real(8), intent(IN) :: porefill_in(nsoil,ngrid)
     261           real(8), intent(OUT) :: ssi_depth(ngrid)
     262   end subroutine dyn_ss_ice_m_wrapper
     263  end interface
     264
    251265end module allinterfaces
  • trunk/LMDZ.COMMON/libf/evolution/pem.F90

    r3446 r3486  
    5555use recomp_orb_param_mod,       only: recomp_orb_param
    5656use ice_table_mod,              only: porefillingice_depth, porefillingice_thickness, end_ice_table_porefilling, &
    57                                       ini_ice_table_porefilling, icetable_equilibrium, computeice_table_equilibrium,compute_massh2o_exchange_ssi
     57                                      ini_ice_table_porefilling, icetable_equilibrium, icetable_dynamic, computeice_table_equilibrium,compute_massh2o_exchange_ssi
    5858use soil_thermalproperties_mod, only: update_soil_thermalproperties
    5959use time_phylmdz_mod,           only: daysec, dtphys
     
    226226real, dimension(:),       allocatable :: delta_h2o_icetablesublim           ! ngrid x Total mass of the H2O that has sublimated / condenses from the ice table [kg]
    227227
     228! Dynamic ice table
     229real, dimension(:,:),     allocatable :: ss_ice_pf                          ! the amout of porefilling in each layer in each grid [m^3/m^3]
     230real, dimension(:,:),     allocatable :: ss_ice_pf_new                      ! the amout of porefilling in each layer in each grid after the ss module[m^3/m^3]
     231real, dimension(:,:),     allocatable :: porefillingice_depth_new           ! new pure ice table depth
    228232! Some variables for the PEM run
    229233real, parameter :: year_step = 1   ! Timestep for the pem
     
    929933            call compute_massh2o_exchange_ssi(ngrid,nslope,nsoilmx_PEM,porefillingice_thickness_prev_iter,porefillingice_thickness,porefillingice_depth,tsurf_avg, tsoil_PEM,delta_h2o_icetablesublim) ! Mass of H2O exchange between the ssi and the atmosphere
    930934        endif
     935        ! II_d.3 Update the ice table
     936        if (icetable_dynamic) then
     937            write(*,*) "Compute ice table"
     938            porefillingice_thickness_prev_iter = porefillingice_thickness
     939            call dyn_ss_ice_m_wrapper(ngrid,nsoilmx,TI_PEM,ps,mmol(igcm_h2o_vap),tsoil_PEM,porefillingice_depth,ss_ice_pf,ss_ice_pf_new,porefillingice_depth_new)
     940           
     941            call compute_massh2o_exchange_ssi(ngrid,nslope,nsoilmx_PEM,porefillingice_thickness_prev_iter,porefillingice_thickness,porefillingice_depth,tsurf_avg, tsoil_PEM,delta_h2o_icetablesublim) ! Mass of H2O exchange between the ssi and the atmosphere
     942        endif
     943
    931944! II_d.4 Update the soil thermal properties
    932945        call update_soil_thermalproperties(ngrid,nslope,nsoilmx_PEM,tend_h2o_ice,h2o_ice,global_avg_press_new,porefillingice_depth,porefillingice_thickness,TI_PEM)
     
    979992            call writediagpem(ngrid,'ssi_thick_slope'//str2,'ice table depth','m',2,porefillingice_thickness(:,islope))
    980993        endif
     994        if (icetable_dynamic) then
     995            call writediagpem(ngrid,'ssi_depth_slope'//str2,'ice table depth','m',2,porefillingice_depth(:,islope))
     996            call writediagpem(ngrid,'ssi_thick_slope'//str2,'ice table depth','m',2,porefillingice_thickness(:,islope))
     997        endif
     998
    981999        if (soil_pem) then
    9821000            call writediagsoilpem(ngrid,'tsoil_PEM_slope'//str2,'tsoil_PEM','K',3,tsoil_PEM(:,:,islope))
Note: See TracChangeset for help on using the changeset viewer.