/[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 134 by guez, Wed Apr 29 15:47:56 2015 UTC revision 178 by guez, Fri Mar 11 18:47:26 2016 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 serre  
   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, filevid      !   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 ymds2ju_m
47    
48        !   Arguments
49        CHARACTER(len=*) infile
50        INTEGER nhoriid, i
51        REAL, INTENT (IN) :: tstep
52        REAL t_ops, t_wrt
53        INTEGER fileid
54        INTEGER l
55        REAL nivsigs(llm)
56    
57        !   Variables locales
58    
59    !   Variables locales      INTEGER tau0
60        REAL zjulian
61        INTEGER zvertiid
62        LOGICAL ok_sync
63        REAL zx_lon(iim,jjm+1), zx_lat(iim,jjm+1)
64    
65    INTEGER tau0      REAL, INTENT (IN) :: rlon(klon), rlat(klon)
   REAL zjulian  
   CHARACTER(len=3) str  
   CHARACTER(len=10) ctrac  
   INTEGER iq  
   INTEGER uhoriid, vhoriid, thoriid, zvertiid  
   INTEGER ii, jj  
   LOGICAL ok_sync  
   REAL zx_lon(iim,jjm+1), zx_lat(iim,jjm+1)  
66    
67    REAL, INTENT (IN) :: rlon(klon), rlat(klon)      !-----------------------------------------------------
68    
69    !-----------------------------------------------------      !  Initialisations
70        ok_sync = .TRUE.
71    
72    !  Initialisations      !  Appel a histbeg: creation du fichier netcdf et initialisations
73    str = 'q  '      !     diverses
   ctrac = 'traceur   '  
   ok_sync = .TRUE.  
74    
75    !  Appel a histbeg: creation du fichier netcdf et initialisations      CALL ymds2ju(annee_ref,1,day_ref,0.0,zjulian)
76    !     diverses      tau0 = 0
77    
78    CALL ymds2ju(annee_ref,1,day_ref,0.0,zjulian)      CALL gr_fi_ecrit(1,klon,iim,jjm+1,rlon,zx_lon)
79    tau0 = 0      DO i = 1, iim
80           zx_lon(i,1) = rlon(i+1)
81           zx_lon(i,jjm+1) = rlon(i+1)
82        END DO
83        CALL gr_fi_ecrit(1,klon,iim,jjm+1,rlat,zx_lat)
84    
   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)  
85    
86        CALL histbeg_totreg(infile,zx_lon(:,1),zx_lat(1,:),1,iim,1,jjm+1,tau0, &
87             zjulian,tstep,nhoriid,fileid)
88    
89    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)  
90    
91    !  Appel a histvert pour la grille verticale      DO l = 1, llm
92           nivsigs(l) = float(l)
93        END DO
94    
95    DO l = 1, llm      CALL histvert(fileid,'sig_s','Niveaux sigma','sigma_level',nivsigs, &
96       nivsigs(l) = float(l)           zvertiid)
   END DO  
97    
98    CALL histvert(fileid,'sig_s','Niveaux sigma','sigma_level',nivsigs, &      !  Appels a histdef pour la definition des variables a sauvegarder
        zvertiid)  
99    
100    !  Appels a histdef pour la definition des variables a sauvegarder      CALL histdef(fileid,'phis','Surface geop. height','-',iim,jjm+1,nhoriid, &
101             1,1,1,-99,'once',t_ops,t_wrt)
102    
103    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, &
104         1,1,1,-99,'once',t_ops,t_wrt)           'once',t_ops,t_wrt)
105    
106    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, &
107         'once',t_ops,t_wrt)           'once',t_ops,t_wrt)
108    
109    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, &
110         'once',t_ops,t_wrt)           'once',t_ops,t_wrt)
111    
112    CALL histdef(fileid,'istphy','tps stock','s',1,1,nhoriid,1,1,1,-99, &      ! T
        'once',t_ops,t_wrt)  
113    
114    ! T      CALL histdef(fileid,'t','Temperature','K',iim,jjm+1,nhoriid,llm,1,llm, &
115             zvertiid,'inst(X)',t_ops,t_wrt)
116    
117    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, &
118         zvertiid,'inst(X)',t_ops,t_wrt)           llm,1,llm,zvertiid,'inst(X)',t_ops,t_wrt)
119    
120    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, &
121         llm,1,llm,zvertiid,'inst(X)',t_ops,t_wrt)           llm,1,llm,zvertiid,'inst(X)',t_ops,t_wrt)
122    
   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)  
123    
124        ! en_u
125    
126    ! en_u      CALL histdef(fileid,'en_u','flx ent pan mt','kg m/s',iim,jjm+1,nhoriid, &
127             llm,1,llm,zvertiid,'inst(X)',t_ops,t_wrt)
128    
129    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, &
130         llm,1,llm,zvertiid,'inst(X)',t_ops,t_wrt)           llm,1,llm,zvertiid,'inst(X)',t_ops,t_wrt)
131    
   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)  
132    
133        ! en_d
134    
135    ! en_d      CALL histdef(fileid,'en_d','flx ent pan dt','kg m/s',iim,jjm+1,nhoriid, &
136             llm,1,llm,zvertiid,'inst(X)',t_ops,t_wrt)
137    
   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)  
