1 | !-------------------------------------------------------------------------- |
---|
2 | !---------------------------- coriolis ---------------------------------- |
---|
3 | ! |
---|
4 | DO iq=1,nqdyn |
---|
5 | !$OMP DO SCHEDULE(STATIC) |
---|
6 | DO edge = 1, edge_num |
---|
7 | ij_left = left(edge) |
---|
8 | ij_right = right(edge) |
---|
9 | DO l = 1, llm |
---|
10 | Ftheta(l,edge) = .5*(theta(l,ij_left,iq)+theta(l,ij_right,iq))*hflux(l,edge) |
---|
11 | END DO |
---|
12 | END DO |
---|
13 | !$OMP END DO |
---|
14 | !$OMP DO SCHEDULE(STATIC) |
---|
15 | DO ij = 1, primal_num |
---|
16 | DO l = 1, llm |
---|
17 | divF=0. |
---|
18 | DO iedge = 1, primal_deg(ij) |
---|
19 | edge = primal_edge(iedge,ij) |
---|
20 | divF = divF + Ftheta(l,edge)*primal_ne(iedge,ij) |
---|
21 | END DO |
---|
22 | dtheta_rhodz(l,ij,iq) = -divF / Ai(ij) |
---|
23 | END DO |
---|
24 | END DO |
---|
25 | !$OMP END DO |
---|
26 | END DO ! iq |
---|
27 | ! |
---|
28 | !$OMP DO SCHEDULE(STATIC) |
---|
29 | DO ij = 1, primal_num |
---|
30 | DO l = 1, llm |
---|
31 | divF=0. |
---|
32 | DO iedge = 1, primal_deg(ij) |
---|
33 | edge = primal_edge(iedge,ij) |
---|
34 | divF = divF + hflux(l,edge)*primal_ne(iedge,ij) |
---|
35 | END DO |
---|
36 | convm(l,ij) = -divF / Ai(ij) |
---|
37 | END DO |
---|
38 | END DO |
---|
39 | !$OMP END DO |
---|
40 | ! |
---|
41 | !$OMP DO SCHEDULE(STATIC) |
---|
42 | DO edge = 1, edge_num |
---|
43 | DO l = 1, llm |
---|
44 | du_trisk=0. |
---|
45 | DO itrisk = 1, trisk_deg(edge) |
---|
46 | edge_trisk = trisk(itrisk,edge) |
---|
47 | du_trisk = du_trisk + wee(itrisk,edge)*hflux(l,edge_trisk)*(qu(l,edge)+qu(l,edge_trisk)) |
---|
48 | END DO |
---|
49 | du(l,edge) = du(l,edge) + .5*du_trisk |
---|
50 | END DO |
---|
51 | END DO |
---|
52 | !$OMP END DO |
---|
53 | !---------------------------- coriolis ---------------------------------- |
---|
54 | !-------------------------------------------------------------------------- |
---|