--- trunk/libf/dyn3d/divergf.f90 2012/01/30 12:54:02 57 +++ trunk/libf/dyn3d/divergf.f90 2012/09/20 09:57:03 65 @@ -6,33 +6,27 @@ SUBROUTINE divergf(klevel, x, y, div) - ! From libf/dyn3d/divergf.F, v 1.1.1.1 2004/05/19 12:53:05 + ! From libf/dyn3d/divergf.F, version 1.1.1.1 2004/05/19 12:53:05 ! P. Le Van ! Calcule la divergence à tous les niveaux d'un vecteur de ! composantes x et y. x et y sont des composantes covariantes. - USE dimens_m, ONLY: iim - USE paramet_m, ONLY: iip1, iip2, ip1jm, ip1jmi1, ip1jmp1, jjp1 USE comgeom, ONLY: apoln, apols, cuvsurcv, cvusurcu, unsaire + USE dimens_m, ONLY: iim USE filtreg_m, ONLY: filtreg - - ! div est un argument de sortie pour le s-prog - - ! variables en arguments + USE paramet_m, ONLY: iip1, iip2, ip1jm, ip1jmi1, ip1jmp1, jjp1 INTEGER, intent(in):: klevel REAL, intent(in):: x(ip1jmp1, klevel), y(ip1jm, klevel) - real div(ip1jmp1, klevel) + real, intent(out):: div(ip1jmp1, klevel) ! in (unit of x, y) m-2 - ! variables locales + ! Variables locales : INTEGER l, ij - REAL aiy1(iip1) , aiy2(iip1) + REAL aiy1(iim) , aiy2(iim) REAL sumypn, sumyps - REAL SSUM - !------------------------------------------------------------ DO l = 1, klevel @@ -52,8 +46,8 @@ aiy1(ij) = cuvsurcv(ij) * y(ij , l) aiy2(ij) = cuvsurcv(ij+ ip1jmi1) * y(ij+ ip1jmi1, l) ENDDO - sumypn = SSUM (iim, aiy1, 1) / apoln - sumyps = SSUM (iim, aiy2, 1) / apols + sumypn = SUM(aiy1) / apoln + sumyps = SUM(aiy2) / apols DO ij = 1, iip1 div(ij , l) = - sumypn @@ -61,7 +55,7 @@ ENDDO end DO - CALL filtreg(div, jjp1, klevel, 2, 2, .TRUE., 1) + CALL filtreg(div, jjp1, klevel, 2, 2, .TRUE.) DO l = 1, klevel DO ij = iip2, ip1jm