source: codes/icosagcm/trunk/src/kernels/caldyn_slow_hydro.k90 @ 580

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

trunk : upgrading to devel

File size: 2.1 KB
Line 
1   !--------------------------------------------------------------------------
2   !---------------------------- caldyn_slow_hydro ----------------------------------
3   DO l = ll_begin, ll_end
4      !DIR$ SIMD
5      DO ij=ij_begin_ext, ij_end_ext
6         uu = .5*(rhodz(ij,l)+rhodz(ij+t_right,l))*u(ij+u_right,l)
7         hflux(ij+u_right,l) = uu*le_de(ij+u_right)
8         uu = .5*(rhodz(ij,l)+rhodz(ij+t_lup,l))*u(ij+u_lup,l)
9         hflux(ij+u_lup,l) = uu*le_de(ij+u_lup)
10         uu = .5*(rhodz(ij,l)+rhodz(ij+t_ldown,l))*u(ij+u_ldown,l)
11         hflux(ij+u_ldown,l) = uu*le_de(ij+u_ldown)
12      END DO
13   END DO
14   DO l = ll_begin, ll_end
15      !DIR$ SIMD
16      DO ij=ij_begin, ij_end
17         ke=0.d0
18         ke = ke + le_de(ij+u_rup)*u(ij+u_rup,l)**2
19         ke = ke + le_de(ij+u_lup)*u(ij+u_lup,l)**2
20         ke = ke + le_de(ij+u_left)*u(ij+u_left,l)**2
21         ke = ke + le_de(ij+u_ldown)*u(ij+u_ldown,l)**2
22         ke = ke + le_de(ij+u_rdown)*u(ij+u_rdown,l)**2
23         ke = ke + le_de(ij+u_right)*u(ij+u_right,l)**2
24         BERNI(ij,l)=ke*(.25/Ai(ij))
25      END DO
26   END DO
27   IF(zero) THEN
28      DO l = ll_begin, ll_end
29         !DIR$ SIMD
30         DO ij=ij_begin, ij_end
31            du(ij+u_right,l) = ne_right*(berni(ij,l)-berni(ij+t_right,l)) ! minus gradient
32            du(ij+u_lup,l) = ne_lup*(berni(ij,l)-berni(ij+t_lup,l)) ! minus gradient
33            du(ij+u_ldown,l) = ne_ldown*(berni(ij,l)-berni(ij+t_ldown,l)) ! minus gradient
34         END DO
35      END DO
36   ELSE
37      DO l = ll_begin, ll_end
38         !DIR$ SIMD
39         DO ij=ij_begin, ij_end
40            du(ij+u_right,l) = du(ij+u_right,l) + ne_right*(berni(ij,l)-berni(ij+t_right,l)) ! minus gradient
41            du(ij+u_lup,l) = du(ij+u_lup,l) + ne_lup*(berni(ij,l)-berni(ij+t_lup,l)) ! minus gradient
42            du(ij+u_ldown,l) = du(ij+u_ldown,l) + ne_ldown*(berni(ij,l)-berni(ij+t_ldown,l)) ! minus gradient
43         END DO
44      END DO
45   END IF
46   !---------------------------- caldyn_slow_hydro ----------------------------------
47   !--------------------------------------------------------------------------
Note: See TracBrowser for help on using the repository browser.