source: LMDZ4/branches/IPSL-CM4_IPCC_patches/libf/dyn3d/test_period.F @ 5306

Last change on this file since 5306 was 524, checked in by lmdzadmin, 20 years ago

Initial revision

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 3.4 KB
Line 
1!
2! $Header$
3!
4      SUBROUTINE test_period ( ucov, vcov, teta, q, p, phis )
5c
6c     Auteur : P. Le Van 
7c    ---------
8c  ....  Cette routine teste la periodicite en longitude des champs   ucov,
9c                           teta, q , p et phis                 ..........
10c
11c     IMPLICIT NONE
12c
13#include "dimensions.h"
14#include "paramet.h"
15c
16c    ......  Arguments   ......
17c
18      REAL ucov(ip1jmp1,llm), vcov(ip1jm,llm), teta(ip1jmp1,llm) ,
19     ,      q(ip1jmp1,llm,nqmx), p(ip1jmp1,llmp1), phis(ip1jmp1)
20c
21c   .....  Variables  locales  .....
22c
23      INTEGER ij,l,nq
24c
25      DO l = 1, llm
26         DO ij = 1, ip1jmp1, iip1
27          IF( ucov(ij,l).NE.ucov(ij+iim,l) )  THEN
28          PRINT *,'STOP dans test_period car ---  UCOV  ---  n est pas', 
29     ,  ' periodique en longitude ! '
30          PRINT *,' l,  ij = ', l, ij, ij+iim
31          STOP
32          ENDIF
33          IF( teta(ij,l).NE.teta(ij+iim,l) )  THEN
34          PRINT *,'STOP dans test_period car ---  TETA  ---  n est pas', 
35     ,   ' periodique en longitude ! '
36          PRINT *,' l,  ij = ', l, ij, ij+iim
37     ,      , teta(ij,l),   teta(ij+iim,l)
38          STOP
39          ENDIF
40         ENDDO
41
42         do ij=1,iim
43          if (teta(ij,l).ne.teta(1,l)
44     s     .or.teta(ip1jm+ij,l).ne.teta(ip1jm+1,l) ) then
45          PRINT *,'STOP dans test_period car ---  TETA  ---  n est pas', 
46     ,  ' constant aux poles ! '
47          print*,'teta(',1 ,',',l,')=',teta(1 ,l)
48          print*,'teta(',ij,',',l,')=',teta(ij,l)
49          print*,'teta(',ip1jm+1 ,',',l,')=',teta(ip1jm+1 ,l)
50          print*,'teta(',ip1jm+ij,',',l,')=',teta(ip1jm+ij,l)
51          stop
52          endif
53         enddo
54      ENDDO
55
56c
57      DO l = 1, llm
58         DO ij = 1, ip1jm, iip1
59          IF( vcov(ij,l).NE.vcov(ij+iim,l) )  THEN
60          PRINT *,'STOP dans test_period car ---  VCOV  ---  n est pas', 
61     ,   ' periodique en longitude !'
62          PRINT *,' l,  ij = ', l, ij, ij+iim,vcov(ij+iim,l),vcov(ij,l)
63          vcov(ij+iim,l)=vcov(ij,l)
64c         STOP
65          ENDIF
66         ENDDO
67      ENDDO
68     
69c
70      DO nq =1, nqmx
71        DO l =1, llm
72          DO ij = 1, ip1jmp1, iip1
73          IF( q(ij,l,nq).NE.q(ij+iim,l,nq) )  THEN
74          PRINT *,'STOP dans test_period car ---  Q  ---  n est pas ', 
75     ,   'periodique en longitude !'
76          PRINT *,' nq , l,  ij = ', nq, l, ij, ij+iim
77          STOP
78          ENDIF
79          ENDDO
80        ENDDO
81      ENDDO
82c
83       DO l = 1, llm
84         DO ij = 1, ip1jmp1, iip1
85          IF( p(ij,l).NE.p(ij+iim,l) )  THEN
86          PRINT *,'STOP dans test_period car ---  P  ---  n est pas', 
87     ,    ' periodique en longitude !'
88          PRINT *,' l ij = ',l, ij, ij+iim
89          STOP
90          ENDIF
91          IF( phis(ij).NE.phis(ij+iim) )  THEN
92          PRINT *,'STOP dans test_period car ---  PHIS  ---  n est pas', 
93     ,   ' periodique en longitude !  l, IJ = ', l, ij,ij+iim
94          PRINT *,' ij = ', ij, ij+iim
95          STOP
96          ENDIF
97         ENDDO
98         do ij=1,iim
99          if (p(ij,l).ne.p(1,l)
100     s     .or.p(ip1jm+ij,l).ne.p(ip1jm+1,l) ) then
101          PRINT *,'STOP dans test_period car ---  P     ---  n est pas', 
102     ,  ' constant aux poles ! '
103          print*,'p(',1 ,',',l,')=',p(1 ,l)
104          print*,'p(',ij,',',l,')=',p(ij,l)
105          print*,'p(',ip1jm+1 ,',',l,')=',p(ip1jm+1 ,l)
106          print*,'p(',ip1jm+ij,',',l,')=',p(ip1jm+ij,l)
107          stop
108          endif
109         enddo
110       ENDDO
111c
112c
113         RETURN
114         END
Note: See TracBrowser for help on using the repository browser.