LMDZ
test_period.F
Go to the documentation of this file.
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 #include "dimensions.h"
16 #include "paramet.h"
17 c
18 c ...... Arguments ......
19 c
20  REAL ucov(ip1jmp1,llm), vcov(ip1jm,llm), teta(ip1jmp1,llm) ,
22 c
23 c ..... Variables locales .....
24 c
25  INTEGER ij,l,nq
26 c
27  DO l = 1, llm
28  DO ij = 1, ip1jmp1, iip1
29  IF( ucov(ij,l).NE.ucov(ij+iim,l) ) THEN
30  print *,'STOP dans test_period car --- UCOV --- n est pas',
31  , ' periodique en longitude ! '
32  print *,' l, ij = ', l, ij, ij+iim
33  stop
34  ENDIF
35  IF( teta(ij,l).NE.teta(ij+iim,l) ) THEN
36  print *,'STOP dans test_period car --- TETA --- n est pas',
37  , ' periodique en longitude ! '
38  print *,' l, ij = ', l, ij, ij+iim
39  , , teta(ij,l), teta(ij+iim,l)
40  stop
41  ENDIF
42  ENDDO
43 
44  do ij=1,iim
45  if (teta(ij,l).ne.teta(1,l)
46  s .or.teta(ip1jm+ij,l).ne.teta(ip1jm+1,l) ) then
47  print *,'STOP dans test_period car --- TETA --- n est pas',
48  , ' constant aux poles ! '
49  print*,'teta(',1 ,',',l,')=',teta(1 ,l)
50  print*,'teta(',ij,',',l,')=',teta(ij,l)
51  print*,'teta(',ip1jm+1 ,',',l,')=',teta(ip1jm+1 ,l)
52  print*,'teta(',ip1jm+ij,',',l,')=',teta(ip1jm+ij,l)
53  stop
54  endif
55  enddo
56  ENDDO
57 
58 c
59  DO l = 1, llm
60  DO ij = 1, ip1jm, iip1
61  IF( vcov(ij,l).NE.vcov(ij+iim,l) ) THEN
62  print *,'STOP dans test_period car --- VCOV --- n est pas',
63  , ' periodique en longitude !'
64  print *,' l, ij = ', l, ij, ij+iim,vcov(ij+iim,l),vcov(ij,l)
65  vcov(ij+iim,l)=vcov(ij,l)
66 c STOP
67  ENDIF
68  ENDDO
69  ENDDO
70 
71 c
72  DO nq =1, nqtot
73  DO l =1, llm
74  DO ij = 1, ip1jmp1, iip1
75  IF( q(ij,l,nq).NE.q(ij+iim,l,nq) ) THEN
76  print *,'STOP dans test_period car --- Q --- n est pas ',
77  , 'periodique en longitude !'
78  print *,' nq , l, ij = ', nq, l, ij, ij+iim
79  stop
80  ENDIF
81  ENDDO
82  ENDDO
83  ENDDO
84 c
85  DO l = 1, llm
86  DO ij = 1, ip1jmp1, iip1
87  IF( p(ij,l).NE.p(ij+iim,l) ) THEN
88  print *,'STOP dans test_period car --- P --- n est pas',
89  , ' periodique en longitude !'
90  print *,' l ij = ',l, ij, ij+iim
91  stop
92  ENDIF
93  IF( phis(ij).NE.phis(ij+iim) ) THEN
94  print *,'STOP dans test_period car --- PHIS --- n est pas',
95  , ' periodique en longitude ! l, IJ = ', l, ij,ij+iim
96  print *,' ij = ', ij, ij+iim
97  stop
98  ENDIF
99  ENDDO
100  do ij=1,iim
101  if (p(ij,l).ne.p(1,l)
102  s .or.p(ip1jm+ij,l).ne.p(ip1jm+1,l) ) then
103  print *,'STOP dans test_period car --- P --- n est pas',
104  , ' constant aux poles ! '
105  print*,'p(',1 ,',',l,')=',p(1 ,l)
106  print*,'p(',ij,',',l,')=',p(ij,l)
107  print*,'p(',ip1jm+1 ,',',l,')=',p(ip1jm+1 ,l)
108  print*,'p(',ip1jm+ij,',',l,')=',p(ip1jm+ij,l)
109  stop
110  endif
111  enddo
112  ENDDO
113 c
114 c
115  RETURN
116  END
!$Header llmm1 INTEGER ip1jmp1
Definition: paramet.h:14
subroutine test_period(ucov, vcov, teta, q, p, phis)
Definition: test_period.F:5
!$Header llmp1
Definition: paramet.h:14
!$Id Turb_fcg_gcssold get_uvd hqturb_gcssold endif!large scale llm day day1 day day1 *dt_toga endif!time annee_ref dt_toga u_toga vq_toga w_prof vq_prof llm day day1 day day1 *dt_dice endif!time annee_ref dt_dice swup_dice vg_dice omega_dice tg_prof vg_profd w_profd omega_profd!do llm!print llm l llm
integer, save nqtot
Definition: infotrac.F90:6
!$Header llmm1 INTEGER ip1jm
Definition: paramet.h:14
!$Id ***************************************!ECRITURE DU phis
Definition: write_histrac.h:9
c c zjulian c cym CALL iim cym klev iim
Definition: ini_bilKP_ave.h:24