--- trunk/phylmd/transp_lay.f 2013/11/15 18:45:49 76 +++ trunk/phylmd/transp_lay.f90 2014/03/05 14:38:41 81 @@ -1,51 +1,50 @@ - SUBROUTINE transp_lay (paprs,tsol, - e t, q, u, v, geom, - s vtran_e, vtran_q, utran_e, utran_q) -c - use dimens_m - use dimphy - use SUPHEC_M - IMPLICIT none -c====================================================================== -c Auteur(s): Z.X.Li (LMD/CNRS) -c Date: le 25 avril 1994 -c Objet: Calculer le transport de l'energie et de la vapeur d'eau -c====================================================================== -c -c - REAL, intent(in):: paprs(klon,klev+1) - real tsol(klon) - REAL, INTENT (IN):: t(klon,klev) - real q(klon,klev), u(klon,klev), v(klon,klev) - REAL utran_e(klon,klev), utran_q(klon,klev) - REAL vtran_e(klon,klev), vtran_q(klon,klev) -c - INTEGER i, l -c ------------------------------------------------------------------ - REAL geom(klon,klev), esh -c ------------------------------------------------------------------ - DO l = 1, klev - DO i = 1, klon - utran_e(i,l) = 0.0 - utran_q(i,l) = 0.0 - vtran_e(i,l) = 0.0 - vtran_q(i,l) = 0.0 - ENDDO - ENDDO -c - DO l = 1, klev - DO i = 1, klon - esh = RCPD*t(i,l) + RLVTT*q(i,l) + geom(i,l) - utran_e(i,l)=utran_e(i,l)+ u(i,l)*esh* - . (paprs(i,l)-paprs(i,l+1))/RG - utran_q(i,l)=utran_q(i,l)+ u(i,l)*q(i,l) - . *(paprs(i,l)-paprs(i,l+1))/RG - vtran_e(i,l)=vtran_e(i,l)+ v(i,l)*esh* - . (paprs(i,l)-paprs(i,l+1))/RG - vtran_q(i,l)=vtran_q(i,l)+ v(i,l)*q(i,l) - . *(paprs(i,l)-paprs(i,l+1))/RG - ENDDO - ENDDO -c - RETURN - END +SUBROUTINE transp_lay(paprs, tsol, t, q, u, v, geom, vtran_e, vtran_q, & + utran_e, utran_q) + + USE dimens_m + USE dimphy + USE suphec_m + IMPLICIT NONE + ! ====================================================================== + ! Auteur(s): Z.X.Li (LMD/CNRS) + ! Date: le 25 avril 1994 + ! Objet: Calculer le transport de l'energie et de la vapeur d'eau + ! ====================================================================== + + + REAL, INTENT (IN) :: paprs(klon, klev+1) + REAL tsol(klon) + REAL, INTENT (IN) :: t(klon, klev) + REAL q(klon, klev), u(klon, klev), v(klon, klev) + REAL utran_e(klon, klev), utran_q(klon, klev) + REAL vtran_e(klon, klev), vtran_q(klon, klev) + + INTEGER i, l + ! ------------------------------------------------------------------ + REAL geom(klon, klev), esh + ! ------------------------------------------------------------------ + DO l = 1, klev + DO i = 1, klon + utran_e(i, l) = 0.0 + utran_q(i, l) = 0.0 + vtran_e(i, l) = 0.0 + vtran_q(i, l) = 0.0 + END DO + END DO + + DO l = 1, klev + DO i = 1, klon + esh = rcpd*t(i, l) + rlvtt*q(i, l) + geom(i, l) + utran_e(i, l) = utran_e(i, l) + u(i, l)*esh*(paprs(i,l)-paprs(i,l+1))/ & + rg + utran_q(i, l) = utran_q(i, l) + u(i, l)*q(i, l)*(paprs(i,l)-paprs(i,l+1 & + ))/rg + vtran_e(i, l) = vtran_e(i, l) + v(i, l)*esh*(paprs(i,l)-paprs(i,l+1))/ & + rg + vtran_q(i, l) = vtran_q(i, l) + v(i, l)*q(i, l)*(paprs(i,l)-paprs(i,l+1 & + ))/rg + END DO + END DO + + RETURN +END SUBROUTINE transp_lay