/[lmdze]/trunk/libf/dyn3d/fxysinus.f
ViewVC logotype

Contents of /trunk/libf/dyn3d/fxysinus.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 39 - (show annotations)
Tue Jan 25 15:11:05 2011 UTC (13 years, 3 months ago) by guez
File size: 3545 byte(s)
"pi" comes from "nr_util". Removed subroutine "initialize" in module
"comconst".

Copied the content of "fxy_sin.h" into "fxysinus", instead of getting
it from an "include" line. Removed file "fxy_sin.h".

"ps" has rank 2 in "gcm" and "dynetat0".

Assumed-shape for argument "q" of "integrd".

1 !
2 ! $Header: /home/cvsroot/LMDZ4/libf/dyn3d/fxysinus.F,v 1.1.1.1 2004/05/19 12:53:06 lmdzadmin Exp $
3 !
4 SUBROUTINE fxysinus (rlatu,yprimu,rlatv,yprimv,rlatu1,yprimu1,
5 , rlatu2,yprimu2,
6 , rlonu,xprimu,rlonv,xprimv,rlonm025,xprimm025,rlonp025,xprimp025)
7
8
9 use dimens_m
10 use paramet_m
11 use comconst
12 use nr_util, only: pi
13 IMPLICIT NONE
14 c
15 c Calcul des longitudes et des latitudes pour une fonction f(x,y)
16 c avec y = Asin( j ) .
17 c
18 c Auteur : P. Le Van
19 c
20 c
21
22 INTEGER i,j
23
24 REAL rlatu(jjp1), yprimu(jjp1),rlatv(jjm), yprimv(jjm),
25 , rlatu1(jjm), yprimu1(jjm), rlatu2(jjm), yprimu2(jjm)
26 REAL rlonu(iip1),xprimu(iip1),rlonv(iip1),xprimv(iip1),
27 , rlonm025(iip1),xprimm025(iip1), rlonp025(iip1),xprimp025(iip1)
28
29 !
30 ! $Header: /home/cvsroot/LMDZ4/libf/grid/fxy_sin.h,v 1.1.1.1 2004/05/19 12:53:05 lmdzadmin Exp $
31 !
32 c-----------------------------------------------------------------------
33 c INCLUDE 'fxyprim.h'
34 c
35 c ................................................................
36 c ................ Fonctions in line ...........................
37 c ................................................................
38 c
39 REAL fy, fx, fxprim, fyprim
40 REAL ri, rj
41 c
42 c
43 fy(rj)=ASIN(1.+2.*((1.-rj)/FLOAT(jjm)))
44 fyprim(rj)=1./SQRT((rj-1.)*(jjm+1.-rj))
45
46 fx ( ri ) = 2.*pi/FLOAT(iim) * ( ri - 0.5* FLOAT(iim) - 1. )
47 c fx ( ri ) = 2.*pi/FLOAT(iim) * ( ri - 0.5* ( FLOAT(iim) + 1.) )
48 fxprim( ri ) = 2.*pi/FLOAT(iim)
49 c
50 c
51 c La valeur de pi est passee par le common/const/ou /const2/ .
52 c Sinon, il faut la calculer avant d'appeler ces fonctions .
53 c
54 c ----------------------------------------------------------------
55 c Fonctions a changer eventuellement, selon x(x) et y(y) choisis .
56 c -----------------------------------------------------------------
57 c
58 c ..... ici, on a l'application particuliere suivante ........
59 c
60 c **************************************
61 c ** x = 2. * pi/iim * X **
62 c ** y = pi/jjm * Y **
63 c **************************************
64 c
65 c ..................................................................
66 c ..................................................................
67 c
68 c
69 c
70 c-----------------------------------------------------------------------
71
72 c ...... calcul des latitudes et de y' .....
73 c
74 DO j = 1, jjm + 1
75 rlatu(j) = fy ( FLOAT( j ) )
76 yprimu(j) = fyprim( FLOAT( j ) )
77 ENDDO
78
79
80 DO j = 1, jjm
81
82 rlatv(j) = fy ( FLOAT( j ) + 0.5 )
83 rlatu1(j) = fy ( FLOAT( j ) + 0.25 )
84 rlatu2(j) = fy ( FLOAT( j ) + 0.75 )
85
86 yprimv(j) = fyprim( FLOAT( j ) + 0.5 )
87 yprimu1(j) = fyprim( FLOAT( j ) + 0.25 )
88 yprimu2(j) = fyprim( FLOAT( j ) + 0.75 )
89
90 ENDDO
91
92 c
93 c ..... calcul des longitudes et de x' .....
94 c
95 DO i = 1, iim + 1
96 rlonv(i) = fx ( FLOAT( i ) )
97 rlonu(i) = fx ( FLOAT( i ) + 0.5 )
98 rlonm025(i) = fx ( FLOAT( i ) - 0.25 )
99 rlonp025(i) = fx ( FLOAT( i ) + 0.25 )
100
101 xprimv (i) = fxprim ( FLOAT( i ) )
102 xprimu (i) = fxprim ( FLOAT( i ) + 0.5 )
103 xprimm025(i) = fxprim ( FLOAT( i ) - 0.25 )
104 xprimp025(i) = fxprim ( FLOAT( i ) + 0.25 )
105 ENDDO
106
107 c
108 RETURN
109 END
110

  ViewVC Help
Powered by ViewVC 1.1.21