source: codes/icosagcm/devel/src/kernels_unst/caldyn_slow_hydro.k90 @ 614

Last change on this file since 614 was 614, checked in by dubos, 7 years ago

devel : added unstructured-mesh kernels

File size: 1.5 KB
Line 
1   !--------------------------------------------------------------------------
2   !---------------------------- caldyn_slow_hydro ----------------------------------
3   !$OMP DO SCHEDULE(STATIC)
4   DO edge = 1, edge_num
5      ij_left = left(edge)
6      ij_right = right(edge)
7      DO l = 1, llm
8         uu = .5*(rhodz(l,ij_left)+rhodz(l,ij_right))*u(l,edge)
9         hflux(l,edge) = uu*le_de(edge)
10      END DO
11   END DO
12   !$OMP END DO
13   !$OMP DO SCHEDULE(STATIC)
14   DO ij = 1, primal_num
15      DO l = 1, llm
16         ke=0.d0
17         DO iedge = 1, primal_deg(ij)
18            edge = primal_edge(iedge,ij)
19            ke = ke + le_de(edge)*u(l,edge)**2
20         END DO
21         BERNI(l,ij)=ke*(.25/Ai(ij))
22      END DO
23   END DO
24   !$OMP END DO
25   IF(zero) THEN
26      !$OMP DO SCHEDULE(STATIC)
27      DO edge = 1, edge_num
28         ij_left = left(edge)
29         ij_right = right(edge)
30         DO l = 1, llm
31            du(l,edge) = 1.*(berni(l,ij_left)-berni(l,ij_right)) ! minus gradient
32         END DO
33      END DO
34      !$OMP END DO
35   ELSE
36      !$OMP DO SCHEDULE(STATIC)
37      DO edge = 1, edge_num
38         ij_left = left(edge)
39         ij_right = right(edge)
40         DO l = 1, llm
41            du(l,edge) = du(l,edge) + 1.*(berni(l,ij_left)-berni(l,ij_right)) ! minus gradient
42         END DO
43      END DO
44      !$OMP END DO
45   END IF
46   !---------------------------- caldyn_slow_hydro ----------------------------------
47   !--------------------------------------------------------------------------
Note: See TracBrowser for help on using the repository browser.