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

Last change on this file since 5273 was 5272, checked in by abarral, 2 days ago

Turn paramet.h into a module

File size: 4.8 KB
Line 
1!
2! $Id: gcm.F90 3579 2019-10-09 13:11:07Z fairhead $
3!
4!
5!
6PROGRAM replay3d
7  USE comvert_mod, only :  preff, pa
8  USE inigeomphy_mod, ONLY: inigeomphy
9  USE control_mod
10  USE temps_mod, ONLY: calend,start_time,annee_ref,day_ref, &
11                     itau_dyn,itau_phy,day_ini,jD_ref,jH_ref,day_end
12  USE comconst_mod, ONLY: cpp, daysec, dtphys, dtvr, g, r, rad
13  USE logic_mod, ONLY: ecripar, iflag_phys, read_start
14
15  USE serre_mod, ONLY : clon,clat,transx,transy,alphax,alphay,pxo,pyo,              &
16        grossismx, grossismy, dzoomx, dzoomy,taux,tauy
17  USE mod_const_mpi, ONLY: comm_lmdz
18!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
19  ! FH 2008/05/09 On elimine toutes les clefs physiques dans la dynamique
20  ! A nettoyer. On ne veut qu'une ou deux routines d'interface
21  ! dynamique -> physique pour l'initialisation
22  USE iniphysiq_mod, ONLY: iniphysiq
23!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
24  USE dimensions_mod, ONLY: iim, jjm, llm, ndm
25  USE paramet_mod_h, ONLY: iip1, iip2, iip3, jjp1, llmp1, llmp2, llmm1, kftd, ip1jm, ip1jmp1, &
26          ip1jmi1, ijp1llm, ijmllm, mvar, jcfil, jcfllm
27  IMPLICIT NONE
28
29  !      ......   Version  du 10/01/98    ..........
30
31  !             avec  coordonnees  verticales hybrides
32  !   avec nouveaux operat. dissipation * ( gradiv2,divgrad2,nxgraro2 )
33
34  !=======================================================================
35  !
36  !   Auteur:  P. Le Van /L. Fairhead/F.Hourdin
37  !   -------
38  !
39  !   Objet:
40  !   ------
41  !
42  !   GCM LMD nouvelle grille
43  !
44  !=======================================================================
45  !
46  !  ... Dans inigeom , nouveaux calculs pour les elongations  cu , cv
47  !      et possibilite d'appeler une fonction f(y)  a derivee tangente
48  !      hyperbolique a la  place de la fonction a derivee sinusoidale.
49  !  ... Possibilite de choisir le schema pour l'advection de
50  !        q  , en modifiant iadv dans traceur.def  (MAF,10/02) .
51  !
52  !      Pour Van-Leer + Vapeur d'eau saturee, iadv(1)=4. (F.Codron,10/99)
53  !      Pour Van-Leer iadv=10
54  !
55  !-----------------------------------------------------------------------
56  !   Declarations:
57  !   -------------
58  include "comdissnew.h"
59  include "comgeom2.h"
60
61  REAL zdtvr
62
63
64  ! variables dynamiques intermediaire pour le transport
65
66  !   variables pour le fichier histoire
67  REAL dtav      ! intervalle de temps elementaire
68
69  REAL time_0
70
71  LOGICAL lafin
72
73  integer :: ntime=10000,it,klon,klev
74
75
76  ! locales pour gestion du temps
77  INTEGER :: an, mois, jour
78  REAL :: heure
79
80  !   Initialisations:
81  !   ----------------
82
83
84  !----------------------------------------------------------------------
85  !  lecture des fichiers gcm.def ou run.def
86  !  ---------------------------------------
87  !
88preff=101325.
89 pa=50000.
90 clon=0.
91 clat=0.
92 taux=3.
93 tauy=3.
94 dzoomx=0.1
95 dzoomy=0.1
96 grossismx=1.
97 grossismx=1.
98 transx=0.
99 transy=0.
100
101  CALL conf_gcm( 99, .TRUE.)
102
103  if (mod(iphysiq, iperiod) /= 0) call abort_gcm("conf_gcm", &
104       "iphysiq must be a multiple of iperiod", 1)
105
106 rad=6400000
107g=9.81
108
109
110
111  !-----------------------------------------------------------------------
112  !   Choix du calendrier
113  !   -------------------
114
115  !      calend = 'earth_365d'
116
117
118  !-----------------------------------------------------------------------
119  !   Lecture de l'etat initial :
120  !   ---------------------------
121
122  !-----------------------------------------------------------------------
123  !   Lecture des parametres de controle pour la simulation :
124  !   -------------------------------------------------------
125  !  on recalcule eventuellement le pas de temps
126
127
128  zdtvr    = daysec/REAL(day_step)
129
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.