source: LMDZ.3.3/trunk/libf/dyn3d/fxyhyper.F @ 2

Last change on this file since 2 was 2, checked in by lmdz, 25 years ago

Initial revision

  • Property svn:eol-style set to native
  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 3.3 KB
Line 
1       SUBROUTINE fxyhyper ( yzoom, grossy, dzoomy,tauy,deltay  ,
2     ,                      xzoom, grossx, dzoomx,taux,
3     , rlatu,yprimu,rlatv,yprimv,rlatu1,  yprimu1,  rlatu2,  yprimu2  ,
4     , rlonu,xprimu,rlonv,xprimv,rlonm025,xprimm025,rlonp025,xprimp025)
5
6       IMPLICIT NONE
7c
8c      Auteur :  P. Le Van .
9c
10c      d'apres  formulations de R. Sadourny .
11c
12c
13c     Ce spg calcule les latitudes( routine fyhyp ) et longitudes( fxhyp )
14c            par des  fonctions  a tangente hyperbolique .
15c
16c     Il y a 3 parametres ,en plus des coordonnees du centre du zoom (xzoom
17c                      et  yzoom )   : 
18c
19c     a) le grossissement du zoom  :  grossy  ( en y ) et grossx ( en x )
20c     b) l' extension     du zoom  :  dzoomy  ( en y ) et dzoomx ( en x )
21c     c) la raideur       du zoom  :   tau   , ici  =  1.
22c
23c     N.B :   le produit ( grossissement * extension )  doit etre <  1.
24c    *******
25c     En plus , il y a un autre parametre , moins important mais quand
26c     meme utile , c'est  deltay , deplacement de la zone du zoom en
27c     latitude   :  Si  on deplace  de 10. degres vers le nord  ( deltay
28c      = 10.  dans inigeom ) .
29c
30c
31#include "dimensions.h"
32#include "paramet.h"
33
34
35c   .....  Arguments  ...
36c
37       REAL xzoom,yzoom,grossx,grossy,dzoomx,dzoomy,taux,tauy
38       REAL rlatu(jjp1), yprimu(jjp1),rlatv(jjm), yprimv(jjm),
39     , rlatu1(jjm), yprimu1(jjm), rlatu2(jjm), yprimu2(jjm)
40       REAL rlonu(iip1),xprimu(iip1),rlonv(iip1),xprimv(iip1),
41     , rlonm025(iip1),xprimm025(iip1), rlonp025(iip1),xprimp025(iip1)
42       REAL deltay
43
44c   ....   var. locales   .....
45c
46       INTEGER i,j
47c
48
49       CALL fyhyp ( yzoom, grossy, dzoomy,tauy, deltay ,
50     ,  rlatu, yprimu,rlatv,yprimv,rlatu2,yprimu2,rlatu1,yprimu1 )
51
52
53       CALL fxhyp(xzoom,grossx,dzoomx,taux,rlonm025,xprimm025,rlonv,
54     , xprimv,rlonu,xprimu,rlonp025,xprimp025 )
55
56
57        DO i = 1, iim
58          IF(rlonp025(i).LT.rlonv(i))  THEN
59           PRINT *,' Attention !  rlonp025 < rlonv',i
60            STOP
61          ENDIF
62
63          IF(rlonv(i).LT.rlonm025(i))  THEN
64           PRINT *,' Attention !  rlonm025 > rlonv',i
65            STOP
66          ENDIF
67
68          IF(rlonp025(i).GT.rlonu(i))  THEN
69           PRINT *,' Attention !  rlonp025 > rlonu',i
70            STOP
71          ENDIF
72        ENDDO
73
74        PRINT *,'  *** TEST DE COHERENCE  OK    POUR   FX **** '
75
76c
77       DO j = 1, jjm
78c
79       IF(rlatu1(j).LE.rlatu2(j))   THEN
80         PRINT *,' Attention ! rlatu1 < rlatu2 ',rlatu1(j), rlatu2(j),j
81         STOP 13
82       ENDIF
83c
84       IF(rlatu2(j).LE.rlatu(j+1))  THEN
85        PRINT *,' Attention ! rlatu2 < rlatup1 ',rlatu2(j),rlatu(j+1),j
86        STOP 14
87       ENDIF
88c
89       IF(rlatu(j).LE.rlatu1(j))    THEN
90        PRINT *,' Attention ! rlatu < rlatu1 ',rlatu(j),rlatu1(j),j
91        STOP 15
92       ENDIF
93c
94       IF(rlatv(j).LE.rlatu2(j))    THEN
95        PRINT *,' Attention ! rlatv < rlatu2 ',rlatv(j),rlatu2(j),j
96        STOP 16
97       ENDIF
98c
99       IF(rlatv(j).ge.rlatu1(j))    THEN
100        PRINT *,' Attention ! rlatv > rlatu1 ',rlatv(j),rlatu1(j),j
101        STOP 17
102       ENDIF
103c
104       IF(rlatv(j).ge.rlatu(j))     THEN
105        PRINT *,'Attention ! rlatv > rlatu ',rlatv(j),rlatu(j),j
106        STOP 18
107       ENDIF
108c
109       ENDDO
110c
111       PRINT *,'  *** TEST DE COHERENCE  OK    POUR   FY **** '
112
113c
114
115       RETURN
116       END
117
Note: See TracBrowser for help on using the repository browser.