Changeset 5246 for LMDZ6/trunk/libf/dyn3d/dudv1.F90
- Timestamp:
- Oct 21, 2024, 2:58:45 PM (23 hours ago)
- File:
-
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/dyn3d/dudv1.F90
r5245 r5246 2 2 ! $Header$ 3 3 ! 4 5 6 c 7 c-----------------------------------------------------------------------8 c 9 cAuteur: P. Le Van10 c-------11 c 12 cObjet:13 c------14 ccalcul du terme de rotation15 cce terme est ajoute a d(ucov)/dt et a d(vcov)/dt ..16 cvorpot, pbaru et pbarv sont des arguments d'entree pour le s-pg ..17 cdu et dv sont des arguments de sortie pour le s-pg ..18 c 19 c-----------------------------------------------------------------------4 SUBROUTINE dudv1 ( vorpot, pbaru, pbarv, du, dv ) 5 IMPLICIT NONE 6 ! 7 !----------------------------------------------------------------------- 8 ! 9 ! Auteur: P. Le Van 10 ! ------- 11 ! 12 ! Objet: 13 ! ------ 14 ! calcul du terme de rotation 15 ! ce terme est ajoute a d(ucov)/dt et a d(vcov)/dt .. 16 ! vorpot, pbaru et pbarv sont des arguments d'entree pour le s-pg .. 17 ! du et dv sont des arguments de sortie pour le s-pg .. 18 ! 19 !----------------------------------------------------------------------- 20 20 21 21 #include "dimensions.h" 22 22 #include "paramet.h" 23 23 24 REAL vorpot( ip1jm,llm ) ,pbaru( ip1jmp1,llm ) ,25 *pbarv( ip1jm,llm ) ,du( ip1jmp1,llm ) ,dv( ip1jm,llm )26 INTEGERl,ij27 c 28 c 29 DO 10l = 1,llm30 c 31 DO 2ij = iip2, ip1jm - 132 du( ij,l ) = 0.125 *( vorpot(ij-iip1, l) + vorpot( ij, l) ) *33 * ( pbarv(ij-iip1, l) + pbarv(ij-iim, l) +34 *pbarv( ij , l) + pbarv(ij+ 1 , l) )35 2 CONTINUE36 c 37 DO 3ij = 1, ip1jm - 138 dv( ij+1,l ) = - 0.125 *( vorpot(ij, l) + vorpot(ij+1, l) ) *39 * ( pbaru(ij, l) + pbaru(ij+1 , l) +40 *pbaru(ij+iip1, l) + pbaru(ij+iip2, l) )41 3 CONTINUE42 c 43 c.... correction pour dv( 1,j,l ) .....44 c.... dv(1,j,l)= dv(iip1,j,l) ....45 c 46 CDIR$ IVDEP47 DO 4ij = 1, ip1jm, iip148 49 4 CONTINUE50 c 51 10 CONTINUE52 53 END 24 REAL :: vorpot( ip1jm,llm ) ,pbaru( ip1jmp1,llm ) , & 25 pbarv( ip1jm,llm ) ,du( ip1jmp1,llm ) ,dv( ip1jm,llm ) 26 INTEGER :: l,ij 27 ! 28 ! 29 DO l = 1,llm 30 ! 31 DO ij = iip2, ip1jm - 1 32 du( ij,l ) = 0.125 *( vorpot(ij-iip1, l) + vorpot( ij, l) ) * & 33 ( pbarv(ij-iip1, l) + pbarv(ij-iim, l) + & 34 pbarv( ij , l) + pbarv(ij+ 1 , l) ) 35 END DO 36 ! 37 DO ij = 1, ip1jm - 1 38 dv( ij+1,l ) = - 0.125 *( vorpot(ij, l) + vorpot(ij+1, l) ) * & 39 ( pbaru(ij, l) + pbaru(ij+1 , l) + & 40 pbaru(ij+iip1, l) + pbaru(ij+iip2, l) ) 41 END DO 42 ! 43 ! .... correction pour dv( 1,j,l ) ..... 44 ! .... dv(1,j,l)= dv(iip1,j,l) .... 45 ! 46 !DIR$ IVDEP 47 DO ij = 1, ip1jm, iip1 48 dv( ij,l ) = dv( ij + iim, l ) 49 END DO 50 ! 51 END DO 52 RETURN 53 END SUBROUTINE dudv1
Note: See TracChangeset
for help on using the changeset viewer.