Changeset 5246 for LMDZ6/trunk/libf/dyn3d_common/convflu.f90
- Timestamp:
- Oct 21, 2024, 2:58:45 PM (23 hours ago)
- File:
-
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/dyn3d_common/convflu.f90
r5245 r5246 2 2 ! $Header$ 3 3 ! 4 5 c 6 cP. Le Van7 c 8 c 9 c*******************************************************************10 c... calcule la (convergence horiz. * aire locale)du flux ayant pour11 ccomposantes xflu et yflu ,variables extensives . ......12 c*******************************************************************13 cxflu , yflu et nbniv sont des arguments d'entree pour le s-pg ..14 cconvfl est un argument de sortie pour le s-pg .15 c 16 c njxflu est le nombre de lignes de latitude de xflu, 17 c( = jjm ou jjp1 )18 cnbniv est le nombre de niveaux vert. de xflu et de yflu .19 c 20 21 c 22 23 24 REALxflu,yflu,convfl,convpn,convps25 INTEGERl,ij,nbniv26 DIMENSION xflu( ip1jmp1,nbniv ),yflu( ip1jm,nbniv ) ,27 *convfl( ip1jmp1,nbniv )28 c 29 REALSSUM30 c 31 c 32 33 c 34 DO 5l = 1,nbniv35 c 36 DO 2ij = iip2, ip1jm - 137 convfl( ij + 1,l ) = xflu( ij,l ) - xflu( ij + 1,l ) +38 *yflu(ij +1,l ) - yflu( ij -iim,l )39 2 CONTINUE40 c 41 c 4 SUBROUTINE convflu( xflu,yflu,nbniv,convfl ) 5 ! 6 ! P. Le Van 7 ! 8 ! 9 ! ******************************************************************* 10 ! ... calcule la (convergence horiz. * aire locale)du flux ayant pour 11 ! composantes xflu et yflu ,variables extensives . ...... 12 ! ******************************************************************* 13 ! xflu , yflu et nbniv sont des arguments d'entree pour le s-pg .. 14 ! convfl est un argument de sortie pour le s-pg . 15 ! 16 ! njxflu est le nombre de lignes de latitude de xflu, 17 ! ( = jjm ou jjp1 ) 18 ! nbniv est le nombre de niveaux vert. de xflu et de yflu . 19 ! 20 IMPLICIT NONE 21 ! 22 INCLUDE "dimensions.h" 23 INCLUDE "paramet.h" 24 REAL :: xflu,yflu,convfl,convpn,convps 25 INTEGER :: l,ij,nbniv 26 DIMENSION xflu( ip1jmp1,nbniv ),yflu( ip1jm,nbniv ) , & 27 convfl( ip1jmp1,nbniv ) 28 ! 29 REAL :: SSUM 30 ! 31 ! 32 INCLUDE "comgeom.h" 33 ! 34 DO l = 1,nbniv 35 ! 36 DO ij = iip2, ip1jm - 1 37 convfl( ij + 1,l ) = xflu( ij,l ) - xflu( ij + 1,l ) + & 38 yflu(ij +1,l ) - yflu( ij -iim,l ) 39 END DO 40 ! 41 ! 42 42 43 c.... correction pour convfl( 1,j,l) ......44 c.... convfl(1,j,l)= convfl(iip1,j,l) ...45 c 46 CDIR$ IVDEP47 DO 3ij = iip2,ip1jm,iip148 49 3 CONTINUE50 c 51 c...... calcul aux poles .......52 c 53 54 55 DO 4ij = 1,iip156 57 58 4 CONTINUE59 c 60 5 CONTINUE61 62 END 43 ! .... correction pour convfl( 1,j,l) ...... 44 ! .... convfl(1,j,l)= convfl(iip1,j,l) ... 45 ! 46 !DIR$ IVDEP 47 DO ij = iip2,ip1jm,iip1 48 convfl( ij,l ) = convfl( ij + iim,l ) 49 END DO 50 ! 51 ! ...... calcul aux poles ....... 52 ! 53 convpn = SSUM( iim, yflu( 1 ,l ), 1 ) 54 convps = - SSUM( iim, yflu( ip1jm-iim,l ), 1 ) 55 DO ij = 1,iip1 56 convfl( ij ,l ) = convpn * aire( ij ) / apoln 57 convfl( ij+ ip1jm,l ) = convps * aire( ij+ ip1jm) / apols 58 END DO 59 ! 60 END DO 61 RETURN 62 END SUBROUTINE convflu
Note: See TracChangeset
for help on using the changeset viewer.