--- trunk/libf/phylmd/phystokenc.f90 2010/04/06 17:52:58 32 +++ trunk/libf/phylmd/phystokenc.f90 2013/07/23 13:00:07 72 @@ -10,10 +10,10 @@ ! 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 histcom, ONLY : histsync + USE histsync_m, ONLY : histsync USE dimens_m, ONLY : iim, jjm, nqmx USE indicesol, ONLY : nbsrf USE dimphy, ONLY : klev, klon @@ -25,18 +25,21 @@ ! 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 REAL pde_d(klon, klev) ! flux detraine dans le panache descendant - REAL pt(klon, klev) + REAL, intent(in):: pt(klon, klev) REAL, INTENT (IN) :: rlon(klon), rlat(klon) REAL, INTENT (IN) :: dtime @@ -48,7 +51,8 @@ ! Couche limite: REAL yv1(klon) - REAL yu1(klon), pphis(klon), paire(klon) + REAL yu1(klon), paire(klon) + REAL, INTENT(IN):: pphis(klon) REAL pcoefh(klon, klev) ! coeff melange Couche limite ! Arguments necessaires pour les sources et puits de traceur @@ -75,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 @@ -90,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: @@ -122,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. @@ -180,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 @@ -213,7 +214,6 @@ ppsrf2(i) = ppsrf(i, 2) ppsrf3(i) = ppsrf(i, 3) ppsrf4(i) = ppsrf(i, 4) - END DO END DO @@ -221,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) @@ -240,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) @@ -284,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 @@ -297,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 @@ -308,7 +304,6 @@ END DO END DO PRINT *, 'facteur d impaction ', zmin, zmax - END IF END SUBROUTINE phystokenc