/[lmdze]/trunk/Sources/dyn3d/Guide/guide.f
ViewVC logotype

Diff of /trunk/Sources/dyn3d/Guide/guide.f

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

revision 109 by guez, Wed Sep 17 10:08:00 2014 UTC revision 112 by guez, Thu Sep 18 13:36:51 2014 UTC
# Line 61  CONTAINS Line 61  CONTAINS
61      REAL, save:: masserea2(ip1jmp1, llm) ! masse      REAL, save:: masserea2(ip1jmp1, llm) ! masse
62    
63      ! alpha determine la part des injections de donnees a chaque etape      ! alpha determine la part des injections de donnees a chaque etape
64      ! alpha=1 signifie pas d'injection      ! alpha=0 signifie pas d'injection
65      ! alpha=0 signifie injection totale      ! alpha=1 signifie injection totale
66      REAL, save:: alpha_q(iim + 1, jjm + 1)      REAL, save:: alpha_q(iim + 1, jjm + 1)
67      REAL, save:: alpha_t(iim + 1, jjm + 1)      REAL, save:: alpha_t(iim + 1, jjm + 1)
68      REAL, save:: alpha_u(iim + 1, jjm + 1), alpha_v(iim + 1, jjm)      REAL, save:: alpha_u(iim + 1, jjm + 1), alpha_v(iim + 1, jjm)
# Line 104  CONTAINS Line 104  CONTAINS
104    
105            factt = dtvr * iperiod / daysec            factt = dtvr * iperiod / daysec
106    
107            CALL tau2alpha(3, factt, tau_min_v, tau_max_v, alpha_v)            if (guide_u) CALL tau2alpha(3, factt, tau_min_v, tau_max_v, alpha_v)
108            CALL tau2alpha(2, factt, tau_min_u, tau_max_u, alpha_u)            if (guide_v) CALL tau2alpha(2, factt, tau_min_u, tau_max_u, alpha_u)
109            CALL tau2alpha(1, factt, tau_min_t, tau_max_t, alpha_t)            if (guide_t) CALL tau2alpha(1, factt, tau_min_t, tau_max_t, alpha_t)
110            CALL tau2alpha(1, factt, tau_min_q, tau_max_q, alpha_q)            if (guide_q) CALL tau2alpha(1, factt, tau_min_q, tau_max_q, alpha_q)
111         ELSE         ELSE
112            ! Cas où on force exactement par les variables analysées            ! Cas où on force exactement par les variables analysées
113            alpha_t = 0.            if (guide_u) alpha_t = 1.
114            alpha_u = 0.            if (guide_v) alpha_u = 1.
115            alpha_v = 0.            if (guide_t) alpha_v = 1.
116            alpha_q = 0.            if (guide_q) alpha_q = 1.
117         END IF         END IF
118    
119         step_rea = 1         step_rea = 1
120         count_no_rea = 0         count_no_rea = 0
        ncid = -99  
121    
122         ! lecture d'un fichier netcdf pour determiner le nombre de niveaux         ! lecture d'un fichier netcdf pour determiner le nombre de niveaux
123         if (guide_u) call nf95_open('u.nc',Nf90_NOWRITe,ncid)         if (guide_u) then
124         if (guide_v) call nf95_open('v.nc',nf90_nowrite,ncid)            call nf95_open('u.nc',Nf90_NOWRITe,ncid)
125         if (guide_T) call nf95_open('T.nc',nf90_nowrite,ncid)         else if (guide_v) then
126         if (guide_Q) call nf95_open('hur.nc',nf90_nowrite, ncid)            call nf95_open('v.nc',nf90_nowrite,ncid)
127           else if (guide_T) then
128              call nf95_open('T.nc',nf90_nowrite,ncid)
129           else
130              call nf95_open('hur.nc',nf90_nowrite, ncid)
131           end if
132    
133         IF (ncep) THEN         IF (ncep) THEN
134            call nf95_inq_dimid(ncid, 'LEVEL', dimid)            call nf95_inq_dimid(ncid, 'LEVEL', dimid)
# Line 139  CONTAINS Line 143  CONTAINS
143              masserea2, nlev)              masserea2, nlev)
144         qrea2 = max(qrea2, 0.1)         qrea2 = max(qrea2, 0.1)
145    
146         CALL writefield("alpha_u", alpha_u)         if (guide_u) CALL writefield("alpha_u", alpha_u)
147         CALL writefield("alpha_t", alpha_t)         if (guide_t) CALL writefield("alpha_t", alpha_t)
148      END IF first_call      END IF first_call
149    
150      ! IMPORTATION DES VENTS, PRESSION ET TEMPERATURE REELS:      ! IMPORTATION DES VENTS, PRESSION ET TEMPERATURE REELS:
# Line 159  CONTAINS Line 163  CONTAINS
163              masserea2, nlev)              masserea2, nlev)
164         qrea2 = max(qrea2, 0.1)         qrea2 = max(qrea2, 0.1)
165         factt = dtvr * iperiod / daysec         factt = dtvr * iperiod / daysec
166         CALL writefield("ucov", ucov)  
167         CALL writefield("ucovrea2", ucovrea2)         if (guide_u) then
168         CALL writefield("teta", teta)            CALL writefield("ucov", ucov)
169         CALL writefield("tetarea2", tetarea2)            CALL writefield("ucovrea2", ucovrea2)
170         CALL writefield("qrea2", qrea2)         end if
171         CALL writefield("q", q)  
172           if (guide_t) then
173              CALL writefield("teta", teta)
174              CALL writefield("tetarea2", tetarea2)
175           end if
176    
177           if (guide_q) then
178              CALL writefield("qrea2", qrea2)
179              CALL writefield("q", q)
180           end if
181      ELSE      ELSE
182         count_no_rea = count_no_rea + 1         count_no_rea = count_no_rea + 1
183      END IF      END IF

Legend:
Removed from v.109  
changed lines
  Added in v.112

  ViewVC Help
Powered by ViewVC 1.1.21