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
36 INTEGER,
INTENT(IN) :: M
41 DOUBLE PRECISION :: D_f
45 INTEGER :: I, J, K, I1, I2, J1, J2, K1, K2, IJK
46 INTEGER :: IJKE, IJKN, IJKT, IJPK, IPJK, IJKTN, IJKTE
51 IF (is_defined(l))
THEN 59 IF (is_plane(l) ==
'N')
THEN 63 IF (.NOT.is_on_mype_plus2layers(i,j,k)) cycle
71 d_f = avg_z_h(avg_y_h(dif(ijk),dif(ijkn),j),&
72 avg_y_h(dif(ijkt),dif(ijktn),j),k)*&
81 ELSEIF (is_plane(l) ==
'E')
THEN 85 IF (.NOT.is_on_mype_plus2layers(i,j,k)) cycle
93 d_f = avg_z_h(avg_x_h(dif(ijk),dif(ijke),i),&
94 avg_x_h(dif(ijkt),dif(ijkte),i),k)*&
97 a_m(ijk,
east,m) = a_m(ijk,
east,m) - d_f
98 a_m(ipjk,
west,m) = a_m(ipjk,
west,m) - d_f
integer, parameter dimension_is
integer, dimension(dimension_is) is_i_w
character, dimension(dimension_is) is_plane
double precision, dimension(:), allocatable ody_n
logical, dimension(:,:,:), allocatable dead_cell_at
double precision, dimension(:), allocatable odx_e
integer, dimension(dimension_is) is_k_b
subroutine dif_w_is(DIF, A_M, M)
double precision, dimension(:), allocatable ayz_w
logical, dimension(dimension_is) is_defined
integer, dimension(dimension_is) is_j_s
double precision, dimension(:), allocatable axz_w
integer, dimension(dimension_is) is_j_n
integer, dimension(dimension_is) is_i_e
integer, dimension(dimension_is) is_k_t