/[lmdze]/trunk/Sources/phylmd/initphysto.f
ViewVC logotype

Diff of /trunk/Sources/phylmd/initphysto.f

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 151 by guez, Tue Jun 23 15:14:20 2015 UTC revision 155 by guez, Wed Jul 8 17:03:45 2015 UTC
# Line 1  Line 1 
1  SUBROUTINE initphysto(infile,rlon,rlat,tstep,t_ops,t_wrt,nq,fileid)  module initphysto_m
   
   ! From phylmd/initphysto.F,v 1.2 2004/06/22 11:45:32  
   !   Routine d'initialisation des ecritures des fichiers histoires LMDZ  
   !   au format IOIPSL  
   
   !   Appels succesifs des routines: histbeg  
   !                                  histhori  
   !                                  histver  
   !                                  histdef  
   !                                  histend  
   
   !   Entree:  
   
   !      infile: nom du fichier histoire a creer  
   !      day0,anne0: date de reference  
   !      tstep: duree du pas de temps en seconde  
   !      t_ops: frequence de l'operation pour IOIPSL  
   !      t_wrt: frequence d'ecriture sur le fichier  
   !      nq: nombre de traceurs  
   
   !   Sortie:  
   !      fileid: ID du fichier netcdf cree  
   !      filevid:ID du fichier netcdf pour la grille v  
   
   !   L. Fairhead, 03/99  
   
   use dynetat0_m, only: day_ref, annee_ref  
   USE histbeg_totreg_m, ONLY : histbeg_totreg  
   USE histdef_m, ONLY : histdef  
   USE histend_m, ONLY : histend  
   use histsync_m, only: histsync  
   USE histvert_m, ONLY : histvert  
   USE dimens_m  
   USE paramet_m  
   USE comconst  
   USE indicesol  
   USE dimphy  
   use conf_gcm_m  
   USE comgeom  
   USE nr_util, ONLY : pi  
   USE ymds2ju_m  
2    
3    IMPLICIT NONE    IMPLICIT NONE
4    
5    !   Arguments  contains
6    CHARACTER(len=*) infile  
7    INTEGER nhoriid, i    SUBROUTINE initphysto(infile,rlon,rlat,tstep,t_ops,t_wrt,fileid)
8    REAL, INTENT (IN) :: tstep  
9    REAL t_ops, t_wrt      ! From phylmd/initphysto.F,v 1.2 2004/06/22 11:45:32
10    INTEGER fileid      !   Routine d'initialisation des ecritures des fichiers histoires LMDZ
11    INTEGER nq, l      !   au format IOIPSL
12    REAL nivsigs(llm)  
13        !   Appels succesifs des routines: histbeg
14        !                                  histhori
15        !                                  histver
16        !                                  histdef
17        !                                  histend
18    
19        !   Entree:
20    
21        !      infile: nom du fichier histoire a creer
22        !      day0,anne0: date de reference
23        !      tstep: duree du pas de temps en seconde
24        !      t_ops: frequence de l'operation pour IOIPSL
25        !      t_wrt: frequence d'ecriture sur le fichier
26    
27        !   Sortie:
28        !      fileid: ID du fichier netcdf cree
29        !      filevid:ID du fichier netcdf pour la grille v
30    
31        !   L. Fairhead, 03/99
32    
33        use dynetat0_m, only: day_ref, annee_ref
34        USE histbeg_totreg_m, ONLY : histbeg_totreg
35        USE histdef_m, ONLY : histdef
36        USE histend_m, ONLY : histend
37        use histsync_m, only: histsync
38        USE histvert_m, ONLY : histvert
39        USE dimens_m
40        USE paramet_m
41        USE comconst
42        USE indicesol
43        USE dimphy
44        use conf_gcm_m
45        USE comgeom
46        USE nr_util, ONLY : pi
47        USE ymds2ju_m
48    
49        !   Arguments
50        CHARACTER(len=*) infile
51        INTEGER nhoriid, i
52        REAL, INTENT (IN) :: tstep
53        REAL t_ops, t_wrt
54        INTEGER fileid
55        INTEGER l
56        REAL nivsigs(llm)
57    
58        !   Variables locales
59    
60    !   Variables locales      INTEGER tau0
61        REAL zjulian
62        CHARACTER(len=3) str
63        CHARACTER(len=10) ctrac
64        INTEGER zvertiid
65        LOGICAL ok_sync
66        REAL zx_lon(iim,jjm+1), zx_lat(iim,jjm+1)
67    
68    INTEGER tau0      REAL, INTENT (IN) :: rlon(klon), rlat(klon)
   REAL zjulian  
   CHARACTER(len=3) str  
   CHARACTER(len=10) ctrac  
   INTEGER uhoriid, vhoriid, thoriid, zvertiid  
   LOGICAL ok_sync  
   REAL zx_lon(iim,jjm+1), zx_lat(iim,jjm+1)  
