/[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

trunk/libf/phylmd/initphysto.f90 revision 67 by guez, Tue Oct 2 15:50:56 2012 UTC trunk/Sources/phylmd/initphysto.f revision 189 by guez, Tue Mar 29 15:20:23 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 calendar  
   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 temps  
   USE ener  
   USE nr_util, ONLY : pi  
2    
3    IMPLICIT NONE    IMPLICIT NONE
4    
5    !   Arguments  contains
6    CHARACTER*(*) 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 gr_phy_write_m, only: gr_phy_write
35        USE histbeg_totreg_m, ONLY : histbeg_totreg
36        USE histdef_m, ONLY : histdef
37        USE histend_m, ONLY : histend
38        use histsync_m, only: histsync
39        USE histvert_m, ONLY : histvert
40        USE dimens_m
41        USE paramet_m
42        USE comconst
43        USE indicesol
44        USE dimphy
45        use conf_gcm_m
46        USE comgeom
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        INTEGER zvertiid
63        LOGICAL ok_sync
64        REAL zx_lon(iim,jjm+1), zx_lat(iim,jjm+1)
65    
66    INTEGER tau0      REAL, INTENT (IN) :: rlon(klon), rlat(klon)
   REAL zjulian  
   CHARACTER*3 str  
   CHARACTER*10 ctrac  
   INTEGER iq  
   INTEGER uhoriid, vhoriid, thoriid, zvertiid  
   INTEGER ii, jj  
   INTEGER zan, idayref  
   LOGICAL ok_sync  
   REAL zx_lon(iim,jjm+1), zx_lat(iim,jjm+1)  
67    
68    REAL, INTENT (IN) :: rlon(klon), rlat(klon)      !-----------------------------------------------------
69    
70    !-----------------------------------------------------      !  Initialisations
71        ok_sync = .TRUE.
72    
73    !  Initialisations      !  Appel a histbeg: creation du fichier netcdf et initialisations
74    str = 'q  '      !     diverses
   ctrac = 'traceur   '  
   ok_sync = .TRUE.  
75    
76    !  Appel a histbeg: creation du fichier netcdf et initialisations      CALL ymds2ju(annee_ref,1,day_ref,0.0,zjulian)
77    !     diverses      tau0 = 0
78    
79    zan = annee_ref      zx_lon = gr_phy_write(rlon)
80    idayref = day_ref      DO i = 1, iim
81    CALL ymds2ju(zan,1,idayref,0.0,zjulian)         zx_lon(i,1) = rlon(i+1)
82    tau0 = 0         zx_lon(i,jjm+1) = rlon(i+1)
83        END DO
84        zx_lat = gr_phy_write(rlat)
85    
   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)  
86    
87        CALL histbeg_totreg(infile,zx_lon(:,1),zx_lat(1,:),1,iim,1,jjm+1,tau0, &
88             zjulian,tstep,nhoriid,fileid)
89    
90    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)  
91    
92    !  Appel a histvert pour la grille verticale      DO l = 1, llm
93           nivsigs(l) = float(l)
94        END DO
95    
96    DO l = 1, llm      CALL histvert(fileid,'sig_s','Niveaux sigma','sigma_level',nivsigs, &
97       nivsigs(l) = float(l)           zvertiid)
   END DO  
98    
99    CALL histvert(fileid,'sig_s','Niveaux sigma','sigma_level',nivsigs, &      !  Appels a histdef pour la definition des variables a sauvegarder
        zvertiid)  
100    
101    !  Appels a histdef pour la definition des variables a sauvegarder      CALL histdef(fileid,'phis','Surface geop. height','-',iim,jjm+1,nhoriid, &
102             1,1,1,-99,'once',t_ops,t_wrt)
103    
104    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, &
105         1,1,1,-99,'once',t_ops,t_wrt)           'once',t_ops,t_wrt)
106    
107    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, &
108         'once',t_ops,t_wrt)           'once',t_ops,t_wrt)
109    
110    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, &
111         'once',t_ops,t_wrt)           'once',t_ops,t_wrt)
112    
113    CALL histdef(fileid,'istphy','tps stock','s',1,1,nhoriid,1,1,1,-99, &      ! T
        'once',t_ops,t_wrt)  
114    
115    ! T      CALL histdef(fileid,'t','Temperature','K',iim,jjm+1,nhoriid,llm,1,llm, &
116             zvertiid,'inst(X)',t_ops,t_wrt)
117    
118    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, &
119         zvertiid,'inst(X)',t_ops,t_wrt)           llm,1,llm,zvertiid,'inst(X)',t_ops,t_wrt)
120    
121    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, &
122         llm,1,llm,zvertiid,'inst(X)',t_ops,t_wrt)           llm,1,llm,zvertiid,'inst(X)',t_ops,t_wrt)
123    
   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)  
124    
125        ! en_u
126    
127    ! en_u      CALL histdef(fileid,'en_u','flx ent pan mt','kg m/s',iim,jjm+1,nhoriid, &
128             llm,1,llm,zvertiid,'inst(X)',t_ops,t_wrt)
129    
130    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, &
131         llm,1,llm,zvertiid,'inst(X)',t_ops,t_wrt)           llm,1,llm,zvertiid,'inst(X)',t_ops,t_wrt)
132    
   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)  
133    
134        ! en_d
135    
136    ! en_d      CALL histdef(fileid,'en_d','flx ent pan dt','kg m/s',iim,jjm+1,nhoriid, &
137             llm,1,llm,zvertiid,'inst(X)',t_ops,t_wrt)
138    
   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)  
