/[lmdze]/trunk/Sources/phylmd/phystokenc.f
ViewVC logotype

Diff of /trunk/Sources/phylmd/phystokenc.f

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

revision 32 by guez, Tue Apr 6 17:52:58 2010 UTC revision 72 by guez, Tue Jul 23 13:00:07 2013 UTC
# Line 10  contains Line 10  contains
10    
11      ! From phylmd/phystokenc.F, version 1.2 2004/06/22 11:45:35      ! From phylmd/phystokenc.F, version 1.2 2004/06/22 11:45:35
12      ! Author: Frédéric Hourdin      ! Author: Frédéric Hourdin
13      ! Objet: moniteur général des tendances traceurs                              ! Objet : moniteur général des tendances traceurs                        
14    
15      USE histwrite_m, ONLY : histwrite      USE histwrite_m, ONLY : histwrite
16      USE histcom, ONLY : histsync      USE histsync_m, ONLY : histsync
17      USE dimens_m, ONLY : iim, jjm, nqmx      USE dimens_m, ONLY : iim, jjm, nqmx
18      USE indicesol, ONLY : nbsrf      USE indicesol, ONLY : nbsrf
19      USE dimphy, ONLY : klev, klon      USE dimphy, ONLY : klev, klon
# Line 25  contains Line 25  contains
25    
26      !   divers:                                                                  !   divers:                                                            
27    
28      REAL, INTENT (IN) :: pdtphys ! pas d'integration pour la physique (seconde)      REAL, INTENT (IN):: pdtphys ! pas d'integration pour la physique (seconde)
29      INTEGER, INTENT (IN) :: itap      INTEGER, INTENT (IN):: itap
30    
31      !   convection:                                                              !   convection:                                                        
32    
33      REAL pmfu(klon, klev) ! flux de masse dans le panache montant      REAL, INTENT (IN):: pmfu(klon, klev) ! flux de masse dans le panache montant
34      REAL pmfd(klon, klev) ! flux de masse dans le panache descendant  
35        REAL, intent(in):: pmfd(klon, klev)
36        ! flux de masse dans le panache descendant
37    
38      REAL pen_u(klon, klev) ! flux entraine dans le panache montant      REAL pen_u(klon, klev) ! flux entraine dans le panache montant
39      REAL pde_u(klon, klev) ! flux detraine dans le panache montant      REAL pde_u(klon, klev) ! flux detraine dans le panache montant
40      REAL pen_d(klon, klev) ! flux entraine dans le panache descendant      REAL pen_d(klon, klev) ! flux entraine dans le panache descendant
41      REAL pde_d(klon, klev) ! flux detraine dans le panache descendant      REAL pde_d(klon, klev) ! flux detraine dans le panache descendant
42      REAL pt(klon, klev)      REAL, intent(in):: pt(klon, klev)
43    
44      REAL, INTENT (IN) :: rlon(klon), rlat(klon)      REAL, INTENT (IN) :: rlon(klon), rlat(klon)
45      REAL, INTENT (IN) :: dtime      REAL, INTENT (IN) :: dtime
# Line 48  contains Line 51  contains
51      !   Couche limite:                                                            !   Couche limite:                                                      
52    
53      REAL yv1(klon)      REAL yv1(klon)
54      REAL yu1(klon), pphis(klon), paire(klon)      REAL yu1(klon), paire(klon)
55        REAL, INTENT(IN):: pphis(klon)
56      REAL pcoefh(klon, klev) ! coeff melange Couche limite      REAL pcoefh(klon, klev) ! coeff melange Couche limite
57    
58      ! Arguments necessaires pour les sources et puits de traceur                  ! Arguments necessaires pour les sources et puits de traceur            
# Line 75  contains Line 79  contains
79    
80      INTEGER i, k      INTEGER i, k
81    
82      REAL mfu(klon, klev) ! flux de masse dans le panache montant      REAL, save:: mfu(klon, klev) ! flux de masse dans le panache montant
83      REAL mfd(klon, klev) ! flux de masse dans le panache descendant      REAL mfd(klon, klev) ! flux de masse dans le panache descendant
84      REAL en_u(klon, klev) ! flux entraine dans le panache montant      REAL en_u(klon, klev) ! flux entraine dans le panache montant
85      REAL de_u(klon, klev) ! flux detraine dans le panache montant      REAL de_u(klon, klev) ! flux detraine dans le panache montant
# Line 90  contains Line 94  contains
94    
95      REAL dtcum      REAL dtcum
96    
97      INTEGER iadvtr, irec      INTEGER:: iadvtr = 0, irec = 1
98      REAL zmin, zmax      REAL zmin, zmax
99      LOGICAL ok_sync      LOGICAL ok_sync
100    
101      SAVE t, mfu, mfd, en_u, de_u, en_d, de_d, coefh, dtcum      SAVE t, mfd, en_u, de_u, en_d, de_d, coefh, dtcum
102      SAVE fm_therm, entr_therm      SAVE fm_therm, entr_therm
     SAVE iadvtr, irec  
