module gms_assign2 use model_info use datatype use mem_manager implicit none interface assignment(=) module procedure data_real_equal_x module procedure data_real_equal_y module procedure data_real_equal_z module procedure data_real_equal_xy module procedure data_real_equal_xz module procedure data_real_equal_yz module procedure data_real_equal_xyz end interface contains !---FOR X subroutine data_real_equal_x(output, input) type(var_x), intent(inout):: output real(8), intent(in) :: input work_x(:,:,:,output%id) = input call garbege_collect end subroutine data_real_equal_x !---FOR Y subroutine data_real_equal_y(output, input) type(var_y), intent(inout):: output real(8), intent(in) :: input work_y(:,:,:,output%id) = input call garbege_collect end subroutine data_real_equal_y !---FOR Z subroutine data_real_equal_z(output, input) type(var_z), intent(inout):: output real(8), intent(in) :: input work_z(:,:,:,output%id) = input call garbege_collect end subroutine data_real_equal_z !---FOR XY subroutine data_real_equal_xy(output, input) type(var_xy), intent(inout):: output real(8), intent(in) :: input work_xy(:,:,:,output%id) = input call garbege_collect end subroutine data_real_equal_xy !---FOR XZ subroutine data_real_equal_xz(output, input) type(var_xz), intent(inout):: output real(8), intent(in) :: input work_xz(:,:,:,output%id) = input call garbege_collect end subroutine data_real_equal_xz !---FOR YZ subroutine data_real_equal_yz(output, input) type(var_yz), intent(inout):: output real(8), intent(in) :: input work_yz(:,:,:,output%id) = input call garbege_collect end subroutine data_real_equal_yz !---FOR XYZ subroutine data_real_equal_xyz(output, input) type(var_xyz), intent(inout):: output real(8), intent(in) :: input work_xyz(:,:,:,output%id) = input call garbege_collect end subroutine data_real_equal_xyz end module gms_assign2