GCC Code Coverage Report


Directory: ./
File: filtrez/inifgn.f
Date: 2022-01-11 19:19:34
Exec Total Coverage
Lines: 46 46 100.0%
Branches: 24 24 100.0%

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