103      SAVE pyu1, pyv1, pftsol, ppsrf      SAVE pyu1, pyv1, pftsol, ppsrf
104    
     DATA iadvtr, irec/0, 1/  
   
105      !------------------------------------------------------      !------------------------------------------------------
106    
107      !   Couche limite:                                                            !   Couche limite:                                                      
# Line 122  contains Line 123  contains
123    
124      iadvtr = iadvtr + 1      iadvtr = iadvtr + 1
125    
126      IF (mod(iadvtr, istphy)==1 .OR. istphy==1) THEN      IF (mod(iadvtr, istphy) == 1 .OR. istphy == 1) THEN
127         PRINT *, 'reinitialisation des champs cumules a iadvtr=', iadvtr         PRINT *, 'reinitialisation des champs cumules a iadvtr =', iadvtr
128         DO k = 1, klev         DO k = 1, klev
129            DO i = 1, klon            DO i = 1, klon
130               mfu(i, k) = 0.               mfu(i, k) = 0.
# Line 180  contains Line 181  contains
181      dtcum = dtcum + pdtphys      dtcum = dtcum + pdtphys
182    
183      IF (mod(iadvtr, istphy)==0) THEN      IF (mod(iadvtr, istphy)==0) THEN
184         !   normalisation par le temps cumule                                           ! normalisation par le temps cumule                                  
185         DO k = 1, klev         DO k = 1, klev
186            DO i = 1, klon            DO i = 1, klon
187               mfu(i, k) = mfu(i, k)/dtcum               mfu(i, k) = mfu(i, k)/dtcum
# Line 213  contains Line 214  contains
214               ppsrf2(i) = ppsrf(i, 2)               ppsrf2(i) = ppsrf(i, 2)
215               ppsrf3(i) = ppsrf(i, 3)               ppsrf3(i) = ppsrf(i, 3)
216               ppsrf4(i) = ppsrf(i, 4)               ppsrf4(i) = ppsrf(i, 4)
   
217            END DO            END DO
218         END DO         END DO
219    
# Line 221  contains Line 221  contains
221    
222         irec = irec + 1         irec = irec + 1
223    
        !cccc                                                                    
224         CALL gr_fi_ecrit(klev, klon, iim, jjm+1, t, zx_tmp_3d)         CALL gr_fi_ecrit(klev, klon, iim, jjm+1, t, zx_tmp_3d)
225         CALL histwrite(physid, 't', itap, zx_tmp_3d)         CALL histwrite(physid, 't', itap, zx_tmp_3d)
226    
# Line 240  contains Line 239  contains
239         CALL gr_fi_ecrit(klev, klon, iim, jjm+1, coefh, zx_tmp_3d)         CALL gr_fi_ecrit(klev, klon, iim, jjm+1, coefh, zx_tmp_3d)
240         CALL histwrite(physid, 'coefh', itap, zx_tmp_3d)         CALL histwrite(physid, 'coefh', itap, zx_tmp_3d)
241    
        ! ajou...                                                                
242         DO k = 1, klev         DO k = 1, klev
243            DO i = 1, klon            DO i = 1, klon
244               fm_therm1(i, k) = fm_therm(i, k)               fm_therm1(i, k) = fm_therm(i, k)
# Line 284  contains Line 282  contains
282         CALL histwrite(physid, 'psrf4', itap, zx_tmp_2d)         CALL histwrite(physid, 'psrf4', itap, zx_tmp_2d)
283    
284         IF (ok_sync) CALL histsync(physid)         IF (ok_sync) CALL histsync(physid)
        !     if (ok_sync) call histsync                                          
   
285    
286         !AA Test sur la valeur des coefficients de lessivage                             !AA Test sur la valeur des coefficients de lessivage                    
287    
# Line 297  contains Line 293  contains
293               zmin = min(zmin, frac_nucl(i, k))               zmin = min(zmin, frac_nucl(i, k))
294            END DO            END DO
295         END DO         END DO
296         PRINT *, '------ coefs de lessivage (min et max) --------'         PRINT *, 'coefs de lessivage (min et max)'
297         PRINT *, 'facteur de nucleation ', zmin, zmax         PRINT *, 'facteur de nucleation ', zmin, zmax
298         zmin = 1E33         zmin = 1E33
299         zmax = -1E33         zmax = -1E33
# Line 308  contains Line 304  contains
304            END DO            END DO
305         END DO         END DO
306         PRINT *, 'facteur d impaction ', zmin, zmax         PRINT *, 'facteur d impaction ', zmin, zmax
   
307      END IF      END IF
308    
309    END SUBROUTINE phystokenc    END SUBROUTINE phystokenc

Legend:
Removed from v.32  
changed lines
  Added in v.72

  ViewVC Help
Powered by ViewVC 1.1.21