/[lmdze]/trunk/libf/dyn3d/Dissipation/divgrad.f
ViewVC logotype

Annotation of /trunk/libf/dyn3d/Dissipation/divgrad.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 54 - (hide annotations)
Tue Dec 6 15:07:04 2011 UTC (12 years, 6 months ago) by guez
Original Path: trunk/libf/dyn3d/divgrad.f
File size: 1413 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/divgrad.F,v 1.1.1.1 2004/05/19 12:53:05 lmdzadmin Exp $
3     !
4 guez 54 SUBROUTINE divgrad (klevel,h, lh, divgra, cdivh )
5 guez 3 use dimens_m
6     use paramet_m
7     use logic
8     use comgeom
9 guez 27 use filtreg_m, only: filtreg
10 guez 3 IMPLICIT NONE
11     c
12     c=======================================================================
13     c
14     c Auteur : P. Le Van
15     c ----------
16     c
17     c lh
18     c calcul de (div( grad )) de h .....
19     c h et lh sont des arguments d'entree pour le s-prog
20     c divgra est un argument de sortie pour le s-prog
21     c
22     c=======================================================================
23     c
24     c declarations:
25     c -------------
26     c
27     c
28     INTEGER klevel
29     REAL h( ip1jmp1,klevel ), divgra( ip1jmp1,klevel )
30 guez 54 real, intent(in):: cdivh
31 guez 3 c
32     REAL ghy(ip1jm,llm), ghx(ip1jmp1,llm)
33    
34 guez 26 INTEGER l,ij,iter
35     integer, intent(in):: lh
36 guez 3 c
37     c
38     c
39     CALL SCOPY ( ip1jmp1*klevel,h,1,divgra,1 )
40     c
41     DO 10 iter = 1,lh
42    
43     CALL filtreg ( divgra,jjp1,klevel,2,1,.true.,1 )
44    
45     CALL grad (klevel,divgra, ghx , ghy )
46     CALL diverg (klevel, ghx , ghy , divgra )
47    
48     CALL filtreg ( divgra,jjp1,klevel,2,1,.true.,1)
49    
50     DO 5 l = 1,klevel
51     DO 4 ij = 1, ip1jmp1
52     divgra( ij,l ) = - cdivh * divgra( ij,l )
53     4 CONTINUE
54     5 CONTINUE
55     c
56     10 CONTINUE
57     RETURN
58     END

  ViewVC Help
Powered by ViewVC 1.1.21