/[lmdze]/trunk/bibio/initfluxsto.f
ViewVC logotype

Diff of /trunk/bibio/initfluxsto.f

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

trunk/libf/bibio/initfluxsto.f revision 27 by guez, Thu Mar 25 14:29:07 2010 UTC trunk/libf/bibio/initfluxsto.f90 revision 67 by guez, Tue Oct 2 15:50:56 2012 UTC
# Line 1  Line 1 
1  !  SUBROUTINE initfluxsto(tstep, t_ops, t_wrt, nq, fileid, filevid, filedid)
2  ! $Header: /home/cvsroot/LMDZ4/libf/bibio/initfluxsto.F,v 1.1.1.1 2004/05/19 12:53:05 lmdzadmin Exp $  
3  !    ! From bibio/initfluxsto.F, v 1.1.1.1 2004/05/19 12:53:05
4        subroutine initfluxsto  
5       .  (tstep,t_ops,t_wrt,nq,    !   Routine d'initialisation des ecritures des fichiers histoires LMDZ  
6       .                    fileid,filevid,filedid)    !   au format IOIPSL                                                    
7      !   Appels succesifs des routines: histbeg                              
8         USE IOIPSL    !                                  histhori                            
9      !                                  histver                              
10  C    !                                  histdef                              
11  C   Routine d'initialisation des ecritures des fichiers histoires LMDZ    !                                  histend                              
12  C   au format IOIPSL  
13  C    !   Entree:                                                            
14  C   Appels succesifs des routines: histbeg    !      day0, anne0: date de reference                                    
15  C                                  histhori    !      tstep: duree du pas de temps en seconde                          
16  C                                  histver    !      t_ops: frequence de l'operation pour IOIPSL                      
17  C                                  histdef    !      t_wrt: frequence d'ecriture sur le fichier                      
18  C                                  histend    !      nq: nombre de traceurs                                          
19  C  
20  C   Entree:    !   Sortie:                                                            
21  C    !      fileid: ID du fichier netcdf cree                                
22  C      day0,anne0: date de reference    !      filevid:ID du fichier netcdf pour la grille v                    
23  C      tstep: duree du pas de temps en seconde  
24  C      t_ops: frequence de l'operation pour IOIPSL    !   L. Fairhead, 03/99                                            
25  C      t_wrt: frequence d'ecriture sur le fichier  
26  C      nq: nombre de traceurs    USE calendar
27  C    USE histbeg_totreg_m, ONLY : histbeg_totreg
28  C   Sortie:    USE histdef_m, ONLY : histdef
29  C      fileid: ID du fichier netcdf cree    USE histend_m, ONLY : histend
30  C      filevid:ID du fichier netcdf pour la grille v    use histhori_regular_m, only: histhori_regular
31  C    use histsync_m, only: histsync
32  C   L. Fairhead, LMD, 03/99    USE histvert_m, ONLY : histvert
33  C    USE dimens_m
34  C =====================================================================    USE paramet_m
35  C    USE comconst
36  C   Declarations    USE disvert_m
37         use dimens_m    use conf_gcm_m
38        use paramet_m    USE comgeom
39        use comconst    USE serre
40        use comvert    USE temps, ONLY : annee_ref, day_ref, itau_dyn
41        use logic    USE ener
42        use comgeom    USE nr_util, ONLY : pi
43        use serre  
44        use temps, only: annee_ref, day_ref, itau_dyn    IMPLICIT NONE
45        use ener  
46        implicit none    !   Arguments                                                          
47      INTEGER itau
48  C   Arguments    REAL, INTENT (IN) :: tstep
49  C    REAL t_ops, t_wrt
50        integer*4 itau    INTEGER fileid, filevid, filedid
51        real tstep, t_ops, t_wrt    INTEGER nq, ndex(1)
52        integer fileid, filevid,filedid    REAL nivd(1)
53        integer nq,ndex(1)  
54        real nivd(1)    !   Variables locales                                                  
55      REAL zjulian
56  C   Variables locales    CHARACTER*3 str
57        real zjulian    CHARACTER*10 ctrac
58        character*3 str    INTEGER iq
59        character*10 ctrac    REAL rlong(iip1, jjp1), rlat(iip1, jjp1)
60        integer iq    INTEGER uhoriid, vhoriid, thoriid, zvertiid, dhoriid, dvertiid
61        real rlong(iip1,jjp1), rlat(iip1,jjp1)    INTEGER ii, jj
62        integer uhoriid, vhoriid, thoriid, zvertiid,dhoriid,dvertiid    INTEGER zan, idayref
63        integer ii,jj    LOGICAL ok_sync
64        integer zan, idayref  
65        logical ok_sync    !---------------------------------------------------------
66  C  
67  C  Initialisations    !  Initialisations                                                      
68  C    str = 'q  '
69        pi = 4. * atan (1.)    ctrac = 'traceur   '
70        str='q  '    ok_sync = .TRUE.
71        ctrac = 'traceur   '  
72        ok_sync = .true.    !  Appel a histbeg: creation du fichier netcdf et initialisations diverses
73  C  
74  C  Appel a histbeg: creation du fichier netcdf et initialisations diverses    zan = annee_ref
75  C            idayref = day_ref
76      CALL ymds2ju(zan, 1, idayref, 0.0, zjulian)
77        zan = annee_ref  
78        idayref = day_ref    DO jj = 1, jjp1
79        CALL ymds2ju(zan, 1, idayref, 0.0, zjulian)       DO ii = 1, iip1
80                    rlong(ii, jj) = rlonu(ii)*180./pi
81          do jj = 1, jjp1          rlat(ii, jj) = rlatu(jj)*180./pi
82          do ii = 1, iip1       END DO
83            rlong(ii,jj) = rlonu(ii) * 180. / pi    END DO
84            rlat(ii,jj) = rlatu(jj) * 180. / pi  
85          enddo    CALL histbeg_totreg('fluxstoke', rlong(:, 1), rlat(1, :), 1, iip1, 1, jjp1, &
86        enddo         itau_dyn, zjulian, tstep, uhoriid, fileid)
87    
88        call histbeg_totreg('fluxstoke', rlong(:,1), rlat(1,:),    !  Creation du fichier histoire pour la grille en V (oblige pour l'instant,
89       .             1, iip1, 1, jjp1,    !  IOIPSL ne permet pas de grilles avec des nombres de point differents dans
90       .             itau_dyn, zjulian, tstep, uhoriid, fileid)    !  un meme fichier)                                                    
91  C  
92  C  Creation du fichier histoire pour la grille en V (oblige pour l'instant,    DO jj = 1, jjm
93  C  IOIPSL ne permet pas de grilles avec des nombres de point differents dans       DO ii = 1, iip1
94  C  un meme fichier)          rlong(ii, jj) = rlonv(ii)*180./pi
95            rlat(ii, jj) = rlatv(jj)*180./pi
96         END DO
97        do jj = 1, jjm    END DO
98          do ii = 1, iip1  
99            rlong(ii,jj) = rlonv(ii) * 180. / pi    CALL histbeg_totreg('fluxstokev.nc', rlong(:, 1), rlat(1, :jjm), 1, iip1, &
100            rlat(ii,jj) = rlatv(jj) * 180. / pi         1, jjm, itau_dyn, zjulian, tstep, vhoriid, filevid)
101          enddo  
102        enddo    CALL histbeg_totreg('defstoke.nc', (/1./), (/1./), 1, 1, 1, 1, itau_dyn, &
103           zjulian, tstep, dhoriid, filedid)
104        call histbeg_totreg('fluxstokev.nc', rlong(:,1),  
105       .             rlat(1,:jjm),1, iip1, 1, jjm,    !  Appel a histhori pour rajouter les autres grilles horizontales      
106       .             itau_dyn, zjulian, tstep, vhoriid, filevid)  
107              DO jj = 1, jjp1
108        call histbeg_totreg('defstoke.nc', (/1./), (/1./),       DO ii = 1, iip1
109       .             1, 1, 1, 1,          rlong(ii, jj) = rlonv(ii)*180./pi
110       .             itau_dyn, zjulian, tstep, dhoriid, filedid)          rlat(ii, jj) = rlatu(jj)*180./pi
111         END DO
112  C    END DO
113  C  Appel a histhori pour rajouter les autres grilles horizontales  
114  C    CALL histhori_regular(fileid, iip1, rlong, jjp1, rlat, 'scalar', &
115        do jj = 1, jjp1         'Grille points scalaires', thoriid)
116          do ii = 1, iip1  
117            rlong(ii,jj) = rlonv(ii) * 180. / pi    !  Appel a histvert pour la grille verticale                            
118            rlat(ii,jj) = rlatu(jj) * 180. / pi  
119          enddo    CALL histvert(fileid, 'sig_s', 'Niveaux sigma', 'sigma_level', nivsigs, &
120        enddo         zvertiid)
121      ! Pour le fichier V                                                    
122        call histhori_regular(fileid, iip1, rlong, jjp1, rlat, 'scalar',    CALL histvert(filevid, 'sig_s', 'Niveaux sigma', 'sigma_level', nivsigs, &
123       .              'Grille points scalaires', thoriid)         zvertiid)
124              ! pour le fichier def                                                  
125  C    nivd(1) = 1
126  C  Appel a histvert pour la grille verticale    CALL histvert(filedid, 'sig_s', 'Niveaux sigma', 'sigma_level', nivd, &
127  C         dvertiid)
128        call histvert(fileid, 'sig_s', 'Niveaux sigma',  
129       . 'sigma_level',    !  Appels a histdef pour la definition des variables a sauvegarder      
130       .              llm, nivsigs, zvertiid)    CALL histdef(fileid, 'phis', 'Surface geop. height', '-', iip1, jjp1, &
131  C Pour le fichier V         thoriid, 1, 1, 1, -99, 'once', t_ops, t_wrt)
132        call histvert(filevid, 'sig_s', 'Niveaux sigma',    CALL histdef(fileid, 'aire', 'Grid area', '-', iip1, jjp1, thoriid, 1, 1, &
133       .  'sigma_level',         1, -99, 'once', t_ops, t_wrt)
134       .              llm, nivsigs, zvertiid)    CALL histdef(filedid, 'dtvr', 'tps dyn', 's', 1, 1, dhoriid, 1, 1, 1, -99, &
135  c pour le fichier def         'once', t_ops, t_wrt)
136        nivd(1) = 1    CALL histdef(filedid, 'istdyn', 'tps stock', 's', 1, 1, dhoriid, 1, 1, 1, &
137        call histvert(filedid, 'sig_s', 'Niveaux sigma',         -99, 'once', t_ops, t_wrt)
138       .  'sigma_level',    CALL histdef(filedid, 'istphy', 'tps stock phy', 's', 1, 1, dhoriid, 1, 1, &
139       .              1, nivd, dvertiid)         1, -99, 'once', t_ops, t_wrt)
140      CALL histdef(fileid, 'masse', 'Masse', 'kg', iip1, jjp1, thoriid, llm, 1, &
141  C         llm, zvertiid, 'inst(X)', t_ops, t_wrt)
142  C  Appels a histdef pour la definition des variables a sauvegarder    CALL histdef(fileid, 'pbaru', 'flx de masse zonal', 'kg m/s', iip1, jjp1, &
143                   uhoriid, llm, 1, llm, zvertiid, 'inst(X)', t_ops, t_wrt)
144          CALL histdef(fileid, "phis", "Surface geop. height", "-",    CALL histdef(filevid, 'pbarv', 'flx de masse mer', 'kg m/s', iip1, jjm, &
145       .                iip1,jjp1,thoriid, 1,1,1, -99,         vhoriid, llm, 1, llm, zvertiid, 'inst(X)', t_ops, t_wrt)
146       .                "once", t_ops, t_wrt)    CALL histdef(fileid, 'w', 'flx de masse vert', 'kg m/s', iip1, jjp1, &
147           thoriid, llm, 1, llm, zvertiid, 'inst(X)', t_ops, t_wrt)
148           CALL histdef(fileid, "aire", "Grid area", "-",    CALL histdef(fileid, 'teta', 'temperature potentielle', '-', iip1, jjp1, &
149       .                iip1,jjp1,thoriid, 1,1,1, -99,         thoriid, llm, 1, llm, zvertiid, 'inst(X)', t_ops, t_wrt)
150       .                "once", t_ops, t_wrt)    CALL histdef(fileid, 'phi', 'geopotentiel instantane', '-', iip1, jjp1, &
151                   thoriid, llm, 1, llm, zvertiid, 'inst(X)', t_ops, t_wrt)
152          CALL histdef(filedid, "dtvr", "tps dyn", "s",  
153       .                1,1,dhoriid, 1,1,1, -99,    CALL histend(fileid)
154       .                "once", t_ops, t_wrt)    CALL histend(filevid)
155              CALL histend(filedid)
156           CALL histdef(filedid, "istdyn", "tps stock", "s",    IF (ok_sync) THEN
157       .                1,1,dhoriid, 1,1,1, -99,       CALL histsync(fileid)
158       .                "once", t_ops, t_wrt)       CALL histsync(filevid)
159                 CALL histsync(filedid)
160           CALL histdef(filedid, "istphy", "tps stock phy", "s",    END IF
161       .                1,1,dhoriid, 1,1,1, -99,  
162       .                "once", t_ops, t_wrt)  END SUBROUTINE initfluxsto
   
   
 C  
 C Masse  
 C  
       call histdef(fileid, 'masse', 'Masse', 'kg',  
      .             iip1, jjp1, thoriid, llm, 1, llm, zvertiid,  
      .             'inst(X)', t_ops, t_wrt)  
 C  
 C  Pbaru  
 C  
       call histdef(fileid, 'pbaru', 'flx de masse zonal', 'kg m/s',  
      .             iip1, jjp1, uhoriid, llm, 1, llm, zvertiid,  
      .             'inst(X)', t_ops, t_wrt)  
   
 C  
 C  Pbarv  
 C  
       call histdef(filevid, 'pbarv', 'flx de masse mer', 'kg m/s',  
      .             iip1, jjm, vhoriid, llm, 1, llm, zvertiid,  
      .             'inst(X)', t_ops, t_wrt)  
 C  
 C  w  
 C  
       call histdef(fileid, 'w', 'flx de masse vert', 'kg m/s',  
      .             iip1, jjp1, thoriid, llm, 1, llm, zvertiid,  
      .             'inst(X)', t_ops, t_wrt)  
   
 C  
 C  Temperature potentielle  
 C  
       call histdef(fileid, 'teta', 'temperature potentielle', '-',  
      .             iip1, jjp1, thoriid, llm, 1, llm, zvertiid,  
      .             'inst(X)', t_ops, t_wrt)  
 C  
   
 C  
 C Geopotentiel  
 C  
       call histdef(fileid, 'phi', 'geopotentiel instantane', '-',  
      .             iip1, jjp1, thoriid, llm, 1, llm, zvertiid,  
      .             'inst(X)', t_ops, t_wrt)  
 C  
 C  Fin  
 C  
       call histend(fileid)  
       call histend(filevid)  
       call histend(filedid)  
       if (ok_sync) then  
         call histsync(fileid)  
         call histsync(filevid)  
         call histsync(filedid)  
       endif  
           
       return  
       end  

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

  ViewVC Help
Powered by ViewVC 1.1.21