GCC Code Coverage Report


Directory: ./
File: dyn3d_common/fxysinus.f
Date: 2022-01-11 19:19:34
Exec Total Coverage
Lines: 0 21 0.0%
Branches: 0 6 0.0%

Line Branch Exec Source
1 !
2 ! $Id: fxysinus.F 2597 2016-07-22 06:44:47Z emillour $
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 comconst_mod, ONLY: pi
10 IMPLICIT NONE
11 c
12 c Calcul des longitudes et des latitudes pour une fonction f(x,y)
13 c avec y = Asin( j ) .
14 c
15 c Auteur : P. Le Van
16 c
17 c
18 !-----------------------------------------------------------------------
19 ! INCLUDE 'dimensions.h'
20 !
21 ! dimensions.h contient les dimensions du modele
22 ! ndm est tel que iim=2**ndm
23 !-----------------------------------------------------------------------
24
25 INTEGER iim,jjm,llm,ndm
26
27 PARAMETER (iim= 32,jjm=32,llm=39,ndm=1)
28
29 !-----------------------------------------------------------------------
30 !
31 ! $Header$
32 !
33 !
34 ! ATTENTION!!!!: ce fichier include est compatible format fixe/format libre
35 ! veillez n'utiliser que des ! pour les commentaires
36 ! et bien positionner les & des lignes de continuation
37 ! (les placer en colonne 6 et en colonne 73)
38 !
39 !
40 !-----------------------------------------------------------------------
41 ! INCLUDE 'paramet.h'
42
43 INTEGER iip1,iip2,iip3,jjp1,llmp1,llmp2,llmm1
44 INTEGER kftd,ip1jm,ip1jmp1,ip1jmi1,ijp1llm
45 INTEGER ijmllm,mvar
46 INTEGER jcfil,jcfllm
47
48 PARAMETER( iip1= iim+1,iip2=iim+2,iip3=iim+3 &
49 & ,jjp1=jjm+1-1/jjm)
50 PARAMETER( llmp1 = llm+1, llmp2 = llm+2, llmm1 = llm-1 )
51 PARAMETER( kftd = iim/2 -ndm )
52 PARAMETER( ip1jm = iip1*jjm, ip1jmp1= iip1*jjp1 )
53 PARAMETER( ip1jmi1= ip1jm - iip1 )
54 PARAMETER( ijp1llm= ip1jmp1 * llm, ijmllm= ip1jm * llm )
55 PARAMETER( mvar= ip1jmp1*( 2*llm+1) + ijmllm )
56 PARAMETER( jcfil=jjm/2+5, jcfllm=jcfil*llm )
57
58 !-----------------------------------------------------------------------
59
60 INTEGER i,j
61
62 REAL rlatu(jjp1), yprimu(jjp1),rlatv(jjm), yprimv(jjm),
63 , rlatu1(jjm), yprimu1(jjm), rlatu2(jjm), yprimu2(jjm)
64 REAL rlonu(iip1),xprimu(iip1),rlonv(iip1),xprimv(iip1),
65 , rlonm025(iip1),xprimm025(iip1), rlonp025(iip1),xprimp025(iip1)
66
67 !
68 ! $Header$
69 !
70 c-----------------------------------------------------------------------
71 c INCLUDE 'fxyprim.h'
72 c
73 c ................................................................
74 c ................ Fonctions in line ...........................
75 c ................................................................
76 c
77 REAL fy, fx, fxprim, fyprim
78 REAL ri, rj
79 c
80 c
81 fy(rj)=ASIN(1.+2.*((1.-rj)/REAL(jjm)))
82 fyprim(rj)=1./SQRT((rj-1.)*(jjm+1.-rj))
83
84 fx ( ri ) = 2.*pi/REAL(iim) * ( ri - 0.5* REAL(iim) - 1. )
85 c fx ( ri ) = 2.*pi/REAL(iim) * ( ri - 0.5* ( REAL(iim) + 1.) )
86 fxprim( ri ) = 2.*pi/REAL(iim)
87 c
88 c
89 c La valeur de pi est passee par le common/const/ou /const2/ .
90 c Sinon, il faut la calculer avant d'appeler ces fonctions .
91 c
92 c ----------------------------------------------------------------
93 c Fonctions a changer eventuellement, selon x(x) et y(y) choisis .
94 c -----------------------------------------------------------------
95 c
96 c ..... ici, on a l'application particuliere suivante ........
97 c
98 c **************************************
99 c ** x = 2. * pi/iim * X **
100 c ** y = pi/jjm * Y **
101 c **************************************
102 c
103 c ..................................................................
104 c ..................................................................
105 c
106 c
107 c
108 c-----------------------------------------------------------------------
109
110
111 c ...... calcul des latitudes et de y' .....
112 c
113 DO j = 1, jjm + 1
114 rlatu(j) = fy ( REAL( j ) )
115 yprimu(j) = fyprim( REAL( j ) )
116 ENDDO
117
118
119 DO j = 1, jjm
120
121 rlatv(j) = fy ( REAL( j ) + 0.5 )
122 rlatu1(j) = fy ( REAL( j ) + 0.25 )
123 rlatu2(j) = fy ( REAL( j ) + 0.75 )
124
125 yprimv(j) = fyprim( REAL( j ) + 0.5 )
126 yprimu1(j) = fyprim( REAL( j ) + 0.25 )
127 yprimu2(j) = fyprim( REAL( j ) + 0.75 )
128
129 ENDDO
130
131 c
132 c ..... calcul des longitudes et de x' .....
133 c
134 DO i = 1, iim + 1
135 rlonv(i) = fx ( REAL( i ) )
136 rlonu(i) = fx ( REAL( i ) + 0.5 )
137 rlonm025(i) = fx ( REAL( i ) - 0.25 )
138 rlonp025(i) = fx ( REAL( i ) + 0.25 )
139
140 xprimv (i) = fxprim ( REAL( i ) )
141 xprimu (i) = fxprim ( REAL( i ) + 0.5 )
142 xprimm025(i) = fxprim ( REAL( i ) - 0.25 )
143 xprimp025(i) = fxprim ( REAL( i ) + 0.25 )
144 ENDDO
145
146 c
147 RETURN
148 END
149
150