Changeset 1523 for trunk/LMDZ.COMMON/libf/dyn3d_common/convmas.F90
- Timestamp:
- Mar 28, 2016, 5:27:51 PM (9 years ago)
- File:
-
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.COMMON/libf/dyn3d_common/convmas.F90
r1520 r1523 1 SUBROUTINE convmas (pbaru, pbarv, convm) 1 2 ! 2 ! $Header$ 3 ! 4 SUBROUTINE convmas (pbaru, pbarv, convm ) 5 c 6 IMPLICIT NONE 3 !------------------------------------------------------------------------------- 4 ! Authors: P. Le Van , Fr. Hourdin. 5 !------------------------------------------------------------------------------- 6 ! Purpose: Compute mass flux convergence at p levels. 7 IMPLICIT NONE 8 include "dimensions.h" 9 include "paramet.h" 10 include "comgeom.h" 11 !=============================================================================== 12 ! Arguments: 13 REAL, INTENT(IN) :: pbaru(ip1jmp1,llm) 14 REAL, INTENT(IN) :: pbarv(ip1jm ,llm) 15 REAL, INTENT(OUT) :: convm(ip1jmp1,llm) 16 !=============================================================================== 17 ! Method used: Computation from top to bottom. 18 ! Mass convergence at level llm is equal to zero and is not stored in convm. 19 !=============================================================================== 20 ! Local variables: 21 INTEGER :: l 22 !=============================================================================== 7 23 8 c======================================================================= 9 c 10 c Auteurs: P. Le Van , F. Hourdin . 11 c ------- 12 c 13 c Objet: 14 c ------ 15 c 16 c ******************************************************************** 17 c .... calcul de la convergence du flux de masse aux niveaux p ... 18 c ******************************************************************** 19 c 20 c 21 c pbaru et pbarv sont des arguments d'entree pour le s-pg .... 22 c ..... convm est un argument de sortie pour le s-pg .... 23 c 24 c le calcul se fait de haut en bas, 25 c la convergence de masse au niveau p(llm+1) est egale a 0. et 26 c n'est pas stockee dans le tableau convm . 27 c 28 c 29 c======================================================================= 30 c 31 c Declarations: 32 c ------------- 24 !--- Computation of - (d(pbaru)/dx + d(pbarv)/dy ) 25 CALL convflu( pbaru, pbarv, llm, convm ) 33 26 34 #include "dimensions.h" 35 #include "paramet.h" 27 !--- Filter 28 CALL filtreg( convm, jjp1, llm, 2, 2, .TRUE., 1 ) 36 29 37 REAL pbaru( ip1jmp1,llm ),pbarv( ip1jm,llm ),convm( ip1jmp1,llm ) 38 INTEGER l,ij 30 !--- Mass convergence is integrated from top to bottom 31 DO l=llmm1,1,-1 32 convm(:,l) = convm(:,l) + convm(:,l+1) 33 END DO 39 34 40 41 c----------------------------------------------------------------------- 42 c .... calcul de - (d(pbaru)/dx + d(pbarv)/dy ) ...... 43 44 CALL convflu( pbaru, pbarv, llm, convm ) 45 46 c----------------------------------------------------------------------- 47 c filtrage: 48 c --------- 49 50 CALL filtreg( convm, jjp1, llm, 2, 2, .true., 1 ) 51 52 c integration de la convergence de masse de haut en bas ...... 53 54 DO l = llmm1, 1, -1 55 DO ij = 1, ip1jmp1 56 convm(ij,l) = convm(ij,l) + convm(ij,l+1) 57 ENDDO 58 ENDDO 59 c 60 RETURN 61 END 35 END SUBROUTINE convmas
Note: See TracChangeset
for help on using the changeset viewer.