test_FieldCOPY_R8R4 Subroutine

public subroutine test_FieldCOPY_R8R4(this)

Arguments

Type IntentOptional Attributes Name
class(MpiTestMethod), intent(inout) :: this

Calls

proc~~test_fieldcopy_r8r4~~CallsGraph proc~test_fieldcopy_r8r4 test_FieldCOPY_R8R4 asserttrue asserttrue proc~test_fieldcopy_r8r4->asserttrue esmf_fieldget esmf_fieldget proc~test_fieldcopy_r8r4->esmf_fieldget interface~fieldcopy FieldCOPY proc~test_fieldcopy_r8r4->interface~fieldcopy proc~are_almost_equal are_almost_equal proc~test_fieldcopy_r8r4->proc~are_almost_equal proc~mapl_verify MAPL_Verify proc~test_fieldcopy_r8r4->proc~mapl_verify proc~mapl_throw_exception MAPL_throw_exception proc~mapl_verify->proc~mapl_throw_exception

Source Code

   subroutine test_FieldCOPY_R8R4(this)
      class(MpiTestMethod), intent(inout) :: this
      type(ESMF_Field) :: x
      type(ESMF_Field) :: y
      real(kind=ESMF_KIND_R8), dimension(:,:), pointer :: x_ptr
      real(kind=ESMF_KIND_R4), dimension(:,:), pointer :: y_ptr
      integer :: status, rc

      x = XR8
      y = YR4
      call ESMF_FieldGet(x, farrayPtr = x_ptr, _RC)
      x_ptr = 4.d0
      call FieldCOPY(x, y, _RC)
      call ESMF_FieldGet(x, farrayPtr = x_ptr, _RC)
      call ESMF_FieldGet(y, farrayPtr = y_ptr, _RC)
      @assertTrue(all(are_almost_equal(x_ptr, y_ptr)), 'Values differ above threshold.')

   end subroutine test_FieldCOPY_R8R4