GCC Code Coverage Report


Directory: ./
File: dyn3d_common/test_period.f
Date: 2022-01-11 19:19:34
Exec Total Coverage
Lines: 0 60 0.0%
Branches: 0 42 0.0%

Line Branch Exec Source
1 !
2 ! $Header$
3 !
4 SUBROUTINE test_period ( ucov, vcov, teta, q, p, phis )
5 c
6 c Auteur : P. Le Van
7 c ---------
8 c .... Cette routine teste la periodicite en longitude des champs ucov,
9 c teta, q , p et phis ..........
10 c
11 USE infotrac, ONLY : nqtot
12 c
13 c IMPLICIT NONE
14 c
15 !-----------------------------------------------------------------------
16 ! INCLUDE 'dimensions.h'
17 !
18 ! dimensions.h contient les dimensions du modele
19 ! ndm est tel que iim=2**ndm
20 !-----------------------------------------------------------------------
21
22 INTEGER iim,jjm,llm,ndm
23
24 PARAMETER (iim= 32,jjm=32,llm=39,ndm=1)
25
26 !-----------------------------------------------------------------------
27 !
28 ! $Header$
29 !
30 !
31 ! ATTENTION!!!!: ce fichier include est compatible format fixe/format libre
32 ! veillez n'utiliser que des ! pour les commentaires
33 ! et bien positionner les & des lignes de continuation
34 ! (les placer en colonne 6 et en colonne 73)
35 !
36 !
37 !-----------------------------------------------------------------------
38 ! INCLUDE 'paramet.h'
39
40 INTEGER iip1,iip2,iip3,jjp1,llmp1,llmp2,llmm1
41 INTEGER kftd,ip1jm,ip1jmp1,ip1jmi1,ijp1llm
42 INTEGER ijmllm,mvar
43 INTEGER jcfil,jcfllm
44
45 PARAMETER( iip1= iim+1,iip2=iim+2,iip3=iim+3 &
46 & ,jjp1=jjm+1-1/jjm)
47 PARAMETER( llmp1 = llm+1, llmp2 = llm+2, llmm1 = llm-1 )
48 PARAMETER( kftd = iim/2 -ndm )
49 PARAMETER( ip1jm = iip1*jjm, ip1jmp1= iip1*jjp1 )
50 PARAMETER( ip1jmi1= ip1jm - iip1 )
51 PARAMETER( ijp1llm= ip1jmp1 * llm, ijmllm= ip1jm * llm )
52 PARAMETER( mvar= ip1jmp1*( 2*llm+1) + ijmllm )
53 PARAMETER( jcfil=jjm/2+5, jcfllm=jcfil*llm )
54
55 !-----------------------------------------------------------------------
56 c
57 c ...... Arguments ......
58 c
59 REAL ucov(ip1jmp1,llm), vcov(ip1jm,llm), teta(ip1jmp1,llm) ,
60 , q(ip1jmp1,llm,nqtot), p(ip1jmp1,llmp1), phis(ip1jmp1)
61 c
62 c ..... Variables locales .....
63 c
64 INTEGER ij,l,nq
65 c
66 DO l = 1, llm
67 DO ij = 1, ip1jmp1, iip1
68 IF( ucov(ij,l).NE.ucov(ij+iim,l) ) THEN
69 PRINT *,'STOP dans test_period car --- UCOV --- n est pas',
70 , ' periodique en longitude ! '
71 PRINT *,' l, ij = ', l, ij, ij+iim
72 STOP
73 ENDIF
74 IF( teta(ij,l).NE.teta(ij+iim,l) ) THEN
75 PRINT *,'STOP dans test_period car --- TETA --- n est pas',
76 , ' periodique en longitude ! '
77 PRINT *,' l, ij = ', l, ij, ij+iim
78 , , teta(ij,l), teta(ij+iim,l)
79 STOP
80 ENDIF
81 ENDDO
82
83 do ij=1,iim
84 if (teta(ij,l).ne.teta(1,l)
85 s .or.teta(ip1jm+ij,l).ne.teta(ip1jm+1,l) ) then
86 PRINT *,'STOP dans test_period car --- TETA --- n est pas',
87 , ' constant aux poles ! '
88 print*,'teta(',1 ,',',l,')=',teta(1 ,l)
89 print*,'teta(',ij,',',l,')=',teta(ij,l)
90 print*,'teta(',ip1jm+1 ,',',l,')=',teta(ip1jm+1 ,l)
91 print*,'teta(',ip1jm+ij,',',l,')=',teta(ip1jm+ij,l)
92 stop
93 endif
94 enddo
95 ENDDO
96
97 c
98 DO l = 1, llm
99 DO ij = 1, ip1jm, iip1
100 IF( vcov(ij,l).NE.vcov(ij+iim,l) ) THEN
101 PRINT *,'STOP dans test_period car --- VCOV --- n est pas',
102 , ' periodique en longitude !'
103 PRINT *,' l, ij = ', l, ij, ij+iim,vcov(ij+iim,l),vcov(ij,l)
104 vcov(ij+iim,l)=vcov(ij,l)
105 c STOP
106 ENDIF
107 ENDDO
108 ENDDO
109
110 c
111 DO nq =1, nqtot
112 DO l =1, llm
113 DO ij = 1, ip1jmp1, iip1
114 IF( q(ij,l,nq).NE.q(ij+iim,l,nq) ) THEN
115 PRINT *,'STOP dans test_period car --- Q --- n est pas ',
116 , 'periodique en longitude !'
117 PRINT *,' nq , l, ij = ', nq, l, ij, ij+iim
118 STOP
119 ENDIF
120 ENDDO
121 ENDDO
122 ENDDO
123 c
124 DO l = 1, llm
125 DO ij = 1, ip1jmp1, iip1
126 IF( p(ij,l).NE.p(ij+iim,l) ) THEN
127 PRINT *,'STOP dans test_period car --- P --- n est pas',
128 , ' periodique en longitude !'
129 PRINT *,' l ij = ',l, ij, ij+iim
130 STOP
131 ENDIF
132 IF( phis(ij).NE.phis(ij+iim) ) THEN
133 PRINT *,'STOP dans test_period car --- PHIS --- n est pas',
134 , ' periodique en longitude ! l, IJ = ', l, ij,ij+iim
135 PRINT *,' ij = ', ij, ij+iim
136 STOP
137 ENDIF
138 ENDDO
139 do ij=1,iim
140 if (p(ij,l).ne.p(1,l)
141 s .or.p(ip1jm+ij,l).ne.p(ip1jm+1,l) ) then
142 PRINT *,'STOP dans test_period car --- P --- n est pas',
143 , ' constant aux poles ! '
144 print*,'p(',1 ,',',l,')=',p(1 ,l)
145 print*,'p(',ij,',',l,')=',p(ij,l)
146 print*,'p(',ip1jm+1 ,',',l,')=',p(ip1jm+1 ,l)
147 print*,'p(',ip1jm+ij,',',l,')=',p(ip1jm+ij,l)
148 stop
149 endif
150 enddo
151 ENDDO
152 c
153 c
154 RETURN
155 END
156