Changeset 2894


Ignore:
Timestamp:
Feb 10, 2023, 5:01:53 PM (23 months ago)
Author:
romain.vande
Message:

Mars PEM:
New Boolean options for following orbital parameters of ob_ex_lsp.asc: var_obl, var_ex, var_lsp.
If using evol_orbit_pem=true, you can specify which parameter to follow.
True by default: Do you want to change the parameter XXX during the PEM run as prescribed in ob_ex_lsp.asc.
If false, it is set to constant (to the value of the tab_cntrl in the start)
RV

Location:
trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.COMMON/libf/evolution/conf_pem.F90

    r2893 r2894  
    1515 
    1616  USE temps_mod_evol, ONLY: year_bp_ini, dt_pem, water_ice_criterion, co2_ice_criterion, ps_criterion, &
    17                 Max_iter_pem, evol_orbit_pem
     17                Max_iter_pem, evol_orbit_pem,var_obl, var_ex, var_lsp
    1818  USE comsoil_h_pem, only: soil_pem,fluxgeo,water_reservoir_nom
    1919  USE adsorption_mod,only: adsorption_pem
     
    5353  print*,'Flux Geothermal is set to',fluxgeo
    5454
     55  var_obl = .true.
     56  CALL getin('var_obl',var_obl)
     57
     58  var_ex = .true.
     59  CALL getin('var_ex',var_ex)
     60
     61  var_lsp = .true.
     62  CALL getin('var_lsp',var_lsp)
     63
    5564  if ((not(soil_pem)).and.adsorption_pem) then
    5665       print*,'Adsorption must be used when soil_pem = T'
     
    6271       call abort_physic(modname,"Soil is not activated but Flux Geo > 0.'",1)
    6372  endif
     73
     74  if (evol_orbit_pem.and.year_bp_ini.eq.0.) then
     75       print*,'You want to follow the file ob_ex_lsp.asc for changing orb parameters,'
     76       print*,'but you did not specify from which year to start.'
     77       call abort_physic(modname,"evol_orbit_pem=.true. but year_bp_ini=0",1)
     78  endif
    6479 
    6580   water_reservoir_nom = 1e4
  • trunk/LMDZ.COMMON/libf/evolution/orbit_param_criterion_mod.F90

    r2842 r2894  
    77      SUBROUTINE orbit_param_criterion(year_iter_max)
    88
    9       USE temps_mod_evol, ONLY: year_bp_ini, year_PEM
     9      USE temps_mod_evol, ONLY: year_bp_ini, year_PEM, var_obl, var_ex, var_lsp
    1010#ifndef CPP_STD
    1111      USE planete_h, ONLY: e_elips, obliquit, timeperi
     
    9696!Constant max change case
    9797
    98         max_change_obl=0.01
    99         max_change_ex=0.01
    100         max_change_lsp=20.
     98        max_change_obl=0.1
     99        max_change_ex=0.1
     100        max_change_lsp=40.
    101101
    102102        max_obl=obliquit+max_change_obl
     
    111111!End Constant max change case
    112112
    113         obl_not_found=.TRUE.
    114         ex_not_found=.TRUE.
    115         lsp_not_found=.TRUE.
     113! If we do not want some orb parameter to change, they should not be a stopping criterion,
     114! So the number of iteration corresponding is set to maximum
     115        if(.not.var_obl) then
     116           obl_not_found=.FALSE.
     117        else
     118           obl_not_found=.TRUE.
     119        endif
     120        if(.not.var_ex) then
     121           ex_not_found=.FALSE.
     122        else
     123           ex_not_found=.TRUE.
     124        endif
     125        if(.not.var_lsp) then
     126           lsp_not_found=.FALSE.
     127        else
     128           lsp_not_found=.TRUE.
     129        endif
    116130
    117131        max_obl_iter=999999999999
  • trunk/LMDZ.COMMON/libf/evolution/recomp_orb_param_mod.F90

    r2855 r2894  
    1313      SUBROUTINE recomp_orb_param(final_iter)
    1414
    15       USE temps_mod_evol, ONLY: year_bp_ini, year_PEM
     15      USE temps_mod_evol, ONLY: year_bp_ini, year_PEM, var_obl, var_ex, var_lsp
    1616#ifndef CPP_STD     
    1717      USE comconst_mod, ONLY: pi
     
    6666        do ilask=last_ilask,1,-1
    6767           if(yearlask(ilask) .GT.Year) then
    68               obliquit=oblask(ilask+1)+(oblask(ilask)-oblask(ilask+1))*(Year-yearlask(ilask+1))/(yearlask(ilask)-yearlask(ilask+1))
    69               e_elips=exlask(ilask+1)+(exlask(ilask)-exlask(ilask+1))*(Year-yearlask(ilask+1))/(yearlask(ilask)-yearlask(ilask+1))
    70               timeperi_ls=lsplask(ilask+1)+(lsplask(ilask)-lsplask(ilask+1))*(Year-yearlask(ilask+1))/(yearlask(ilask)-yearlask(ilask+1))
     68             if(var_obl) then
     69               obliquit=oblask(ilask+1)+(oblask(ilask)-oblask(ilask+1))*(Year-yearlask(ilask+1))/(yearlask(ilask)-yearlask(ilask+1))
     70             endif
     71             if(var_ex) then
     72               e_elips=exlask(ilask+1)+(exlask(ilask)-exlask(ilask+1))*(Year-yearlask(ilask+1))/(yearlask(ilask)-yearlask(ilask+1))
     73             endif
     74             if(var_lsp) then
     75               timeperi_ls=lsplask(ilask+1)+(lsplask(ilask)-lsplask(ilask+1))*(Year-yearlask(ilask+1))/(yearlask(ilask)-yearlask(ilask+1))
     76             endif
    7177              exit
    7278           endif
  • trunk/LMDZ.COMMON/libf/evolution/temps_mod_evol.F90

    r2893 r2894  
    1111  INTEGER   Max_iter_pem        !     Maximal number of iteration when converging to a steady state, read in evol.def
    1212  LOGICAL   evol_orbit_pem      !     True if we want to follow the orbital parameters of ob_ex_lsp.asc, read in evol.def
     13  LOGICAL   var_obl             !     True if we want the PEM to follow ob_ex_lsp.asc parameters for obliquity
     14  LOGICAL   var_ex              !     True if we want the PEM to follow ob_ex_lsp.asc parameters for excenticity
     15  LOGICAL   var_lsp             !     True if we want the PEM to follow ob_ex_lsp.asc parameters for ls perihelie
    1316
    1417END MODULE temps_mod_evol
  • trunk/LMDZ.MARS/README

    r2893 r2894  
    38683868Some cleaning
    38693869
     3870== 10/02/2023 == RV
     3871New Boolean options for following orbital parameters of ob_ex_lsp.asc: var_obl, var_ex, var_lsp.
     3872If using evol_orbit_pem=true, you can specify which parameter to follow.
     3873True by default: Do you want to change the parameter XXX during the PEM run as prescribed in ob_ex_lsp.asc.
     3874If false, it is set to constant (to the value of the tab_cntrl in the start)
     3875
Note: See TracChangeset for help on using the changeset viewer.