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

Annotation of /trunk/dyn3d/fxysinus.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 39 - (hide annotations)
Tue Jan 25 15:11:05 2011 UTC (13 years, 3 months ago) by guez
Original Path: trunk/libf/dyn3d/fxysinus.f
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 guez 3 !
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 guez 39 use nr_util, only: pi
13 guez 3 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 guez 39 !
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 guez 3
46 guez 39 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 guez 3
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