source: LMDZ.3.3/trunk/libf/dyn3d/gradiv2.F @ 2

Last change on this file since 2 was 2, checked in by lmdz, 25 years ago

Initial revision

  • Property svn:eol-style set to native
  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 2.0 KB
Line 
1      SUBROUTINE gradiv2(klevel, xcov, ycov, ld, gdx, gdy )
2c
3c     P. Le Van
4c
5c   **********************************************************
6c                                ld
7c       calcul  de  (grad (div) )   du vect. v ....
8c
9c     xcov et ycov etant les composant.covariantes de v
10c   **********************************************************
11c     xcont , ycont et ld  sont des arguments  d'entree pour le s-prog
12c      gdx   et  gdy       sont des arguments de sortie pour le s-prog
13c
14c
15      IMPLICIT NONE
16c
17#include "dimensions.h"
18#include "paramet.h"
19#include "comgeom.h"
20#include "comdissipn.h"
21c
22c     ........    variables en arguments      ........
23
24      INTEGER klevel
25      REAL  xcov( ip1jmp1,klevel ), ycov( ip1jm,klevel )
26      REAL   gdx( ip1jmp1,klevel ),  gdy( ip1jm,klevel )
27c
28c     ........       variables locales       .........
29c
30      REAL div(ip1jmp1,llm)
31      REAL signe, nugrads
32      INTEGER l,ij,iter,ld
33     
34c    ........................................................
35c
36      EXTERNAL   SCOPY, divergf, grad, laplacien_gam, filtreg
37c
38      CALL SCOPY( ip1jmp1 * klevel, xcov, 1, gdx, 1 )
39      CALL SCOPY(   ip1jm * klevel, ycov, 1, gdy, 1 )
40c
41c
42      signe   = (-1.)**ld
43      nugrads = signe * cdivu
44c
45
46
47      CALL    divergf( klevel, gdx,   gdy , div )
48
49      IF( ld.GT.1 )   THEN
50
51        CALL laplacien ( klevel, div,  div     )
52
53c    ......  Iteration de l'operateur laplacien_gam   .......
54
55        DO iter = 1, ld -2
56         CALL laplacien_gam ( klevel,cuvscvgam1,cvuscugam1,unsair_gam1,
57     *                       unsapolnga1, unsapolsga1,  div, div       )
58        ENDDO
59
60      ENDIF
61
62
63       CALL filtreg( div   , jjp1, klevel, 2, 1, .TRUE., 1 )
64       CALL  grad  ( klevel,  div,   gdx,  gdy             )
65
66c
67       DO   l = 1, klevel
68         DO  ij = 1, ip1jmp1
69          gdx( ij,l ) = gdx( ij,l ) * nugrads
70         ENDDO
71         DO  ij = 1, ip1jm
72          gdy( ij,l ) = gdy( ij,l ) * nugrads
73         ENDDO
74       ENDDO
75c
76       RETURN
77       END
Note: See TracBrowser for help on using the repository browser.