138    
139    
140        ! de_d
141    
142    ! de_d      CALL histdef(fileid,'de_d','flx det pan dt','kg m/s',iim,jjm+1,nhoriid, &
143             llm,1,llm,zvertiid,'inst(X)',t_ops,t_wrt)
144    
145    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)  
146    
147    ! coefh frac_impa,frac_nucl      CALL histdef(fileid,'coefh',' ',' ',iim,jjm+1,nhoriid,llm,1,llm, &
148             zvertiid,'inst(X)',t_ops,t_wrt)
149    
150    CALL histdef(fileid,'coefh',' ',' ',iim,jjm+1,nhoriid,llm,1,llm, &      ! abderrahmane le 16 09 02
151         zvertiid,'inst(X)',t_ops,t_wrt)      CALL histdef(fileid,'fm_th',' ',' ',iim,jjm+1,nhoriid,llm,1,llm, &
152             zvertiid,'inst(X)',t_ops,t_wrt)
153    
154    ! abderrahmane le 16 09 02      CALL histdef(fileid,'en_th',' ',' ',iim,jjm+1,nhoriid,llm,1,llm, &
155    CALL histdef(fileid,'fm_th',' ',' ',iim,jjm+1,nhoriid,llm,1,llm, &           zvertiid,'inst(X)',t_ops,t_wrt)
156         zvertiid,'inst(X)',t_ops,t_wrt)      ! fin aj
157    
158    CALL histdef(fileid,'en_th',' ',' ',iim,jjm+1,nhoriid,llm,1,llm, &      CALL histdef(fileid,'frac_impa',' ',' ',iim,jjm+1,nhoriid,llm,1,llm, &
159         zvertiid,'inst(X)',t_ops,t_wrt)           zvertiid,'inst(X)',t_ops,t_wrt)
   ! fin aj  
160    
161    CALL histdef(fileid,'frac_impa',' ',' ',iim,jjm+1,nhoriid,llm,1,llm, &      CALL histdef(fileid,'frac_nucl',' ',' ',iim,jjm+1,nhoriid,llm,1,llm, &
162         zvertiid,'inst(X)',t_ops,t_wrt)           zvertiid,'inst(X)',t_ops,t_wrt)
163    
   CALL histdef(fileid,'frac_nucl',' ',' ',iim,jjm+1,nhoriid,llm,1,llm, &  
        zvertiid,'inst(X)',t_ops,t_wrt)  
164    
165        ! pyu1
166    
167    ! pyu1      CALL histdef(fileid,'pyu1',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &
168             'inst(X)',t_ops,t_wrt)
169    
   CALL histdef(fileid,'pyu1',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &  
        'inst(X)',t_ops,t_wrt)  
170    
171        ! pyv1
172    
173    ! pyv1      CALL histdef(fileid,'pyv1',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &
174             'inst(X)',t_ops,t_wrt)
175    
176    CALL histdef(fileid,'pyv1',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &      CALL histdef(fileid,'ftsol1',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &
177         'inst(X)',t_ops,t_wrt)           'inst(X)',t_ops,t_wrt)
178    
   CALL histdef(fileid,'ftsol1',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &  
        'inst(X)',t_ops,t_wrt)  
179    
180        ! ftsol2
181    
182    ! ftsol2      CALL histdef(fileid,'ftsol2',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &
183             'inst(X)',t_ops,t_wrt)
184    
   CALL histdef(fileid,'ftsol2',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &  
        'inst(X)',t_ops,t_wrt)  
185    
186        ! ftsol3
187    
188    ! ftsol3      CALL histdef(fileid,'ftsol3',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &
189             'inst(X)',t_ops,t_wrt)
190    
   CALL histdef(fileid,'ftsol3',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &  
        'inst(X)',t_ops,t_wrt)  
191    
192        ! ftsol4
193    
194    ! ftsol4      CALL histdef(fileid,'ftsol4',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &
195             'inst(X)',t_ops,t_wrt)
196    
   CALL histdef(fileid,'ftsol4',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &  
        'inst(X)',t_ops,t_wrt)  
197    
198        ! rain
199    
200    ! rain      CALL histdef(fileid,'rain',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &
201             'inst(X)',t_ops,t_wrt)
202    
   CALL histdef(fileid,'rain',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &  
        'inst(X)',t_ops,t_wrt)  
203    
204        ! psrf1
205    
206    ! psrf1      CALL histdef(fileid,'psrf1',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &
207             'inst(X)',t_ops,t_wrt)
208    
   CALL histdef(fileid,'psrf1',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &  
        'inst(X)',t_ops,t_wrt)  
209    
210        ! psrf2
211    
212    ! psrf2      CALL histdef(fileid,'psrf2',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &
213             'inst(X)',t_ops,t_wrt)
214    
   CALL histdef(fileid,'psrf2',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &  
        'inst(X)',t_ops,t_wrt)  
215    
216        ! psrf3
217    
218    ! psrf3      CALL histdef(fileid,'psrf3',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &
219             'inst(X)',t_ops,t_wrt)
220    
   CALL histdef(fileid,'psrf3',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &  
        'inst(X)',t_ops,t_wrt)  
221    
222        ! psrf4
223    
224    ! psrf4      CALL histdef(fileid,'psrf4',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &
225             'inst(X)',t_ops,t_wrt)
226    
227    CALL histdef(fileid,'psrf4',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &      CALL histend(fileid)
228         'inst(X)',t_ops,t_wrt)      IF (ok_sync) CALL histsync
229    
230    CALL histend(fileid)    END SUBROUTINE initphysto
   IF (ok_sync) CALL histsync  
231    
232  END SUBROUTINE initphysto  end module initphysto_m

Legend:
Removed from v.134  
changed lines
  Added in v.178

  ViewVC Help
Powered by ViewVC 1.1.21