source: trunk/LMDZ.COMMON/libf/evolution/lask_param_mod.F90 @ 3495

Last change on this file since 3495 was 3149, checked in by jbclement, 12 months ago

PEM:

  • Simplification of the algorithm managing the stopping criteria;
  • Complete rework of the ice management in the PEM (H2O & CO2);

    Subroutines to evolve the H2O and CO2 ice are now in the same module "evol_ice_mod.F90".
    Tendencies are computed from the variation of "ice + frost" between the 2 PCM runs.
    Evolving ice in the PEM is now called 'h2o_ice' or 'co2_ice' (not anymore in 'qsurf' and free of 'water_reservoir').
    Default value 'ini_h2o_bigreservoir' (= 10 m) initializes the H2O ice of the first PEM run where there is 'watercap'. For the next PEM runs, initialization is done with the value kept in "startpem.nc". CO2 ice is taken from 'perennial_co2ice' of the PCM (paleoclimate flag must be true).
    Simplification of the condition to compute the surface ice cover needed for the stopping criteria.
    Frost ('qsurf') is not evolved by the PEM and given back to the PCM.
    New default threshold value 'inf_h2oice_threshold' (= 2 m) to decide at the end of the PEM run if the H2O ice should be 'watercap' or not for the next PCM runs. If H2O ice cannot be 'watercap', then the remaining H2O ice is transferred to the frost ('qsurf').

  • Renaming of variables/subroutines for clarity;
  • Some cleanings throughout the code;
  • Small updates in files of the deftank.

JBC

File size: 1.6 KB
Line 
1MODULE lask_param_mod
2
3!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
4!!!
5!!! Purpose: Define parameters from Laskar et al., 2004 evolution
6!!!
7!!! Author: RV, JBC
8!!!
9!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
10
11implicit none
12
13real, dimension(:), allocatable, save :: yearlask   ! year before present from Laskar et al. Tab
14real, dimension(:), allocatable, save :: obllask    ! obliquity    [deg]
15real, dimension(:), allocatable, save :: ecclask    ! eccentricity [deg]
16real, dimension(:), allocatable, save :: lsplask    ! ls perihelie [deg]
17integer,                         save :: last_ilask ! Index of the line in the file year_obl_lask.asc corresponding to the closest lower year to the current year
18
19!=======================================================================
20contains
21!=======================================================================
22
23SUBROUTINE ini_lask_param_mod
24
25implicit none
26
27integer :: nlask ! number of lines in Laskar files
28integer :: ierr
29
30nlask = 0
31open(1,file = 'obl_ecc_lsp.asc')
32do
33    read(1,*,iostat = ierr)
34    if (ierr /= 0) exit
35    nlask = nlask + 1
36enddo
37close(1)
38allocate(yearlask(nlask),obllask(nlask),ecclask(nlask),lsplask(nlask))
39
40END SUBROUTINE ini_lask_param_mod
41
42!=======================================================================
43
44SUBROUTINE end_lask_param_mod
45
46implicit none
47
48if (allocated(yearlask)) deallocate(yearlask)
49if (allocated(obllask)) deallocate(obllask)
50if (allocated(ecclask)) deallocate(ecclask)
51if (allocated(lsplask)) deallocate(lsplask)
52
53END SUBROUTINE end_lask_param_mod
54
55END MODULE lask_param_mod
Note: See TracBrowser for help on using the repository browser.