/[lmdze]/trunk/libf/dyn3d/nxgrarot.f
ViewVC logotype

Contents of /trunk/libf/dyn3d/nxgrarot.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 54 - (show annotations)
Tue Dec 6 15:07:04 2011 UTC (12 years, 5 months ago) by guez
File size: 1506 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 !
2 ! $Header: /home/cvsroot/LMDZ4/libf/dyn3d/nxgrarot.F,v 1.1.1.1 2004/05/19 12:53:06 lmdzadmin Exp $
3 !
4 SUBROUTINE nxgrarot (klevel,xcov, ycov, lr, grx, gry, crot )
5 c ***********************************************************
6 c
7 c Auteur : P.Le Van
8 c
9 c lr
10 c calcul de ( nXgrad (rot) ) du vect. v ....
11 c
12 c xcov et ycov etant les compos. covariantes de v
13 c ***********************************************************
14 c xcov , ycov et lr sont des arguments d'entree pour le s-prog
15 c grx et gry sont des arguments de sortie pour le s-prog
16 c
17 c
18 use dimens_m
19 use paramet_m
20 use logic
21 use filtreg_m, only: filtreg
22 IMPLICIT NONE
23 c
24 c
25 c
26 INTEGER klevel
27 REAL xcov( ip1jmp1,klevel ), ycov( ip1jm,klevel )
28 REAL grx( ip1jmp1,klevel ), gry( ip1jm,klevel )
29 real, intent(in):: crot
30 c
31 REAL rot(ip1jm,llm)
32
33 INTEGER l,ij,iter
34 integer, intent(in):: lr
35 c
36 c
37 c
38 CALL SCOPY ( ip1jmp1*klevel, xcov, 1, grx, 1 )
39 CALL SCOPY ( ip1jm*klevel, ycov, 1, gry, 1 )
40 c
41 DO 10 iter = 1,lr
42 CALL rotat (klevel,grx, gry, rot )
43 CALL filtreg( rot, jjm, klevel, 2,1, .false.,2)
44 CALL nxgrad (klevel,rot, grx, gry )
45 c
46 DO 5 l = 1, klevel
47 DO 2 ij = 1, ip1jm
48 gry( ij,l ) = - gry( ij,l ) * crot
49 2 CONTINUE
50 DO 3 ij = 1, ip1jmp1
51 grx( ij,l ) = - grx( ij,l ) * crot
52 3 CONTINUE
53 5 CONTINUE
54 c
55 10 CONTINUE
56 RETURN
57 END

  ViewVC Help
Powered by ViewVC 1.1.21