/[lmdze]/trunk/dyn3d/diverg_gam.f
ViewVC logotype

Annotation of /trunk/dyn3d/diverg_gam.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 76 - (hide annotations)
Fri Nov 15 18:45:49 2013 UTC (10 years, 6 months ago) by guez
File size: 2500 byte(s)
Moved everything out of libf.
1 guez 3 !
2     ! $Header: /home/cvsroot/LMDZ4/libf/dyn3d/diverg_gam.F,v 1.1.1.1 2004/05/19 12:53:05 lmdzadmin Exp $
3     !
4     SUBROUTINE diverg_gam(klevel,cuvscvgam,cvuscugam,unsairegam ,
5     * unsapolnga,unsapolsga, x, y, div )
6     c
7     c P. Le Van
8     c
9     c *********************************************************************
10     c ... calcule la divergence a tous les niveaux d'1 vecteur de compos.
11     c x et y...
12     c x et y etant des composantes covariantes ...
13     c *********************************************************************
14     use dimens_m
15     use paramet_m
16     use comgeom
17     IMPLICIT NONE
18     c
19     c x et y sont des arguments d'entree pour le s-prog
20     c div est un argument de sortie pour le s-prog
21     c
22     c
23     c ---------------------------------------------------------------------
24     c
25     c ATTENTION : pendant ce s-pg , ne pas toucher au COMMON/scratch/ .
26     c
27     c ---------------------------------------------------------------------
28     c
29     c .......... variables en arguments ...................
30     c
31 guez 55 INTEGER, intent(in):: klevel
32 guez 3 REAL x( ip1jmp1,klevel ),y( ip1jm,klevel ),div( ip1jmp1,klevel )
33     REAL cuvscvgam(ip1jm),cvuscugam(ip1jmp1),unsairegam(ip1jmp1)
34     REAL unsapolnga,unsapolsga
35     c
36     c ............... variables locales .........................
37    
38     REAL aiy1( iip1 ) , aiy2( iip1 )
39     REAL sumypn,sumyps
40     INTEGER l,ij
41     c ...................................................................
42     c
43     REAL SSUM
44     c
45     c
46     DO 10 l = 1,klevel
47     c
48     DO ij = iip2, ip1jm - 1
49     div( ij + 1, l ) = (
50     * cvuscugam( ij+1 ) * x( ij+1,l ) - cvuscugam( ij ) * x( ij , l) +
51     * cuvscvgam(ij-iim) * y(ij-iim,l) - cuvscvgam(ij+1) * y(ij+1,l) )*
52     * unsairegam( ij+1 )
53     ENDDO
54     c
55     c .... correction pour div( 1,j,l) ......
56     c .... div(1,j,l)= div(iip1,j,l) ....
57     c
58     CDIR$ IVDEP
59     DO ij = iip2,ip1jm,iip1
60     div( ij,l ) = div( ij + iim,l )
61     ENDDO
62     c
63     c .... calcul aux poles .....
64     c
65     DO ij = 1,iim
66     aiy1(ij) = cuvscvgam( ij ) * y( ij , l )
67     aiy2(ij) = cuvscvgam( ij+ ip1jmi1 ) * y( ij+ ip1jmi1, l )
68     ENDDO
69     sumypn = SSUM ( iim,aiy1,1 ) * unsapolnga
70     sumyps = SSUM ( iim,aiy2,1 ) * unsapolsga
71     c
72     DO ij = 1,iip1
73     div( ij , l ) = - sumypn
74     div( ij + ip1jm, l ) = sumyps
75     ENDDO
76     10 CONTINUE
77     c
78    
79     RETURN
80     END

  ViewVC Help
Powered by ViewVC 1.1.21