source: LMDZ6/trunk/libf/dyn3d/replay3d.F90 @ 5258

Last change on this file since 5258 was 5250, checked in by abarral, 5 weeks ago

Wrap uses of cpp key CPP_PHYS

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