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

Annotation of /trunk/Sources/dyn3d/Dissipation/nxgraro2.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 54 - (hide annotations)
Tue Dec 6 15:07:04 2011 UTC (12 years, 5 months ago) by guez
Original Path: trunk/libf/dyn3d/nxgraro2.f
File size: 1921 byte(s)
Removed Numerical Recipes procedure "ran1". Replaced calls to "ran1"
in "inidissip" by calls to intrinsic procedures.

Split file "interface_surf.f90" into a file with a module containing
only variables, "interface_surf", and single-procedure files. Gathered
files into directory "Interface_surf".

Added argument "cdivu" to "gradiv" and "gradiv2", "cdivh" to
"divgrad2" and "divgrad", and "crot" to "nxgraro2" and
"nxgrarot". "dissip" now uses variables "cdivu", "cdivh" and "crot"
from module "inidissip_m", so it can pass them to "gradiv2",
etc. Thanks to this modification, we avoid a circular dependency
betwwen "inidissip.f90" and "gradiv2.f90", etc. The value -1. used by
"gradiv2", for instance, during computation of eigenvalues is not the
value "cdivu" computed by "inidissip".

Extracted procedure "start_inter_3d" from module "startdyn", to its
own module.

In "inidissip", unrolled loop on "ii". I find it clearer now.

Moved variables "matriceun", "matriceus", "matricevn", "matricevs",
"matrinvn" and "matrinvs" from module "parafilt" to module
"inifilr_m". Moved variables "jfiltnu", "jfiltnv", "jfiltsu",
"jfiltsv" from module "coefils" to module "inifilr_m".

1 guez 3 !
2     ! $Header: /home/cvsroot/LMDZ4/libf/dyn3d/nxgraro2.F,v 1.1.1.1 2004/05/19 12:53:06 lmdzadmin Exp $
3     !
4 guez 54 SUBROUTINE nxgraro2 (klevel,xcov, ycov, lr, grx, gry, crot )
5 guez 3 c
6     c P.Le Van .
7     c ***********************************************************
8     c lr
9     c calcul de ( nxgrad (rot) ) du vect. v ....
10     c
11     c xcov et ycov etant les compos. covariantes de v
12     c ***********************************************************
13     c xcov , ycov et lr sont des arguments d'entree pour le s-prog
14     c grx et gry sont des arguments de sortie pour le s-prog
15     c
16     c
17     use dimens_m
18     use paramet_m
19 guez 27 use filtreg_m, only: filtreg
20 guez 3 IMPLICIT NONE
21     c
22     c
23     c ...... variables en arguments .......
24     c
25     INTEGER klevel
26     REAL xcov( ip1jmp1,klevel ), ycov( ip1jm,klevel )
27     REAL grx( ip1jmp1,klevel ), gry( ip1jm,klevel )
28 guez 54 real, intent(in):: crot
29 guez 3 c
30     c ...... variables locales ........
31     c
32     REAL rot(ip1jm,llm) , signe, nugradrs
33 guez 26 INTEGER l,ij,iter
34     integer, intent(in):: lr
35 guez 3 c ........................................................
36     c
37     c
38     c
39     signe = (-1.)**lr
40     nugradrs = signe * crot
41     c
42     CALL SCOPY ( ip1jmp1* klevel, xcov, 1, grx, 1 )
43     CALL SCOPY ( ip1jm * klevel, ycov, 1, gry, 1 )
44     c
45     CALL rotatf ( klevel, grx, gry, rot )
46     c
47     CALL laplacien_rot ( klevel, rot, rot,grx,gry )
48    
49     c
50     c ..... Iteration de l'operateur laplacien_rotgam .....
51     c
52     DO iter = 1, lr -2
53     CALL laplacien_rotgam ( klevel, rot, rot )
54     ENDDO
55     c
56     c
57     CALL filtreg( rot, jjm, klevel, 2,1, .FALSE.,1)
58     CALL nxgrad ( klevel, rot, grx, gry )
59     c
60     DO l = 1, klevel
61     DO ij = 1, ip1jm
62     gry( ij,l ) = gry( ij,l ) * nugradrs
63     ENDDO
64     DO ij = 1, ip1jmp1
65     grx( ij,l ) = grx( ij,l ) * nugradrs
66     ENDDO
67     ENDDO
68     c
69     RETURN
70     END

  ViewVC Help
Powered by ViewVC 1.1.21