source: LMDZ6/branches/Ocean_skin/libf/dyn3d/replay3d.F90 @ 5453

Last change on this file since 5453 was 4368, checked in by lguez, 2 years ago

Sync latest trunk changes to Ocean_skin

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