Parent Directory | Revision Log
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/divgrad.F,v 1.1.1.1 2004/05/19 12:53:05 lmdzadmin Exp $ |
3 | ! |
4 | SUBROUTINE divgrad (klevel,h, lh, divgra, cdivh ) |
5 | use dimens_m |
6 | use paramet_m |
7 | use logic |
8 | use comgeom |
9 | use filtreg_m, only: filtreg |
10 | 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 | real, intent(in):: cdivh |
31 | c |
32 | REAL ghy(ip1jm,llm), ghx(ip1jmp1,llm) |
33 | |
34 | INTEGER l,ij,iter |
35 | integer, intent(in):: lh |
36 | 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 |