source: LMDZ6/trunk/libf/dyn3d/replay3d.f90 @ 5458

Last change on this file since 5458 was 5458, checked in by fhourdin, 4 days ago

Concering replay

File size: 4.9 KB
Line 
1!
2! $Id: gcm.F90 3579 2019-10-09 13:11:07Z fairhead $
3!
4!
5!
6PROGRAM replay3d
7  USE comgeom2_mod_h
8  USE comdissnew_mod_h
9  USE comvert_mod, only :  preff, pa
10  USE inigeomphy_mod, ONLY: inigeomphy
11  USE control_mod
12  USE temps_mod, ONLY: calend,start_time,annee_ref,day_ref, &
13                     itau_dyn,itau_phy,day_ini,jD_ref,jH_ref,day_end
14  USE comconst_mod, ONLY: cpp, daysec, dtphys, dtvr, g, r, rad
15  USE logic_mod, ONLY: ecripar, iflag_phys, read_start
16
17  USE serre_mod, ONLY : clon,clat,transx,transy,alphax,alphay,pxo,pyo,              &
18        grossismx, grossismy, dzoomx, dzoomy,taux,tauy
19  USE mod_const_mpi, ONLY: comm_lmdz
20  USE ioipsl, only: getin
21
22!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
23  ! FH 2008/05/09 On elimine toutes les clefs physiques dans la dynamique
24  ! A nettoyer. On ne veut qu'une ou deux routines d'interface
25  ! dynamique -> physique pour l'initialisation
26  USE iniphysiq_mod, ONLY: iniphysiq
27!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
28  USE dimensions_mod, ONLY: iim, jjm, llm, ndm
29  USE paramet_mod_h
30
31  IMPLICIT NONE
32
33  !      ......   Version  du 10/01/98    ..........
34
35  !             avec  coordonnees  verticales hybrides
36  !   avec nouveaux operat. dissipation * ( gradiv2,divgrad2,nxgraro2 )
37
38  !=======================================================================
39  !
40  !   Auteur:  P. Le Van /L. Fairhead/F.Hourdin
41  !   -------
42  !
43  !   Objet:
44  !   ------
45  !
46  !   GCM LMD nouvelle grille
47  !
48  !=======================================================================
49  !
50  !  ... Dans inigeom , nouveaux calculs pour les elongations  cu , cv
51  !      et possibilite d'appeler une fonction f(y)  a derivee tangente
52  !      hyperbolique a la  place de la fonction a derivee sinusoidale.
53  !  ... Possibilite de choisir le schema pour l'advection de
54  !        q  , en modifiant iadv dans traceur.def  (MAF,10/02) .
55  !
56  !      Pour Van-Leer + Vapeur d'eau saturee, iadv(1)=4. (F.Codron,10/99)
57  !      Pour Van-Leer iadv=10
58  !
59  !-----------------------------------------------------------------------
60  !   Declarations:
61  !   -------------
62
63  REAL zdtvr
64
65
66  ! variables dynamiques intermediaire pour le transport
67
68  !   variables pour le fichier histoire
69  REAL dtav      ! intervalle de temps elementaire
70
71  REAL time_0
72
73  LOGICAL lafin
74
75  integer :: ntime=10000,it,klon,klev
76
77  character*20 :: lmax_replay
78
79
80  ! locales pour gestion du temps
81  INTEGER :: an, mois, jour
82  REAL :: heure
83
84  !   Initialisations:
85  !   ----------------
86
87
88  !----------------------------------------------------------------------
89  !  lecture des fichiers gcm.def ou run.def
90  !  ---------------------------------------
91  !
92preff=101325.
93 pa=50000.
94 clon=0.
95 clat=0.
96 taux=3.
97 tauy=3.
98 dzoomx=0.1
99 dzoomy=0.1
100 grossismx=1.
101 grossismx=1.
102 transx=0.
103 transy=0.
104
105  CALL conf_gcm( 99, .TRUE.)
106
107  if (mod(iphysiq, iperiod) /= 0) call abort_gcm("conf_gcm", &
108       "iphysiq must be a multiple of iperiod", 1)
109
110 rad=6400000
111g=9.81
112
113
114
115  !-----------------------------------------------------------------------
116  !   Choix du calendrier
117  !   -------------------
118
119  !      calend = 'earth_365d'
120
121
122  !-----------------------------------------------------------------------
123  !   Lecture de l'etat initial :
124  !   ---------------------------
125
126  !-----------------------------------------------------------------------
127  !   Lecture des parametres de controle pour la simulation :
128  !   -------------------------------------------------------
129  !  on recalcule eventuellement le pas de temps
130
131
132  zdtvr    = daysec/REAL(day_step)
133
134  !
135  ! on remet le calendrier \`a zero si demande
136  !
137     annee_ref = anneeref
138     day_ref = dayref
139     day_ini = dayref
140     itau_dyn = 0
141     itau_phy = 0
142     time_0 = 0.
143
144  mois = 1
145  heure = 0.
146! call ymds2ju(annee_ref, mois, day_ref, heure, jD_ref)
147  jH_ref = jD_ref - int(jD_ref)
148  jD_ref = int(jD_ref)
149
150
151
152     dtvr = zdtvr
153     CALL iniconst
154     print*,'APRES inisconst'
155     CALL inigeom
156
157
158  CALL inigeomphy(iim,jjm,llm, &
159               1, comm_lmdz, &
160               rlatu,rlatv, &
161               rlonu,rlonv, &
162               aire,cu,cv)
163
164CALL suphel
165!open(82,file='dump_param.bin',form='unformatted',status='old')
166
167
168
169print*,'Rlatu=',rlatu
170klon=2+iim*(jjm-1)
171
172print*,'AVANT getin'
173klev=llm
174CALL getin('lmax_replay',lmax_replay)
175print*,'APRES getin',lmax_replay
176CALL getin(lmax_replay,klev)
177print*,'replay3d lmax_replay klev',lmax_replay,klev
178
179     CALL iophys_ini(900.,klev)
180
181!---------------------------------------------------------------------
182! Initialisation de la parametrisation
183!---------------------------------------------------------------------
184      call call_ini_replay
185
186!---------------------------------------------------------------------
187! Boucle en temps sur l'appel à la parametrisation
188!---------------------------------------------------------------------
189      DO it=1,ntime
190         print*,'Pas de temps ',it,klon,klev
191         call call_param_replay(klon,klev)
192      ENDDO
193
194
195END PROGRAM replay3d
Note: See TracBrowser for help on using the repository browser.