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

Diff of /trunk/dyn3d/fxysinus.f

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

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

Legend:
Removed from v.76  
changed lines
  Added in v.81

  ViewVC Help
Powered by ViewVC 1.1.21