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

Legend:
Removed from v.92  
changed lines
  Added in v.190

  ViewVC Help
Powered by ViewVC 1.1.21