21 USE fun_avg, only: avg_x_h, avg_y_h, avg_z_h
24 USE functions, only: east_of, north_of, top_of
25 USE functions, only: is_on_mype_plus2layers
37 INTEGER,
INTENT(IN) :: M
44 INTEGER :: I, J, K, I1, I2, J1, J2, K1, K2, IJK
45 INTEGER :: IJKE, IJKN, IJKT, IPJK, IJKP, IJKNE, IJKTN
47 DOUBLE PRECISION :: D_f
53 IF (is_defined(l))
THEN 61 IF (is_plane(l) ==
'E')
THEN 65 IF (.NOT.is_on_mype_plus2layers(i,j,k)) cycle
73 d_f = avg_y_h(avg_x_h(dif(ijk),dif(ijke),i),&
74 avg_x_h(dif(ijkn),dif(ijkne),i),j)*&
77 a_m(ijk,
east,m) = a_m(ijk,
east,m) - d_f
78 a_m(ipjk,
west,m) = a_m(ipjk,
west,m) - d_f
83 ELSEIF (is_plane(l) ==
'T')
THEN 88 IF (.NOT.is_on_mype_plus2layers(i,j,k)) cycle
93 ijktn = north_of(ijkt)
96 d_f = avg_y_h(avg_z_h(dif(ijk),dif(ijkt),k),&
97 avg_z_h(dif(ijkn),dif(ijktn),k),j)*&
100 a_m(ijk,
top,m) = a_m(ijk,
top,m) - d_f
integer, parameter dimension_is
integer, dimension(dimension_is) is_i_w
character, dimension(dimension_is) is_plane
double precision, dimension(:), allocatable ayz_v
logical, dimension(:,:,:), allocatable dead_cell_at
double precision, dimension(:), allocatable odx_e
double precision, dimension(:), allocatable axy_v
integer, dimension(dimension_is) is_k_b
double precision, dimension(:), allocatable ox
logical, dimension(dimension_is) is_defined
subroutine dif_v_is(DIF, A_M, M)
integer, dimension(dimension_is) is_j_s
integer, dimension(dimension_is) is_j_n
integer, dimension(dimension_is) is_i_e
double precision, dimension(:), allocatable odz_t
integer, dimension(dimension_is) is_k_t