20 subroutine append_data_buffer_(mask_out, mask_in, data_out, data_in)
21 logical,
intent(inout) :: mask_out(:,:,:,:)
22 logical,
intent(in) :: mask_in(:,:,:,:)
23 real(FMS_TRM_KIND_),
intent(inout) :: data_out(:,:,:,:)
24 real(FMS_TRM_KIND_),
intent(in) :: data_in(:,:,:,:)
28 do l = 1,
size(data_out, 4)
29 do k = 1,
size(data_out, 3)
30 do j = 1,
size(data_out, 2)
31 do i = 1,
size(data_out, 1)
32 if (mask_in(i,j,k,l))
then
33 mask_out(i,j,k,l) = .true.
34 data_out(i,j,k,l) = data_in(i,j,k,l)
41 end subroutine append_data_buffer_
44 subroutine sum_data_buffer_(mask, data_out, data_in, counter, var_is_masked)
45 logical,
intent(in) :: mask(:,:,:,:)
46 real(FMS_TRM_KIND_),
intent(inout) :: data_out(:,:,:,:)
47 real(FMS_TRM_KIND_),
intent(in) :: data_in(:,:,:,:)
48 integer,
intent(inout) :: counter(:,:,:,:)
49 logical,
intent(in) :: var_is_masked
51 if (var_is_masked)
then
53 data_out = data_out + data_in
56 data_out = data_out + data_in
60 end subroutine SUM_DATA_BUFFER_