source: LMDZ6/branches/Amaury_dev/libf/dyn3d/replay3d.F90 @ 5134

Last change on this file since 5134 was 5134, checked in by abarral, 4 months ago

Replace academic.h, alpale.h, comdissip.h, comdissipn.h, comdissnew.h by modules
Remove unused clesph0.h

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