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

Last change on this file since 3571 was 3571, checked in by jbclement, 9 hours ago

PEM:

  • New way to manage the pressure: now the PEM manages only the average pressure and keeps the pressure deviation with the instantaneous pressure from the start to reconstruct the pressure at the end ('ps_avg = ps_start + ps_dev'). As a consequence, everything related to pressure in the PEM is modified accordingly.
  • Surface temperatures management is now simpler. It follows the strategy for the pressure (and soil temperature) described above.
  • Soil temperatures are now adapted to match the surface temperature changes occured during the PEM by modifying the soil temperature deviation at the end.
  • Few simplifications/optimizations: notably, the two PCM years are now read in one go in 'read_data_PCM_mod.F90' and only the needed variables are extracted.
  • Deletion of unused variables and unnecessary intermediate variables (memory saving and loop deletion in some cases).
  • Renaming of variables and subroutines to make everything clearer. In particular, the suffixes: '_avg' = average, '_start' = PCM start file, '_dev' = deviation, '_ini' or '0' = initial, '_dyn' = dynamical grid, '_timeseries' = daily average of last PCM year.
  • Cosmetic cleanings for readability.

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 :: yearlask   ! year before present from Laskar et al. Tab
14real, dimension(:), allocatable :: obllask    ! obliquity    [deg]
15real, dimension(:), allocatable :: ecclask    ! eccentricity [deg]
16real, dimension(:), allocatable :: lsplask    ! ls perihelie [deg]
17integer                         :: 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.