Changeset 5159 for LMDZ6/branches/Amaury_dev/libf/dyn3dmem/diverg_p.f90
- Timestamp:
- Aug 2, 2024, 9:58:25 PM (3 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/diverg_p.f90
r5140 r5159 1 1 SUBROUTINE diverg_p(klevel,x,y,div) 2 ! 2 3 3 ! P. Le Van 4 ! 4 5 5 ! ********************************************************************* 6 6 ! ... calcule la divergence a tous les niveaux d'1 vecteur de compos. … … 12 12 USE lmdz_comgeom 13 13 14 USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm 15 USE lmdz_paramet 14 16 IMPLICIT NONE 15 ! 17 16 18 ! x et y sont des arguments d'entree pour le s-prog 17 19 ! div est un argument de sortie pour le s-prog 18 20 ! 19 21 20 INCLUDE "dimensions.h" 21 INCLUDE "paramet.h" 22 ! 22 23 24 23 25 ! .......... variables en arguments ................... 24 ! 26 25 27 INTEGER :: klevel 26 28 REAL :: x( ip1jmp1,klevel ),y( ip1jm,klevel ),div( ip1jmp1,klevel ) 27 29 INTEGER :: l,ij 28 ! 30 29 31 ! ............... variables locales ......................... 30 32 … … 33 35 INTEGER :: ijb,ije 34 36 ! ................................................................... 35 ! 36 ! 37 38 37 39 ijb=ij_begin 38 40 ije=ij_end … … 42 44 !$OMP DO SCHEDULE(STATIC,OMP_CHUNK) 43 45 DO l = 1,klevel 44 ! 46 45 47 DO ij = ijb, ije - 1 46 48 div( ij + 1, l ) = & … … 48 50 cuvsurcv(ij-iim) * y(ij-iim,l) - cuvsurcv(ij+1) * y(ij+1,l) 49 51 ENDDO 50 ! 52 51 53 ! .... correction pour div( 1,j,l) ...... 52 54 ! .... div(1,j,l)= div(iip1,j,l) .... 53 ! 55 54 56 !DIR$ IVDEP 55 57 DO ij = ijb,ije,iip1 56 58 div( ij,l ) = div( ij + iim,l ) 57 59 ENDDO 58 ! 60 59 61 ! .... calcul aux poles ..... 60 ! 62 61 63 IF (pole_nord) THEN 62 64 DO ij = 1,iim … … 64 66 ENDDO 65 67 sumypn = SSUM ( iim,aiy1,1 ) / apoln 66 ! 68 67 69 DO ij = 1,iip1 68 70 div( ij , l ) = - sumypn … … 75 77 ENDDO 76 78 sumyps = SSUM ( iim,aiy2,1 ) / apols 77 ! 79 78 80 DO ij = 1,iip1 79 81 div( ij + ip1jm, l ) = sumyps … … 88 90 !cc CALL filtreg( div, jjp1, klevel, 2, 2, .TRUE., 1 ) 89 91 90 ! 92 91 93 !$OMP DO SCHEDULE(STATIC,OMP_CHUNK) 92 94 DO l = 1, klevel
Note: See TracChangeset
for help on using the changeset viewer.