source: codes/icosagcm/devel/src/kernels_unst/remap_u.k90 @ 913

Last change on this file since 913 was 686, checked in by dubos, 6 years ago

devel/unstructured : piecewise-constant vertical remapping

File size: 1.1 KB
Line 
1   !--------------------------------------------------------------------------
2   !---------------------------- remap_u ----------------------------------
3   ! IN : u, old_rhodz, rhodz, eta
4   ! TMP : urhodz_cum, new_urhodz_cum
5   ! OUT : u
6   !$OMP DO SCHEDULE(STATIC)
7   DO edge=1,edge_num
8      ij_left = left(edge)
9      ij_right = right(edge)
10      urhodz_cum(1,edge)=0.
11      DO l = 1,llm
12         urhodz(l,edge) = u(l,edge)*(old_rhodz(l,ij_left)+old_rhodz(l,ij_right))
13         urhodz_cum(l+1,edge) = urhodz_cum(l,edge) + urhodz(l,edge)
14      END DO
15      DO l = 1,llm+1
16         X = .5*(eta(l,ij_left)+eta(l,ij_right))
17         level = MIN(llm,FLOOR(X))
18         X = X-level
19         new_urhodz_cum(l,edge) = urhodz_cum(level,edge)+X*urhodz(level,edge)
20      END DO
21      DO l = 1,llm
22         u(l,edge) = (new_urhodz_cum(l+1,edge) - new_urhodz_cum(l,edge)) / (rhodz(l,ij_left)+rhodz(l,ij_right))
23      END DO
24   END DO
25   !$OMP END DO
26   !---------------------------- remap_u ----------------------------------
27   !--------------------------------------------------------------------------
Note: See TracBrowser for help on using the repository browser.