--- trunk/libf/phylmd/phystokenc.f90 2012/04/20 14:58:43 61 +++ trunk/phylmd/phystokenc.f90 2013/11/15 18:45:49 76 @@ -10,7 +10,7 @@ ! From phylmd/phystokenc.F, version 1.2 2004/06/22 11:45:35 ! Author: Frédéric Hourdin - ! Objet: moniteur général des tendances traceurs + ! Objet : moniteur général des tendances traceurs USE histwrite_m, ONLY : histwrite USE histsync_m, ONLY : histsync @@ -25,13 +25,16 @@ ! divers: - REAL, INTENT (IN) :: pdtphys ! pas d'integration pour la physique (seconde) - INTEGER, INTENT (IN) :: itap + REAL, INTENT (IN):: pdtphys ! pas d'integration pour la physique (seconde) + INTEGER, INTENT (IN):: itap ! convection: - REAL pmfu(klon, klev) ! flux de masse dans le panache montant - REAL pmfd(klon, klev) ! flux de masse dans le panache descendant + REAL, INTENT (IN):: pmfu(klon, klev) ! flux de masse dans le panache montant + + REAL, intent(in):: pmfd(klon, klev) + ! flux de masse dans le panache descendant + REAL pen_u(klon, klev) ! flux entraine dans le panache montant REAL pde_u(klon, klev) ! flux detraine dans le panache montant REAL pen_d(klon, klev) ! flux entraine dans le panache descendant @@ -76,7 +79,7 @@ INTEGER i, k - REAL mfu(klon, klev) ! flux de masse dans le panache montant + REAL, save:: mfu(klon, klev) ! flux de masse dans le panache montant REAL mfd(klon, klev) ! flux de masse dans le panache descendant REAL en_u(klon, klev) ! flux entraine dans le panache montant REAL de_u(klon, klev) ! flux detraine dans le panache montant @@ -91,17 +94,14 @@ REAL dtcum - INTEGER iadvtr, irec + INTEGER:: iadvtr = 0, irec = 1 REAL zmin, zmax LOGICAL ok_sync - 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 SAVE fm_therm, entr_therm - SAVE iadvtr, irec SAVE pyu1, pyv1, pftsol, ppsrf - DATA iadvtr, irec/0, 1/ - !------------------------------------------------------ ! Couche limite: @@ -123,8 +123,8 @@ iadvtr = iadvtr + 1 - IF (mod(iadvtr, istphy)==1 .OR. istphy==1) THEN - PRINT *, 'reinitialisation des champs cumules a iadvtr=', iadvtr + IF (mod(iadvtr, istphy) == 1 .OR. istphy == 1) THEN + PRINT *, 'reinitialisation des champs cumules a iadvtr =', iadvtr DO k = 1, klev DO i = 1, klon mfu(i, k) = 0. @@ -181,7 +181,7 @@ dtcum = dtcum + pdtphys IF (mod(iadvtr, istphy)==0) THEN - ! normalisation par le temps cumule + ! normalisation par le temps cumule DO k = 1, klev DO i = 1, klon mfu(i, k) = mfu(i, k)/dtcum @@ -214,7 +214,6 @@ ppsrf2(i) = ppsrf(i, 2) ppsrf3(i) = ppsrf(i, 3) ppsrf4(i) = ppsrf(i, 4) - END DO END DO @@ -222,7 +221,6 @@ irec = irec + 1 - !cccc CALL gr_fi_ecrit(klev, klon, iim, jjm+1, t, zx_tmp_3d) CALL histwrite(physid, 't', itap, zx_tmp_3d) @@ -241,7 +239,6 @@ CALL gr_fi_ecrit(klev, klon, iim, jjm+1, coefh, zx_tmp_3d) CALL histwrite(physid, 'coefh', itap, zx_tmp_3d) - ! ajou... DO k = 1, klev DO i = 1, klon fm_therm1(i, k) = fm_therm(i, k) @@ -285,8 +282,6 @@ CALL histwrite(physid, 'psrf4', itap, zx_tmp_2d) IF (ok_sync) CALL histsync(physid) - ! if (ok_sync) call histsync - !AA Test sur la valeur des coefficients de lessivage @@ -298,7 +293,7 @@ zmin = min(zmin, frac_nucl(i, k)) END DO END DO - PRINT *, '------ coefs de lessivage (min et max) --------' + PRINT *, 'coefs de lessivage (min et max)' PRINT *, 'facteur de nucleation ', zmin, zmax zmin = 1E33 zmax = -1E33 @@ -309,7 +304,6 @@ END DO END DO PRINT *, 'facteur d impaction ', zmin, zmax - END IF END SUBROUTINE phystokenc