69    
70    REAL, INTENT (IN) :: rlon(klon), rlat(klon)      !-----------------------------------------------------
71    
72    !-----------------------------------------------------      !  Initialisations
73        str = 'q  '
74        ctrac = 'traceur   '
75        ok_sync = .TRUE.
76    
77    !  Initialisations      !  Appel a histbeg: creation du fichier netcdf et initialisations
78    str = 'q  '      !     diverses
   ctrac = 'traceur   '  
   ok_sync = .TRUE.  
79    
80    !  Appel a histbeg: creation du fichier netcdf et initialisations      CALL ymds2ju(annee_ref,1,day_ref,0.0,zjulian)
81    !     diverses      tau0 = 0
82    
83    CALL ymds2ju(annee_ref,1,day_ref,0.0,zjulian)      CALL gr_fi_ecrit(1,klon,iim,jjm+1,rlon,zx_lon)
84    tau0 = 0      DO i = 1, iim
85           zx_lon(i,1) = rlon(i+1)
86           zx_lon(i,jjm+1) = rlon(i+1)
87        END DO
88        CALL gr_fi_ecrit(1,klon,iim,jjm+1,rlat,zx_lat)
89    
   CALL gr_fi_ecrit(1,klon,iim,jjm+1,rlon,zx_lon)  
   DO i = 1, iim  
      zx_lon(i,1) = rlon(i+1)  
      zx_lon(i,jjm+1) = rlon(i+1)  
   END DO  
   CALL gr_fi_ecrit(1,klon,iim,jjm+1,rlat,zx_lat)  
90    
91        CALL histbeg_totreg(infile,zx_lon(:,1),zx_lat(1,:),1,iim,1,jjm+1,tau0, &
92             zjulian,tstep,nhoriid,fileid)
93    
94    CALL histbeg_totreg(infile,zx_lon(:,1),zx_lat(1,:),1,iim,1,jjm+1,tau0, &      !  Appel a histvert pour la grille verticale
        zjulian,tstep,nhoriid,fileid)  
95    
96    !  Appel a histvert pour la grille verticale      DO l = 1, llm
97           nivsigs(l) = float(l)
98        END DO
99    
100    DO l = 1, llm      CALL histvert(fileid,'sig_s','Niveaux sigma','sigma_level',nivsigs, &
101       nivsigs(l) = float(l)           zvertiid)
   END DO  
102    
103    CALL histvert(fileid,'sig_s','Niveaux sigma','sigma_level',nivsigs, &      !  Appels a histdef pour la definition des variables a sauvegarder
        zvertiid)  
104    
105    !  Appels a histdef pour la definition des variables a sauvegarder      CALL histdef(fileid,'phis','Surface geop. height','-',iim,jjm+1,nhoriid, &
106             1,1,1,-99,'once',t_ops,t_wrt)
107    
108    CALL histdef(fileid,'phis','Surface geop. height','-',iim,jjm+1,nhoriid, &      CALL histdef(fileid,'aire','Grid area','-',iim,jjm+1,nhoriid,1,1,1,-99, &
109         1,1,1,-99,'once',t_ops,t_wrt)           'once',t_ops,t_wrt)
110    
111    CALL histdef(fileid,'aire','Grid area','-',iim,jjm+1,nhoriid,1,1,1,-99, &      CALL histdef(fileid,'dtime','tps phys ','s',1,1,nhoriid,1,1,1,-99, &
112         'once',t_ops,t_wrt)           'once',t_ops,t_wrt)
113    
114    CALL histdef(fileid,'dtime','tps phys ','s',1,1,nhoriid,1,1,1,-99, &      CALL histdef(fileid,'istphy','tps stock','s',1,1,nhoriid,1,1,1,-99, &
115         'once',t_ops,t_wrt)           'once',t_ops,t_wrt)
116    
117    CALL histdef(fileid,'istphy','tps stock','s',1,1,nhoriid,1,1,1,-99, &      ! T
        'once',t_ops,t_wrt)  
