/[lmdze]/trunk/dyn3d/Dissipation/gradiv2.f
ViewVC logotype

Diff of /trunk/dyn3d/Dissipation/gradiv2.f

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 56 by guez, Tue Jan 10 19:02:02 2012 UTC revision 57 by guez, Mon Jan 30 12:54:02 2012 UTC
# Line 4  module gradiv2_m Line 4  module gradiv2_m
4    
5  contains  contains
6    
7    SUBROUTINE gradiv2(klevel, xcov, ycov, ld, gdx, gdy, cdivu)    SUBROUTINE gradiv2(xcov, ycov, ld, gdx, gdy, cdivu)
8    
9      ! From LMDZ4/libf/dyn3d/gradiv2.F, version 1.1.1.1 2004/05/19 12:53:07      ! From LMDZ4/libf/dyn3d/gradiv2.F, version 1.1.1.1 2004/05/19 12:53:07
10      ! P. Le Van      ! P. Le Van
11      ! Calcul de grad div du vecteur v.      ! Calcul de grad div du vecteur v.
12    
13      USE dimens_m, ONLY : llm      USE dimens_m, ONLY : iim, jjm, llm
14      USE paramet_m, ONLY : ip1jm, ip1jmp1, jjp1      use divergf_m, only: divergf
15      USE comgeom, ONLY : cuvscvgam1, cvuscugam1, unsair_gam1, unsapolnga1, &      USE comgeom, ONLY : cuvscvgam1, cvuscugam1, unsair_gam1, unsapolnga1, &
16           unsapolsga1           unsapolsga1
17      USE filtreg_m, ONLY : filtreg      USE filtreg_m, ONLY : filtreg
18        use nr_util, only: assert_eq, assert
19    
20      INTEGER, intent(in):: klevel      ! Composantes covariantes de v :
21        REAL, intent(in):: xcov(:, :, :) ! (iim + 1, jjm + 1, klevel)
22      ! composantes covariantes de v:      REAL, intent(in):: ycov(:, :, :) ! (iim + 1, jjm, klevel)
     REAL, intent(in):: xcov(ip1jmp1, klevel), ycov(ip1jm, klevel)  
23    
24      integer, intent(in):: ld      integer, intent(in):: ld
25      REAL, intent(out):: gdx(ip1jmp1, klevel), gdy(ip1jm, klevel)      REAL, intent(out):: gdx(:, :, :) ! (iim + 1, jjm + 1, klevel)
26        REAL, intent(out):: gdy(:, :, :) ! (iim + 1, jjm, klevel)
27      real, intent(in):: cdivu      real, intent(in):: cdivu
28    
29      ! Variables locales :      ! Variables locales :
30      REAL div(ip1jmp1, llm)      REAL nugrads, div(iim + 1, jjm + 1, llm)
31      REAL nugrads      INTEGER iter, klevel
     INTEGER iter  
32    
33      !--------------------------------------------------------------      !--------------------------------------------------------------
34    
35        call assert((/size(xcov, 1), size(ycov, 1), size(gdx, 1), size(gdy, 1)/) &
36             == iim + 1, "gradiv2 iim")
37        call assert((/size(xcov, 2) - 1, size(ycov, 2), size(gdx, 2) - 1, &
38             size(gdy, 2)/) == jjm, "gradiv2 iim")
39        klevel = assert_eq(size(xcov, 3), size(ycov, 3), size(gdx, 3), &
40             size(gdy, 3), "gradiv2 klevel")
41    
42      gdx = xcov      gdx = xcov
43      gdy = ycov      gdy = ycov
44    
# Line 47  contains Line 54  contains
54         END DO         END DO
55      ENDIF      ENDIF
56    
57      CALL filtreg(div, jjp1, klevel, 2, 1, .TRUE., 1)      CALL filtreg(div, jjm + 1, klevel, 2, 1, .TRUE., 1)
58      CALL grad(klevel, div, gdx, gdy)      CALL grad(klevel, div, gdx, gdy)
59      nugrads = (-1.)**ld * cdivu      nugrads = (-1.)**ld * cdivu
60    

Legend:
Removed from v.56  
changed lines
  Added in v.57

  ViewVC Help
Powered by ViewVC 1.1.21