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

Annotation of /trunk/filtrez/inifgn.f

Parent Directory Parent Directory | Revision Log Revision Log


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

  ViewVC Help
Powered by ViewVC 1.1.21