118    
119    ! T      CALL histdef(fileid,'t','Temperature','K',iim,jjm+1,nhoriid,llm,1,llm, &
120             zvertiid,'inst(X)',t_ops,t_wrt)
121    
122    CALL histdef(fileid,'t','Temperature','K',iim,jjm+1,nhoriid,llm,1,llm, &      CALL histdef(fileid,'mfu','flx m. pan. mt','kg m/s',iim,jjm+1,nhoriid, &
123         zvertiid,'inst(X)',t_ops,t_wrt)           llm,1,llm,zvertiid,'inst(X)',t_ops,t_wrt)
124    
125    CALL histdef(fileid,'mfu','flx m. pan. mt','kg m/s',iim,jjm+1,nhoriid, &      CALL histdef(fileid,'mfd','flx m. pan. des','kg m/s',iim,jjm+1,nhoriid, &
126         llm,1,llm,zvertiid,'inst(X)',t_ops,t_wrt)           llm,1,llm,zvertiid,'inst(X)',t_ops,t_wrt)
127    
   CALL histdef(fileid,'mfd','flx m. pan. des','kg m/s',iim,jjm+1,nhoriid, &  
        llm,1,llm,zvertiid,'inst(X)',t_ops,t_wrt)  
128    
129        ! en_u
130    
131    ! en_u      CALL histdef(fileid,'en_u','flx ent pan mt','kg m/s',iim,jjm+1,nhoriid, &
132             llm,1,llm,zvertiid,'inst(X)',t_ops,t_wrt)
133    
134    CALL histdef(fileid,'en_u','flx ent pan mt','kg m/s',iim,jjm+1,nhoriid, &      CALL histdef(fileid,'de_u','flx det pan mt','kg m/s',iim,jjm+1,nhoriid, &
135         llm,1,llm,zvertiid,'inst(X)',t_ops,t_wrt)           llm,1,llm,zvertiid,'inst(X)',t_ops,t_wrt)
136    
   CALL histdef(fileid,'de_u','flx det pan mt','kg m/s',iim,jjm+1,nhoriid, &  
        llm,1,llm,zvertiid,'inst(X)',t_ops,t_wrt)  
137    
138        ! en_d
139    
140    ! en_d      CALL histdef(fileid,'en_d','flx ent pan dt','kg m/s',iim,jjm+1,nhoriid, &
141             llm,1,llm,zvertiid,'inst(X)',t_ops,t_wrt)
142    
   CALL histdef(fileid,'en_d','flx ent pan dt','kg m/s',iim,jjm+1,nhoriid, &  
        llm,1,llm,zvertiid,'inst(X)',t_ops,t_wrt)  
143    
144    
145        ! de_d
146    
147    ! de_d      CALL histdef(fileid,'de_d','flx det pan dt','kg m/s',iim,jjm+1,nhoriid, &
148             llm,1,llm,zvertiid,'inst(X)',t_ops,t_wrt)
149    
150    CALL histdef(fileid,'de_d','flx det pan dt','kg m/s',iim,jjm+1,nhoriid, &      ! coefh frac_impa,frac_nucl
        llm,1,llm,zvertiid,'inst(X)',t_ops,t_wrt)  
151    
152    ! coefh frac_impa,frac_nucl      CALL histdef(fileid,'coefh',' ',' ',iim,jjm+1,nhoriid,llm,1,llm, &
153             zvertiid,'inst(X)',t_ops,t_wrt)
154    
155    CALL histdef(fileid,'coefh',' ',' ',iim,jjm+1,nhoriid,llm,1,llm, &      ! abderrahmane le 16 09 02
156         zvertiid,'inst(X)',t_ops,t_wrt)      CALL histdef(fileid,'fm_th',' ',' ',iim,jjm+1,nhoriid,llm,1,llm, &
157             zvertiid,'inst(X)',t_ops,t_wrt)
158    
159    ! abderrahmane le 16 09 02      CALL histdef(fileid,'en_th',' ',' ',iim,jjm+1,nhoriid,llm,1,llm, &
160    CALL histdef(fileid,'fm_th',' ',' ',iim,jjm+1,nhoriid,llm,1,llm, &           zvertiid,'inst(X)',t_ops,t_wrt)
161         zvertiid,'inst(X)',t_ops,t_wrt)      ! fin aj
162    
163    CALL histdef(fileid,'en_th',' ',' ',iim,jjm+1,nhoriid,llm,1,llm, &      CALL histdef(fileid,'frac_impa',' ',' ',iim,jjm+1,nhoriid,llm,1,llm, &
164         zvertiid,'inst(X)',t_ops,t_wrt)           zvertiid,'inst(X)',t_ops,t_wrt)
   ! fin aj  
