Changeset 3490 for trunk/LMDZ.COMMON


Ignore:
Timestamp:
Nov 4, 2024, 3:02:22 PM (3 weeks ago)
Author:
jbclement
Message:

PEM:
Correction of initialization of 'icetable_dynamic' and the management of the flag.
JBC

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

Legend:

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

    r3486 r3490  
    449449Update and correction for the visualization of the layerings over time.
    450450
    451 == 24,29/10/2024 == EV
     45124/10/2024 == EV
     452adding the NS dynamic subsurface ice module in the PEM
     453
     454== 24,29,30/10/2024 == EV
    452455we 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
    453456
     457== 04/11/2024 == JBC
     458Correction of initialization of 'icetable_dynamic' and the management of the flag.
  • trunk/LMDZ.COMMON/libf/evolution/conf_pem.F90

    r3349 r3490  
    103103reg_thprop_dependp = .false.
    104104call getin('reg_thprop_dependp',reg_thprop_dependp)
    105 write(*,*)  'Thermal properties of the regolith vary with pressure ?', reg_thprop_dependp
     105write(*,*) 'Thermal properties of the regolith vary with pressure ?', reg_thprop_dependp
    106106
    107107fluxgeo = 0.
     
    119119icetable_equilibrium = .true.
    120120call getin('icetable_equilibrium',icetable_equilibrium)
    121 write(*,*)  'Is the ice table computed at equilibrium?', icetable_equilibrium
     121write(*,*) 'Is the ice table computed at equilibrium?', icetable_equilibrium
    122122
    123123icetable_dynamic = .false.
    124124call getin('icetable_dynamic',icetable_dynamic)
    125 write(*,*)  'Is the ice table computed with the dynamic method?', icetable_dynamic
    126 if ((.not. soil_pem) .and. ((icetable_equilibrium) .or. (icetable_dynamic))) then
    127     write(*,*) 'Ice table must be used when soil_pem = T'
    128     call abort_physic(modname,"Ice table  must be used when soil_pem = T",1)
     125write(*,*) 'Is the ice table computed with the dynamic method?', icetable_dynamic
     126if ((.not. soil_pem) .and. (icetable_equilibrium .or. icetable_dynamic)) then
     127    write(*,*) 'Ice table (equilibrium or dynamic method) must be used when soil_pem = T'
     128    call abort_physic(modname,"Ice table must be used when soil_pem = T",1)
    129129endif
    130130
     
    145145
    146146if (evol_orbit_pem .and. year_bp_ini == 0.) then
    147     write(*,*)  'You want to follow the file obl_ecc_lsp.asc for changing orb parameters,'
    148     write(*,*)  'but you did not specify from which year to start.'
     147    write(*,*) 'You want to follow the file obl_ecc_lsp.asc for changing orb parameters,'
     148    write(*,*) 'but you did not specify from which year to start.'
    149149    call abort_physic(modname,"evol_orbit_pem=.true. but year_bp_ini=0",1)
    150150endif
  • trunk/LMDZ.COMMON/libf/evolution/ice_table_mod.F90

    r3328 r3490  
    1010!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    1111
    12 logical, save                           :: icetable_equilibrium     ! Boolean to say if the PEM needs to recompute the icetable depth when at  equilibrium
    13 logical, save                           :: icetable_dynamic         ! Boolean to say if the PEM needs to recompute the icetable depth (dynamic method)
     12logical, save                           :: icetable_equilibrium     ! Boolean to say if the PEM needs to recompute the icetable depth when at equilibrium
     13logical, save                           :: icetable_dynamic         ! Boolean to say if the PEM needs to recompute the icetable depth with the dynamic method
    1414real, allocatable, dimension(:,:), save :: porefillingice_depth     ! ngrid x nslope: Depth of the ice table [m]
    1515real, allocatable, dimension(:,:), save :: porefillingice_thickness ! ngrid x nslope: Thickness of the ice table [m]
  • trunk/LMDZ.COMMON/libf/evolution/pem.F90

    r3486 r3490  
    932932            call computeice_table_equilibrium(ngrid,nslope,nsoilmx_PEM,watercaptag,watersurf_density_avg,watersoil_density_PEM_avg,TI_PEM(:,1,:),porefillingice_depth,porefillingice_thickness)
    933933            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
    934         endif
    935         ! II_d.3 Update the ice table
    936         if (icetable_dynamic) then
     934        else if (icetable_dynamic) then
    937935            write(*,*) "Compute ice table"
    938936            porefillingice_thickness_prev_iter = porefillingice_thickness
     
    991989            call writediagpem(ngrid,'ssi_depth_slope'//str2,'ice table depth','m',2,porefillingice_depth(:,islope))
    992990            call writediagpem(ngrid,'ssi_thick_slope'//str2,'ice table depth','m',2,porefillingice_thickness(:,islope))
    993         endif
    994         if (icetable_dynamic) then
     991        else if (icetable_dynamic) then
    995992            call writediagpem(ngrid,'ssi_depth_slope'//str2,'ice table depth','m',2,porefillingice_depth(:,islope))
    996993            call writediagpem(ngrid,'ssi_thick_slope'//str2,'ice table depth','m',2,porefillingice_thickness(:,islope))
  • trunk/LMDZ.COMMON/libf/evolution/pemetat0.F90

    r3456 r3490  
    1616use comsoil_h,                  only: volcapa, inertiedat
    1717use adsorption_mod,             only: regolith_adsorption, adsorption_pem
    18 use ice_table_mod,              only: computeice_table_equilibrium, icetable_equilibrium
     18use ice_table_mod,              only: computeice_table_equilibrium, icetable_equilibrium, icetable_dynamic
    1919use constants_marspem_mod,      only: alpha_clap_h2o, beta_clap_h2o, TI_breccia, TI_bedrock
    2020use soil_thermalproperties_mod, only: update_soil_thermalproperties
     
    308308!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    309309!3. Ice Table
    310         if(icetable_equilibrium) then
     310        if (icetable_equilibrium .or. icetable_dynamic) then
    311311            call get_field("ice_table",ice_table,found)
    312312            if (.not. found) then
     
    484484!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    485485!c) Ice table
    486         if(icetable_equilibrium) then
     486        if (icetable_equilibrium .or. icetable_dynamic) then
    487487            call computeice_table_equilibrium(ngrid,nslope,nsoil_PEM,watercaptag,watersurf_avg,watersoil_avg,TI_PEM(:,1,:),ice_table,ice_table_thickness)
    488488            call update_soil_thermalproperties(ngrid,nslope,nsoil_PEM,tend_h2o_ice,h2o_ice,global_avg_pressure,ice_table,ice_table_thickness,TI_PEM)
Note: See TracChangeset for help on using the changeset viewer.