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

Contents of /trunk/libf/dyn3d/fxyhyper.f90

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3 - (show annotations)
Wed Feb 27 13:16:39 2008 UTC (16 years, 2 months ago) by guez
File size: 3960 byte(s)
Initial import
1 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