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

Last change on this file since 3599 was 3571, checked in by jbclement, 2 weeks 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
RevLine 
[3076]1MODULE lask_param_mod
2
[2855]3!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
4!!!
5!!! Purpose: Define parameters from Laskar et al., 2004 evolution
[3076]6!!!
[3039]7!!! Author: RV, JBC
[2855]8!!!
9!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
[2835]10
11implicit none
12
[3571]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
[2835]18
[3076]19!=======================================================================
[2835]20contains
[3076]21!=======================================================================
[2835]22
[3076]23SUBROUTINE ini_lask_param_mod
[3039]24
[3076]25implicit none
[3039]26
[3076]27integer :: nlask ! number of lines in Laskar files
28integer :: ierr
[2835]29
[3076]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))
[2835]39
[3076]40END SUBROUTINE ini_lask_param_mod
[2835]41
[3076]42!=======================================================================
[2835]43
[3076]44SUBROUTINE end_lask_param_mod
[2835]45
[3076]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.