/[lmdze]/trunk/dyn3d/fxyhyper.f90
ViewVC logotype

Annotation of /trunk/dyn3d/fxyhyper.f90

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3 - (hide annotations)
Wed Feb 27 13:16:39 2008 UTC (16 years, 3 months ago) by guez
Original Path: trunk/libf/dyn3d/fxyhyper.f90
File size: 3960 byte(s)
Initial import
1 guez 3 SUBROUTINE fxyhyper ( yzoom, grossy, dzoomy,tauy , &
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     ! From dyn3d/fxyhyper.F,v 1.1.1.1 2004/05/19 12:53:06
7    
8     use dimens_m
9     use paramet_m
10     IMPLICIT NONE
11     !
12     ! Auteur : P. Le Van .
13     !
14     ! d'apres formulations de R. Sadourny .
15     !
16     !
17     ! Ce spg calcule les latitudes( routine fyhyp ) et longitudes( fxhyp )
18     ! par des fonctions a tangente hyperbolique .
19     !
20     ! Il y a 3 parametres ,en plus des coordonnees du centre du zoom (xzoom
21     ! et yzoom ) :
22     !
23     ! a) le grossissement du zoom : grossy ( en y ) et grossx ( en x )
24     ! b) l' extension du zoom : dzoomy ( en y ) et dzoomx ( en x )
25     ! c) la raideur de la transition du zoom : taux et tauy
26     !
27     ! N.B : Il vaut mieux avoir : grossx * dzoomx < pi ( radians )
28     ! ******
29     ! et grossy * dzoomy < pi/2 ( radians )
30     !
31    
32    
33     ! ..... Arguments ...
34     !
35     REAL xzoom,yzoom,grossx,grossy,dzoomx,dzoomy,taux,tauy
36     REAL rlatu(jjp1), yprimu(jjp1),rlatv(jjm), yprimv(jjm), &
37     rlatu1(jjm), yprimu1(jjm), rlatu2(jjm), yprimu2(jjm)
38     REAL rlonu(iip1),xprimu(iip1),rlonv(iip1),xprimv(iip1), &
39     rlonm025(iip1),xprimm025(iip1), rlonp025(iip1),xprimp025(iip1)
40     double precision dxmin, dxmax , dymin, dymax
41    
42     ! .... var. locales .....
43     !
44     INTEGER i,j
45     !
46    
47     CALL fyhyp ( yzoom, grossy, dzoomy,tauy , &
48     rlatu, yprimu,rlatv,yprimv,rlatu2,yprimu2,rlatu1,yprimu1 , &
49     dymin,dymax )
50    
51     CALL fxhyp(xzoom,grossx,dzoomx,taux,rlonm025,xprimm025,rlonv, &
52     xprimv,rlonu,xprimu,rlonp025,xprimp025 , dxmin,dxmax )
53    
54    
55     DO i = 1, iip1
56     IF(rlonp025(i).LT.rlonv(i)) THEN
57     print *, ' Attention ! rlonp025 < rlonv',i
58     STOP
59     ENDIF
60    
61     IF(rlonv(i).LT.rlonm025(i)) THEN
62     print *, ' Attention ! rlonm025 > rlonv',i
63     STOP
64     ENDIF
65    
66     IF(rlonp025(i).GT.rlonu(i)) THEN
67     print *, ' Attention ! rlonp025 > rlonu',i
68     STOP
69     ENDIF
70     ENDDO
71    
72     print *, ' *** TEST DE COHERENCE OK POUR FX **** '
73    
74     !
75     DO j = 1, jjm
76     !
77     IF(rlatu1(j).LE.rlatu2(j)) THEN
78     print *,'Attention ! rlatu1 < rlatu2 ',rlatu1(j), rlatu2(j),j
79     STOP 13
80     ENDIF
81     !
82     IF(rlatu2(j).LE.rlatu(j+1)) THEN
83     print *,'Attention ! rlatu2 < rlatup1 ',rlatu2(j),rlatu(j+1),j
84     STOP 14
85     ENDIF
86     !
87     IF(rlatu(j).LE.rlatu1(j)) THEN
88     print *,' Attention ! rlatu < rlatu1 ',rlatu(j),rlatu1(j),j
89     STOP 15
90     ENDIF
91     !
92     IF(rlatv(j).LE.rlatu2(j)) THEN
93     print *,' Attention ! rlatv < rlatu2 ',rlatv(j),rlatu2(j),j
94     STOP 16
95     ENDIF
96     !
97     IF(rlatv(j).ge.rlatu1(j)) THEN
98     print *,' Attention ! rlatv > rlatu1 ',rlatv(j),rlatu1(j),j
99     STOP 17
100     ENDIF
101     !
102     IF(rlatv(j).ge.rlatu(j)) THEN
103     print *, ' Attention ! rlatv > rlatu ',rlatv(j),rlatu(j),j
104     STOP 18
105     ENDIF
106     !
107     ENDDO
108     !
109     print *, ' *** TEST DE COHERENCE OK POUR FY **** '
110     !
111     print 18
112     print *, ' Latitudes '
113     print *, ' *********** '
114     print 18
115     print 3, dymin, dymax
116     print *, ' Si cette derniere est trop lache , modifiez les parametres grossism , tau , dzoom pour Y et repasser ! '
117     !
118     print 18
119     print *, ' Longitudes '
120     print *, ' ************ '
121     print 18
122     print 3, dxmin, dxmax
123     print *, ' Si cette derniere est trop lache , modifiez les parametres grossism , tau , dzoom pour Y et repasser ! '
124     print 18
125    
126     3 Format(1x, ' Au centre du zoom , la longueur de la maille est', &
127     ' d environ ',f0.2 ,' degres ', /, &
128     ' alors que la maille en dehors de la zone du zoom est ', &
129     "d'environ", f0.2,' degres ' )
130     18 FORMAT(/)
131    
132     END SUBROUTINE fxyhyper

  ViewVC Help
Powered by ViewVC 1.1.21