source: codes/icosagcm/devel/src/kernels_unst/theta.k90 @ 658

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

devel/unstructured : updated kernels

File size: 1.4 KB
Line 
1   !--------------------------------------------------------------------------
2   !---------------------------- theta ----------------------------------
3   IF(caldyn_eta==eta_mass) THEN ! Compute mass
4      ! FIXME : here mass_col is computed from rhodz
5      ! so that the DOFs are the same whatever caldyn_eta
6      ! in DYNAMICO mass_col is prognosed rather than rhodz
7      !$OMP DO SCHEDULE(STATIC)
8      DO ij=1,primal_num
9         l=0
10         mass_col(ij)=0.
11         DO l = 1,llm
12            mass_col(ij) = mass_col(ij) + rhodz(l,ij)
13         END DO
14      END DO
15      !$OMP END DO
16      !$OMP DO SCHEDULE(STATIC)
17      DO ij = 1, primal_num
18         !DIR$ SIMD
19         DO l = 1, llm
20            ! FIXME : formula below (used in DYNAMICO) is for dak, dbk based on pressure rather than mass
21            ! m = mass_dak(l,ij)+(mass_col(ij)*g+ptop)*mass_dbk(l,ij)
22            ! rhodz(l,ij) = m/g
23            rhodz(l,ij) = mass_dak(l,ij) + mass_col(ij)*mass_dbk(l,ij)
24         END DO
25      END DO
26      !$OMP END DO
27   END IF
28   DO iq=1,nqdyn
29      !$OMP DO SCHEDULE(STATIC)
30      DO ij = 1, primal_num
31         !DIR$ SIMD
32         DO l = 1, llm
33            theta(l,ij,iq) = theta_rhodz(l,ij,iq)/rhodz(l,ij)
34         END DO
35      END DO
36      !$OMP END DO
37   END DO
38   !---------------------------- theta ----------------------------------
39   !--------------------------------------------------------------------------
Note: See TracBrowser for help on using the repository browser.