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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 52 - (show annotations)
Fri Sep 23 12:28:01 2011 UTC (12 years, 7 months ago) by guez
File size: 3523 byte(s)
Split "conflx.f" into single-procedure files in directory "Conflx".

Split "cv_routines.f" into single-procedure files in directory
"CV_routines". Made module "cvparam" from included file
"cvparam.h". No included file other than "netcdf.inc" left in LMDZE.

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
34 c ................................................................
35 c ................ Fonctions in line ...........................
36 c ................................................................
37 c
38 REAL fy, fx, fxprim, fyprim
39 REAL ri, rj
40 c
41 c
42 fy(rj)=ASIN(1.+2.*((1.-rj)/FLOAT(jjm)))
43 fyprim(rj)=1./SQRT((rj-1.)*(jjm+1.-rj))
44
45 fx ( ri ) = 2.*pi/FLOAT(iim) * ( ri - 0.5* FLOAT(iim) - 1. )
46 c fx ( ri ) = 2.*pi/FLOAT(iim) * ( ri - 0.5* ( FLOAT(iim) + 1.) )
47 fxprim( ri ) = 2.*pi/FLOAT(iim)
48 c
49 c
50 c La valeur de pi est passee par le common/const/ou /const2/ .
51 c Sinon, il faut la calculer avant d'appeler ces fonctions .
52 c
53 c ----------------------------------------------------------------
54 c Fonctions a changer eventuellement, selon x(x) et y(y) choisis .
55 c -----------------------------------------------------------------
56 c
57 c ..... ici, on a l'application particuliere suivante ........
58 c
59 c **************************************
60 c ** x = 2. * pi/iim * X **
61 c ** y = pi/jjm * Y **
62 c **************************************
63 c
64 c ..................................................................
65 c ..................................................................
66 c
67 c
68 c
69 c-----------------------------------------------------------------------
70
71 c ...... calcul des latitudes et de y' .....
72 c
73 DO j = 1, jjm + 1
74 rlatu(j) = fy ( FLOAT( j ) )
75 yprimu(j) = fyprim( FLOAT( j ) )
76 ENDDO
77
78
79 DO j = 1, jjm
80
81 rlatv(j) = fy ( FLOAT( j ) + 0.5 )
82 rlatu1(j) = fy ( FLOAT( j ) + 0.25 )
83 rlatu2(j) = fy ( FLOAT( j ) + 0.75 )
84
85 yprimv(j) = fyprim( FLOAT( j ) + 0.5 )
86 yprimu1(j) = fyprim( FLOAT( j ) + 0.25 )
87 yprimu2(j) = fyprim( FLOAT( j ) + 0.75 )
88
89 ENDDO
90
91 c
92 c ..... calcul des longitudes et de x' .....
93 c
94 DO i = 1, iim + 1
95 rlonv(i) = fx ( FLOAT( i ) )
96 rlonu(i) = fx ( FLOAT( i ) + 0.5 )
97 rlonm025(i) = fx ( FLOAT( i ) - 0.25 )
98 rlonp025(i) = fx ( FLOAT( i ) + 0.25 )
99
100 xprimv (i) = fxprim ( FLOAT( i ) )
101 xprimu (i) = fxprim ( FLOAT( i ) + 0.5 )
102 xprimm025(i) = fxprim ( FLOAT( i ) - 0.25 )
103 xprimp025(i) = fxprim ( FLOAT( i ) + 0.25 )
104 ENDDO
105
106 c
107 RETURN
108 END
109

  ViewVC Help
Powered by ViewVC 1.1.21