/[lmdze]/trunk/filtrez/inifgn.f
ViewVC logotype

Annotation of /trunk/filtrez/inifgn.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 25 - (hide annotations)
Fri Mar 5 16:43:45 2010 UTC (14 years, 2 months ago) by guez
Original Path: trunk/libf/filtrez/inifgn.f
File size: 2215 byte(s)
Simplified "etat0_lim.sh" and "gcm.sh" because the full versions
depended on personal arrangements for directories and machines.

Translated included files into modules. Encapsulated procedures into modules.

Moved variables from module "comgeom" to local variables of
"inigeom". Deleted some unused variables in "comgeom".

Moved variable "day_ini" from module "temps" to module "dynetat0_m".

Removed useless test on variable "time" and useless "close" statement
in procedure "leapfrog".

Removed useless call to "inigeom" in procedure "limit".

1 guez 3 !
2     ! $Header: /home/cvsroot/LMDZ4/libf/filtrez/inifgn.F,v 1.1.1.1 2004/05/19 12:53:09 lmdzadmin Exp $
3     !
4     SUBROUTINE inifgn(dv)
5     c
6     c ... H.Upadyaya , O.Sharma ...
7     c
8     use dimens_m
9     use paramet_m
10     use comgeom
11     use serre
12 guez 25 use coefils
13 guez 3 IMPLICIT NONE
14     c
15    
16     c
17     REAL vec(iim,iim),vec1(iim,iim)
18     REAL dlonu(iim),dlonv(iim)
19     REAL du(iim),dv(iim),d(iim)
20     REAL pi
21     INTEGER i,j,k,imm1,nrot
22     C
23     c
24     EXTERNAL SSUM, acc, jacobi
25     CC EXTERNAL eigen
26     REAL SSUM
27     c
28    
29     imm1 = iim -1
30     pi = 2.* ASIN(1.)
31     C
32     DO 5 i=1,iim
33     dlonu(i)= xprimu( i )
34     dlonv(i)= xprimv( i )
35     5 CONTINUE
36    
37     DO 12 i=1,iim
38     sddv(i) = SQRT(dlonv(i))
39     sddu(i) = SQRT(dlonu(i))
40     unsddu(i) = 1./sddu(i)
41     unsddv(i) = 1./sddv(i)
42     12 CONTINUE
43     C
44     DO 17 j=1,iim
45     DO 17 i=1,iim
46     vec(i,j) = 0.
47     vec1(i,j) = 0.
48     eignfnv(i,j) = 0.
49     eignfnu(i,j) = 0.
50     17 CONTINUE
51     c
52     c
53     eignfnv(1,1) = -1.
54     eignfnv(iim,1) = 1.
55     DO 20 i=1,imm1
56     eignfnv(i+1,i+1)= -1.
57     eignfnv(i,i+1) = 1.
58     20 CONTINUE
59     DO 25 j=1,iim
60     DO 25 i=1,iim
61     eignfnv(i,j) = eignfnv(i,j)/(sddu(i)*sddv(j))
62     25 CONTINUE
63     DO 30 j=1,iim
64     DO 30 i=1,iim
65     eignfnu(i,j) = -eignfnv(j,i)
66     30 CONTINUE
67     c
68     DO j = 1, iim
69     DO i = 1, iim
70     vec (i,j) = 0.0
71     vec1(i,j) = 0.0
72     DO k = 1, iim
73     vec (i,j) = vec(i,j) + eignfnu(i,k) * eignfnv(k,j)
74     vec1(i,j) = vec1(i,j) + eignfnv(i,k) * eignfnu(k,j)
75     ENDDO
76     ENDDO
77     ENDDO
78    
79     c
80     CALL jacobi(vec,iim,iim,dv,eignfnv,nrot)
81     CALL acc(eignfnv,d,iim)
82     CALL eigen_sort(dv,eignfnv,iim,iim)
83     c
84     CALL jacobi(vec1,iim,iim,du,eignfnu,nrot)
85     CALL acc(eignfnu,d,iim)
86     CALL eigen_sort(du,eignfnu,iim,iim)
87    
88     cc ancienne version avec appels IMSL
89     c
90     c CALL MXM(eignfnu,iim,eignfnv,iim,vec,iim)
91     c CALL MXM(eignfnv,iim,eignfnu,iim,vec1,iim)
92     c CALL EVCSF(iim,vec,iim,dv,eignfnv,iim)
93     c CALL acc(eignfnv,d,iim)
94     c CALL eigen(eignfnv,dv)
95     c
96     c CALL EVCSF(iim,vec1,iim,du,eignfnu,iim)
97     c CALL acc(eignfnu,d,iim)
98     c CALL eigen(eignfnu,du)
99    
100     RETURN
101     END
102    

  ViewVC Help
Powered by ViewVC 1.1.21