139    
140    
141        ! de_d
142    
143    ! de_d      CALL histdef(fileid,'de_d','flx det pan dt','kg m/s',iim,jjm+1,nhoriid, &
144             llm,1,llm,zvertiid,'inst(X)',t_ops,t_wrt)
145    
146    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)  
147    
148    ! coefh frac_impa,frac_nucl      CALL histdef(fileid,'coefh',' ',' ',iim,jjm+1,nhoriid,llm,1,llm, &
149             zvertiid,'inst(X)',t_ops,t_wrt)
150    
151    CALL histdef(fileid,'coefh',' ',' ',iim,jjm+1,nhoriid,llm,1,llm, &      ! abderrahmane le 16 09 02
152         zvertiid,'inst(X)',t_ops,t_wrt)      CALL histdef(fileid,'fm_th',' ',' ',iim,jjm+1,nhoriid,llm,1,llm, &
153             zvertiid,'inst(X)',t_ops,t_wrt)
154    
155    ! abderrahmane le 16 09 02      CALL histdef(fileid,'en_th',' ',' ',iim,jjm+1,nhoriid,llm,1,llm, &
156    CALL histdef(fileid,'fm_th',' ',' ',iim,jjm+1,nhoriid,llm,1,llm, &           zvertiid,'inst(X)',t_ops,t_wrt)
157         zvertiid,'inst(X)',t_ops,t_wrt)      ! fin aj
158    
159    CALL histdef(fileid,'en_th',' ',' ',iim,jjm+1,nhoriid,llm,1,llm, &      CALL histdef(fileid,'frac_impa',' ',' ',iim,jjm+1,nhoriid,llm,1,llm, &
160         zvertiid,'inst(X)',t_ops,t_wrt)           zvertiid,'inst(X)',t_ops,t_wrt)
   ! fin aj  
161    
162    CALL histdef(fileid,'frac_impa',' ',' ',iim,jjm+1,nhoriid,llm,1,llm, &      CALL histdef(fileid,'frac_nucl',' ',' ',iim,jjm+1,nhoriid,llm,1,llm, &
163         zvertiid,'inst(X)',t_ops,t_wrt)           zvertiid,'inst(X)',t_ops,t_wrt)
164    
   CALL histdef(fileid,'frac_nucl',' ',' ',iim,jjm+1,nhoriid,llm,1,llm, &  
        zvertiid,'inst(X)',t_ops,t_wrt)  
165    
166        ! pyu1
167    
168    ! pyu1      CALL histdef(fileid,'pyu1',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &
169             'inst(X)',t_ops,t_wrt)
170    
   CALL histdef(fileid,'pyu1',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &  
        'inst(X)',t_ops,t_wrt)  
171    
172        ! pyv1
173    
174    ! pyv1      CALL histdef(fileid,'pyv1',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &
175             'inst(X)',t_ops,t_wrt)
176    
177    CALL histdef(fileid,'pyv1',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &      CALL histdef(fileid,'ftsol1',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &
178         'inst(X)',t_ops,t_wrt)           'inst(X)',t_ops,t_wrt)
179    
   CALL histdef(fileid,'ftsol1',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &  
        'inst(X)',t_ops,t_wrt)  
180    
181        ! ftsol2
182    
183    ! ftsol2      CALL histdef(fileid,'ftsol2',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &
184             'inst(X)',t_ops,t_wrt)
185    
   CALL histdef(fileid,'ftsol2',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &  
        'inst(X)',t_ops,t_wrt)  
186    
187        ! ftsol3
188    
189    ! ftsol3      CALL histdef(fileid,'ftsol3',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &
190             'inst(X)',t_ops,t_wrt)
191    
   CALL histdef(fileid,'ftsol3',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &  
        'inst(X)',t_ops,t_wrt)  
192    
193        ! ftsol4
194    
195    ! ftsol4      CALL histdef(fileid,'ftsol4',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &
196             'inst(X)',t_ops,t_wrt)
197    
   CALL histdef(fileid,'ftsol4',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &  
        'inst(X)',t_ops,t_wrt)  
198    
199        ! rain
200    
201    ! rain      CALL histdef(fileid,'rain',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &
202             'inst(X)',t_ops,t_wrt)
203    
   CALL histdef(fileid,'rain',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &  
        'inst(X)',t_ops,t_wrt)  
204    
205        ! psrf1
206    
207    ! psrf1      CALL histdef(fileid,'psrf1',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &
208             'inst(X)',t_ops,t_wrt)
209    
   CALL histdef(fileid,'psrf1',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &  
        'inst(X)',t_ops,t_wrt)  
210    
211        ! psrf2
212    
213    ! psrf2      CALL histdef(fileid,'psrf2',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &
214             'inst(X)',t_ops,t_wrt)
215    
   CALL histdef(fileid,'psrf2',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &  
        'inst(X)',t_ops,t_wrt)  
216    
217        ! psrf3
218    
219    ! psrf3      CALL histdef(fileid,'psrf3',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &
220             'inst(X)',t_ops,t_wrt)
221    
   CALL histdef(fileid,'psrf3',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &  
        'inst(X)',t_ops,t_wrt)  
222    
223        ! psrf4
224    
225    ! psrf4      CALL histdef(fileid,'psrf4',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &
226             'inst(X)',t_ops,t_wrt)
227    
228    CALL histdef(fileid,'psrf4',' ',' ',iim,jjm+1,nhoriid,1,1,1,-99, &      CALL histend(fileid)
229         'inst(X)',t_ops,t_wrt)      IF (ok_sync) CALL histsync
230    
231    CALL histend(fileid)    END SUBROUTINE initphysto
   IF (ok_sync) CALL histsync  
232    
233  END SUBROUTINE initphysto  end module initphysto_m

Legend:
Removed from v.67  
changed lines
  Added in v.189

  ViewVC Help
Powered by ViewVC 1.1.21