21subroutine append_data_buffer_(mask_out, mask_in, data_out, data_in)
22 logical,
intent(inout) :: mask_out(:,:,:,:)
23 logical,
intent(in) :: mask_in(:,:,:,:)
24 real(FMS_TRM_KIND_),
intent(inout) :: data_out(:,:,:,:)
25 real(FMS_TRM_KIND_),
intent(in) :: data_in(:,:,:,:)
29 do l = 1,
size(data_out, 4)
30 do k = 1,
size(data_out, 3)
31 do j = 1,
size(data_out, 2)
32 do i = 1,
size(data_out, 1)
33 if (mask_in(i,j,k,l))
then
34 mask_out(i,j,k,l) = .true.
35 data_out(i,j,k,l) = data_in(i,j,k,l)
42end subroutine append_data_buffer_
45subroutine sum_data_buffer_(mask, data_out, data_in, counter, var_is_masked)
46 logical,
intent(in) :: mask(:,:,:,:)
47 real(FMS_TRM_KIND_),
intent(inout) :: data_out(:,:,:,:)
48 real(FMS_TRM_KIND_),
intent(in) :: data_in(:,:,:,:)
49 integer,
intent(inout) :: counter(:,:,:,:)
50 logical,
intent(in) :: var_is_masked
52 if (var_is_masked)
then
54 data_out = data_out + data_in
57 data_out = data_out + data_in
61end subroutine SUM_DATA_BUFFER_