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

Contents of /trunk/dyn3d/fxysinus.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 81 - (show annotations)
Wed Mar 5 14:38:41 2014 UTC (10 years, 2 months ago) by guez
Original Path: trunk/dyn3d/fxysinus.f90
File size: 3031 byte(s)
 Converted to free source form files which were still in fixed source
form. The conversion was done using the polish mode of the NAG Fortran
Compiler.

In addition to converting to free source form, the processing of the
files also:

-- indented the code (including comments);

-- set Fortran keywords to uppercase, and set all other identifiers
to lower case;

-- added qualifiers to end statements (for example "end subroutine
conflx", instead of "end");

-- changed the terminating statements of all DO loops so that each
loop ends with an ENDDO statement (instead of a labeled continue).

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

  ViewVC Help
Powered by ViewVC 1.1.21