source: codes/icosagcm/devel/src/kernels_unst/coriolis.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.7 KB
Line 
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   !--------------------------------------------------------------------------
Note: See TracBrowser for help on using the repository browser.