165    
166    CALL histdef(fileid,'frac_impa',' ',' ',iim,jjm+1,nhoriid,llm,1,llm, &      CALL histdef(fileid,'frac_nucl',' ',' ',iim,jjm+1,nhoriid,llm,1,llm, &
167         zvertiid,'inst(X)',t_ops,t_wrt)           zvertiid,'inst(X)',t_ops,t_wrt)
168    
   CALL histdef(fileid,'frac_nucl',' ',' ',iim,jjm+1,nhoriid,llm,1,llm, &  
        zvertiid,'inst(X)',t_ops,t_wrt)  
169    
170        ! pyu1
171    
172    ! pyu1      CALL histdef(fileid,'pyu1',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &
173             'inst(X)',t_ops,t_wrt)
174    
   CALL histdef(fileid,'pyu1',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &  
        'inst(X)',t_ops,t_wrt)  
175    
176        ! pyv1
177    
178    ! pyv1      CALL histdef(fileid,'pyv1',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &
179             'inst(X)',t_ops,t_wrt)
180    
181    CALL histdef(fileid,'pyv1',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &      CALL histdef(fileid,'ftsol1',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &
182         'inst(X)',t_ops,t_wrt)           'inst(X)',t_ops,t_wrt)
183    
   CALL histdef(fileid,'ftsol1',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &  
        'inst(X)',t_ops,t_wrt)  
184    
185        ! ftsol2
186    
187    ! ftsol2      CALL histdef(fileid,'ftsol2',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &
188             'inst(X)',t_ops,t_wrt)
189    
   CALL histdef(fileid,'ftsol2',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &  
        'inst(X)',t_ops,t_wrt)  
190    
191        ! ftsol3
192    
193    ! ftsol3      CALL histdef(fileid,'ftsol3',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &
194             'inst(X)',t_ops,t_wrt)
195    
   CALL histdef(fileid,'ftsol3',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &  
        'inst(X)',t_ops,t_wrt)  
196    
197        ! ftsol4
198    
199    ! ftsol4      CALL histdef(fileid,'ftsol4',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &
200             'inst(X)',t_ops,t_wrt)
201    
   CALL histdef(fileid,'ftsol4',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &  
        'inst(X)',t_ops,t_wrt)  
202    
203        ! rain
204    
205    ! rain      CALL histdef(fileid,'rain',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &
206             'inst(X)',t_ops,t_wrt)
207    
   CALL histdef(fileid,'rain',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &  
        'inst(X)',t_ops,t_wrt)  
208    
209        ! psrf1
210    
211    ! psrf1      CALL histdef(fileid,'psrf1',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &
212             'inst(X)',t_ops,t_wrt)
213    
   CALL histdef(fileid,'psrf1',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &  
        'inst(X)',t_ops,t_wrt)  
214    
215        ! psrf2
216    
217    ! psrf2      CALL histdef(fileid,'psrf2',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &
218             'inst(X)',t_ops,t_wrt)
219    
   CALL histdef(fileid,'psrf2',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &  
        'inst(X)',t_ops,t_wrt)  
220    
221        ! psrf3
222    
223    ! psrf3      CALL histdef(fileid,'psrf3',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &
224             'inst(X)',t_ops,t_wrt)
225    
   CALL histdef(fileid,'psrf3',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &  
        'inst(X)',t_ops,t_wrt)  
226    
227        ! psrf4
228    
229    ! psrf4      CALL histdef(fileid,'psrf4',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &
230             'inst(X)',t_ops,t_wrt)
231    
232    CALL histdef(fileid,'psrf4',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &      CALL histend(fileid)
233         'inst(X)',t_ops,t_wrt)      IF (ok_sync) CALL histsync
234    
235    CALL histend(fileid)    END SUBROUTINE initphysto
   IF (ok_sync) CALL histsync  
236    
237  END SUBROUTINE initphysto  end module initphysto_m

Legend:
Removed from v.151  
changed lines
  Added in v.155

  ViewVC Help
Powered by ViewVC 1.1.21