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

Last change on this file since 5300 was 5285, checked in by abarral, 4 days ago

As discussed internally, remove generic ONLY: ... for new _mod_h modules

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