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

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

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

revision 82 by guez, Wed Mar 5 14:57:53 2014 UTC revision 266 by guez, Thu Apr 19 17:54:55 2018 UTC
# Line 6  contains Line 6  contains
6    
7    SUBROUTINE nxgraro2(xcov, ycov, lr, grx, gry, crot)    SUBROUTINE nxgraro2(xcov, ycov, lr, grx, gry, crot)
8    
9      ! From LMDZ4/libf/dyn3d/nxgraro2.F, version 1.1.1.1 2004/05/19 12:53:06      ! From LMDZ4/libf/dyn3d/nxgraro2.F, version 1.1.1.1, 2004/05/19 12:53:06
10    
11      ! P. Le Van      ! P. Le Van
12      ! Calcul de nxgrad(rot) du vecteur v      ! Calcul de nxgrad(rot) du vecteur (xcov, ycov).
13    
14      USE dimens_m, ONLY: iim, jjm      USE filtreg_v_m, ONLY: filtreg_v
     USE filtreg_m, ONLY: filtreg  
15      use nr_util, only: assert, assert_eq      use nr_util, only: assert, assert_eq
16        use nxgrad_m, only: nxgrad
17        use rotatf_m, only: rotatf
18    
19      ! Composantes covariantes de v :      ! Composantes covariantes :
20      REAL, intent(in):: xcov(:, :, :) ! (iim + 1, jjm + 1, :)      REAL, intent(in):: xcov(:, :, :) ! (iim + 1, jjm + 1, klevel)
21      REAL, intent(in):: ycov(:, :, :) ! (iim + 1, jjm, :)      REAL, intent(in):: ycov(:, :, :) ! (iim + 1, jjm, klevel)
22    
23      integer, intent(in):: lr      integer, intent(in):: lr
24      REAL, intent(out):: grx(:, :, :) ! (iim + 1, jjm + 1, :)      REAL, intent(out):: grx(:, :, :) ! (iim + 1, jjm + 1, klevel)
25      REAL, intent(out):: gry(:, :, :) ! (iim + 1, jjm, :)      REAL, intent(out):: gry(:, :, :) ! (iim + 1, jjm, klevel)
26      real, intent(in):: crot      real, intent(in):: crot
27    
28      ! Variables locales      ! Local:
   
29      INTEGER klevel, iter      INTEGER klevel, iter
30      REAL rot(iim + 1, jjm, size(xcov, 3)) , nugradrs      REAL rot(size(ycov, 1), size(ycov, 2), size(ycov, 3)) , nugradrs
31    
32      !----------------------------------------------------------      !----------------------------------------------------------
33    
34      call assert((/size(xcov, 1), size(ycov, 1), size(grx, 1), size(gry, 1)/) &      call assert(size(xcov, 1) == [size(ycov, 1), size(grx, 1), size(gry, 1)], &
35           == iim + 1, "nxgraro2 iim")           "nxgraro2 iim")
36      call assert((/size(xcov, 2) - 1, size(ycov, 2), size(grx, 2) - 1, &      call assert(size(xcov, 2) - 1 == [size(ycov, 2), size(grx, 2) - 1, &
37           size(gry, 2)/) == jjm, "nxgraro2 jjm")           size(gry, 2)], "nxgraro2 jjm")
38      klevel = assert_eq(size(xcov, 3), size(ycov, 3), size(grx, 3), &      klevel = assert_eq(size(xcov, 3), size(ycov, 3), size(grx, 3), &
39           size(gry, 3), "nxgraro2 klevel")           size(gry, 3), "nxgraro2 klevel")
40    
# Line 49  contains Line 49  contains
49         CALL laplacien_rotgam(klevel, rot, rot)         CALL laplacien_rotgam(klevel, rot, rot)
50      ENDDO      ENDDO
51    
52      CALL filtreg(rot, jjm, klevel, 2, 1, .FALSE.)      CALL filtreg_v(rot, intensive = .true.)
53      CALL nxgrad(klevel, rot, grx, gry)      CALL nxgrad(klevel, rot, grx, gry)
54    
55      nugradrs = (-1.)**lr * crot      nugradrs = (-1.)**lr * crot

Legend:
Removed from v.82  
changed lines
  Added in v.266

  ViewVC Help
Powered by ViewVC 1.1.21