LMDZ
time_phylmdz_mod.F90
Go to the documentation of this file.
1 !
2 ! $Id: $
3 !
5 
6  IMPLICIT NONE
7  REAL,SAVE :: pdtphys ! physics time step (s)
8 !$OMP THREADPRIVATE(pdtphys)
9  INTEGER,SAVE :: day_step_phy ! number of physical steps per day
10 !$OMP THREADPRIVATE(day_step_phy)
11  INTEGER,SAVE :: ndays ! number of days to run
12 !$OMP THREADPRIVATE(ndays)
13  INTEGER,SAVE :: annee_ref ! reference year from the origin
14 !$OMP THREADPRIVATE(annee_ref)
15  INTEGER,SAVE :: day_ref ! reference year of the origin
16 !$OMP THREADPRIVATE(day_ref)
17  INTEGER,SAVE :: day_ini ! initial day of the run starting from 1st january of annee_ref
18 !$OMP THREADPRIVATE(day_ini)
19  INTEGER,SAVE :: day_end ! final day of the run starting from 1st january of annee_ref
20 !$OMP THREADPRIVATE(day_end)
21  REAL,SAVE :: start_time ! starting time from the begining of the initial day
22 !$OMP THREADPRIVATE(start_time)
23  INTEGER,SAVE :: raz_date
24 !$OMP THREADPRIVATE(raz_date)
25 
26  INTEGER,SAVE :: itau_phy ! number of physiq iteration from origin
27 !$OMP THREADPRIVATE(itau_phy)
28  INTEGER,SAVE :: itaufin_phy ! final iteration (in itau_phy steps)
29 !$OMP THREADPRIVATE(itaufin_phy)
30  REAL,SAVE :: current_time ! current elapsed time (s) from the begining of the run
31 !$OMP THREADPRIVATE(current_time)
32 
33 
34 CONTAINS
35 
36  SUBROUTINE init_time(annee_ref_, day_ref_, day_ini_, start_time_, &
37  ndays_, pdtphys_)
39  USE phys_cal_mod, ONLY: phys_cal_init
40  IMPLICIT NONE
41  include 'YOMCST.h'
42  INTEGER, INTENT(IN) :: annee_ref_
43  INTEGER, INTENT(IN) :: day_ref_
44  INTEGER, INTENT(IN) :: day_ini_
45  REAL, INTENT(IN) :: start_time_
46  INTEGER, INTENT(IN) :: ndays_
47  REAL, INTENT(IN) :: pdtphys_
48 
49  annee_ref = annee_ref_
50  day_ref = day_ref_
51  day_ini = day_ini_
52  start_time = start_time_
53  ndays = ndays_
54  pdtphys = pdtphys_
55 
56  ! Initialize module variable not inherited from dynamics
57  day_step_phy = nint(rday/pdtphys)
59 
60  raz_date = 0
61  CALL getin_p('raz_date', raz_date)
62 
63  current_time=0
64 
66 
67  END SUBROUTINE init_time
68 
69  SUBROUTINE init_iteration(itau_phy_)
70  IMPLICIT NONE
71  INTEGER, INTENT(IN) :: itau_phy_
72  itau_phy=itau_phy_
73  IF (raz_date==1) itau_phy=0
74 
76 
77  END SUBROUTINE init_iteration
78 
79 END MODULE time_phylmdz_mod
80 
!$Id day_end
Definition: temps.h:15
integer, save day_step_phy
integer, save ndays
!$Id itau_phy
Definition: temps.h:15
!$Id && day_ini
Definition: temps.h:15
subroutine init_time(annee_ref_, day_ref_, day_ini_, start_time_, ndays_, pdtphys_)
!$Id day_ref
Definition: temps.h:15
integer, save raz_date
Definition: control_mod.F90:28
integer, save itaufin_phy
!$Id zjulian!correction pour l heure initiale!jyg!jyg CALL pdtphys
Definition: ini_histrac.h:11
subroutine init_iteration(itau_phy_)
!$Id start_time
Definition: temps.h:15
subroutine phys_cal_init(annee_ref, day_ref)
!$Id annee_ref
Definition: temps.h:15