source: LMDZ6/trunk/libf/dyn3d_common/test_period.f90 @ 5272

Last change on this file since 5272 was 5272, checked in by abarral, 23 hours ago

Turn paramet.h into a module

  • Property copyright set to
    Name of program: LMDZ
    Creation date: 1984
    Version: LMDZ5
    License: CeCILL version 2
    Holder: Laboratoire de m\'et\'eorologie dynamique, CNRS, UMR 8539
    See the license file in the root directory
  • 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!
4SUBROUTINE test_period ( ucov, vcov, teta, q, p, phis )
5  !
6  ! Auteur : P. Le Van
7  !    ---------
8  !  ....  Cette routine teste la periodicite en longitude des champs   ucov,
9  !                       teta, q , p et phis                 ..........
10  !
11  USE infotrac, ONLY : nqtot
12  USE dimensions_mod, ONLY: iim, llm
13  USE paramet_mod_h, ONLY: iip1, iip2, iip3, jjp1, llmp1, llmp2, llmm1, kftd, ip1jm, ip1jmp1, &
14          ip1jmi1, ijp1llm, ijmllm, mvar, jcfil, jcfllm
15IMPLICIT NONE
16  !
17  !    ......  Arguments   ......
18  !
19  REAL :: ucov(ip1jmp1,llm), vcov(ip1jm,llm), teta(ip1jmp1,llm) , &
20        q(ip1jmp1,llm,nqtot), p(ip1jmp1,llmp1), phis(ip1jmp1)
21  !
22  !   .....  Variables  locales  .....
23  !
24  INTEGER :: ij,l,nq
25  !
26  DO l = 1, llm
27     DO ij = 1, ip1jmp1, iip1
28      IF( ucov(ij,l).NE.ucov(ij+iim,l) )  THEN
29      PRINT *,'STOP dans test_period car ---  UCOV  ---  n est pas', &
30            ' periodique en longitude ! '
31      PRINT *,' l,  ij = ', l, ij, ij+iim
32      STOP
33      ENDIF
34      IF( teta(ij,l).NE.teta(ij+iim,l) )  THEN
35      PRINT *,'STOP dans test_period car ---  TETA  ---  n est pas', &
36            ' periodique en longitude ! '
37      PRINT *,' l,  ij = ', l, ij, ij+iim &
38            , teta(ij,l),   teta(ij+iim,l)
39      STOP
40      ENDIF
41     ENDDO
42
43     do ij=1,iim
44      if (teta(ij,l).ne.teta(1,l) &
45            .or.teta(ip1jm+ij,l).ne.teta(ip1jm+1,l) ) then
46      PRINT *,'STOP dans test_period car ---  TETA  ---  n est pas', &
47            ' constant aux poles ! '
48      print*,'teta(',1 ,',',l,')=',teta(1 ,l)
49      print*,'teta(',ij,',',l,')=',teta(ij,l)
50      print*,'teta(',ip1jm+1 ,',',l,')=',teta(ip1jm+1 ,l)
51      print*,'teta(',ip1jm+ij,',',l,')=',teta(ip1jm+ij,l)
52      stop
53      endif
54     enddo
55  ENDDO
56
57  !
58  DO l = 1, llm
59     DO ij = 1, ip1jm, iip1
60      IF( vcov(ij,l).NE.vcov(ij+iim,l) )  THEN
61      PRINT *,'STOP dans test_period car ---  VCOV  ---  n est pas', &
62            ' periodique en longitude !'
63      PRINT *,' l,  ij = ', l, ij, ij+iim,vcov(ij+iim,l),vcov(ij,l)
64      vcov(ij+iim,l)=vcov(ij,l)
65      ! STOP
66      ENDIF
67     ENDDO
68  ENDDO
69
70  !
71  DO nq =1, nqtot
72    DO l =1, llm
73      DO ij = 1, ip1jmp1, iip1
74      IF( q(ij,l,nq).NE.q(ij+iim,l,nq) )  THEN
75      PRINT *,'STOP dans test_period car ---  Q  ---  n est pas ', &
76            'periodique en longitude !'
77      PRINT *,' nq , l,  ij = ', nq, l, ij, ij+iim
78      STOP
79      ENDIF
80      ENDDO
81    ENDDO
82  ENDDO
83  !
84   DO l = 1, llm
85     DO ij = 1, ip1jmp1, iip1
86      IF( p(ij,l).NE.p(ij+iim,l) )  THEN
87      PRINT *,'STOP dans test_period car ---  P  ---  n est pas', &
88            ' periodique en longitude !'
89      PRINT *,' l ij = ',l, ij, ij+iim
90      STOP
91      ENDIF
92      IF( phis(ij).NE.phis(ij+iim) )  THEN
93      PRINT *,'STOP dans test_period car ---  PHIS  ---  n est pas', &
94            ' periodique en longitude !  l, IJ = ', l, ij,ij+iim
95      PRINT *,' ij = ', ij, ij+iim
96      STOP
97      ENDIF
98     ENDDO
99     do ij=1,iim
100      if (p(ij,l).ne.p(1,l) &
101            .or.p(ip1jm+ij,l).ne.p(ip1jm+1,l) ) then
102      PRINT *,'STOP dans test_period car ---  P     ---  n est pas', &
103            ' constant aux poles ! '
104      print*,'p(',1 ,',',l,')=',p(1 ,l)
105      print*,'p(',ij,',',l,')=',p(ij,l)
106      print*,'p(',ip1jm+1 ,',',l,')=',p(ip1jm+1 ,l)
107      print*,'p(',ip1jm+ij,',',l,')=',p(ip1jm+ij,l)
108      stop
109      endif
110     enddo
111   ENDDO
112  !
113  !
114     RETURN
115END SUBROUTINE test_period
Note: See TracBrowser for help on using the repository browser.