My Project
Main Page
Data Types List
Files
File List
File Members
All
Classes
Files
Functions
Variables
Macros
nxgrad_loc.F
Go to the documentation of this file.
1
SUBROUTINE
nxgrad_loc
(klevel, rot, x, y )
2
c
3
c P. Le Van
4
c
5
c ********************************************************************
6
c calcul du gradient tourne de pi/2 du rotationnel du vect.v
7
c ********************************************************************
8
c rot est un argument d'entree pour le s-prog
9
c x et y sont des arguments de sortie pour le s-prog
10
c
11
USE
parallel
12
IMPLICIT NONE
13
c
14
#include "dimensions.h"
15
#include "paramet.h"
16
#include "comgeom.h"
17
INTEGER
klevel
18
REAL
rot( ijb_v:ije_v,klevel ),
x
( ijb_u:ije_u,klevel )
19
REAL
y(ijb_v:ije_v,klevel )
20
INTEGER
l
,
ij
21
INTEGER
:: ijb,ije
22
c
23
c
24
c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
25
DO
10
l
= 1,klevel
26
c
27
ijb=ij_begin
28
ije=ij_end
29
if
(pole_sud) ije=ij_end-iip1
30
31
DO
1
ij
= ijb+1, ije
32
y(
ij
,
l
) = ( rot(
ij
,
l
) - rot(
ij
-1,
l
) ) *
cvsurcuv
(
ij
)
33
1
CONTINUE
34
c
35
c ..... correction pour y ( 1,j,l ) ......
36
c
37
c .... y(1,j,l)= y(iip1,j,l) ....
38
CDIR$ IVDEP
39
DO
2
ij
= ijb, ije, iip1
40
y(
ij
,
l
) = y(
ij
+
iim
,
l
)
41
2
CONTINUE
42
c
43
ijb=ij_begin
44
ije=ij_end+iip1
45
46
if
(pole_nord) ijb=ij_begin+iip1
47
if
(pole_sud) ije=ij_end-iip1
48
49
DO
4
ij
= ijb,ije
50
x
(
ij
,
l
) = ( rot(
ij
,
l
) - rot(
ij
-iip1,
l
) ) *
cusurcvu
(
ij
)
51
4
CONTINUE
52
53
if
(pole_nord)
then
54
DO
ij
= 1,iip1
55
x
(
ij
,
l
) = 0.
56
ENDDO
57
endif
58
59
if
(pole_sud)
then
60
DO
ij
= 1,iip1
61
x
(
ij
+
ip1jm
,
l
) = 0.
62
ENDDO
63
endif
64
c
65
10
CONTINUE
66
c$OMP END DO NOWAIT
67
RETURN
68
END
libf
dyn3dmem
nxgrad_loc.F
Generated on Fri Jun 28 2013 15:58:29 for My Project by
1.8.1.2