test_region_mask_2d Subroutine

public subroutine test_region_mask_2d(this)

Arguments

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

Calls

proc~~test_region_mask_2d~~CallsGraph proc~test_region_mask_2d test_region_mask_2d assertequal assertequal proc~test_region_mask_2d->assertequal esmf_fieldget esmf_fieldget proc~test_region_mask_2d->esmf_fieldget none~evaluate_mask StateMask%evaluate_mask proc~test_region_mask_2d->none~evaluate_mask proc~mapl_return MAPL_Return proc~test_region_mask_2d->proc~mapl_return proc~mapl_verify MAPL_Verify proc~test_region_mask_2d->proc~mapl_verify none~evaluate_mask->proc~mapl_return none~evaluate_mask->proc~mapl_verify none~evaluate_box_mask StateMask%evaluate_box_mask none~evaluate_mask->none~evaluate_box_mask none~evaluate_region_mask StateMask%evaluate_region_mask none~evaluate_mask->none~evaluate_region_mask none~evaluate_zone_mask StateMask%evaluate_zone_mask none~evaluate_mask->none~evaluate_zone_mask at at proc~mapl_return->at insert insert proc~mapl_return->insert proc~mapl_throw_exception MAPL_throw_exception proc~mapl_return->proc~mapl_throw_exception proc~mapl_verify->proc~mapl_throw_exception none~evaluate_box_mask->esmf_fieldget none~evaluate_box_mask->proc~mapl_return none~evaluate_box_mask->proc~mapl_verify ESMF_GridGet ESMF_GridGet none~evaluate_box_mask->ESMF_GridGet ESMF_GridGetCoord ESMF_GridGetCoord none~evaluate_box_mask->ESMF_GridGetCoord interface~esmfl_stategetpointertodata ESMFL_StateGetPointerToData none~evaluate_box_mask->interface~esmfl_stategetpointertodata interface~mapl_assert MAPL_Assert none~evaluate_box_mask->interface~mapl_assert proc~mapl_gridget MAPL_GridGet none~evaluate_box_mask->proc~mapl_gridget none~evaluate_region_mask->esmf_fieldget none~evaluate_region_mask->proc~mapl_return none~evaluate_region_mask->proc~mapl_verify none~evaluate_region_mask->interface~esmfl_stategetpointertodata none~evaluate_region_mask->interface~mapl_assert none~evaluate_zone_mask->esmf_fieldget none~evaluate_zone_mask->proc~mapl_return none~evaluate_zone_mask->proc~mapl_verify none~evaluate_zone_mask->ESMF_GridGet none~evaluate_zone_mask->ESMF_GridGetCoord none~evaluate_zone_mask->interface~esmfl_stategetpointertodata none~evaluate_zone_mask->interface~mapl_assert proc~mapl_gridget->proc~mapl_return proc~mapl_gridget->proc~mapl_verify proc~mapl_gridget->ESMF_GridGet ESMF_AttributeGet ESMF_AttributeGet proc~mapl_gridget->ESMF_AttributeGet ESMF_DistGridGet ESMF_DistGridGet proc~mapl_gridget->ESMF_DistGridGet proc~mapl_distgridget MAPL_DistGridGet proc~mapl_gridget->proc~mapl_distgridget proc~mapl_getimsjms MAPL_GetImsJms proc~mapl_gridget->proc~mapl_getimsjms proc~mapl_gridhasde MAPL_GridHasDE proc~mapl_gridget->proc~mapl_gridhasde

Source Code

   subroutine test_region_mask_2d(this)
      class(ESMF_TestMethod), intent(inout) :: this

      integer :: status, rc
      real(ESMF_KIND_R4), pointer :: ptr2d(:,:), mask_ptr(:,:)
      type(StateMask) :: mask
      real(ESMF_KIND_R4), allocatable :: expected_array(:,:)
      real(ESMF_KIND_R4) :: rval
      character(len=:), allocatable :: expr

      call ESMF_FieldGet(mask_field, 0, farrayPtr=mask_ptr, _RC)
      call ESMF_FieldGet(field_2d, 0, farrayPtr=ptr2d, _RC)
      expr = "regionmask(field_2d,region_mask;2,5)"
      rval = 17.0 
      ptr2d = rval
      allocate(expected_array(3,3),_STAT)
      expected_array= reshape([0.0, rval, 0.0, rval, rval, 0.0, rval, rval, 0.0],shape=[3,3])
      mask_ptr =    reshape([1.0, 5.0,  1.0, 5.0,  2.0,  1.0, 2.0,  5.0,  1.0],shape=[3,3])
      mask = StateMask(expr, _RC)
      call mask%evaluate_mask(state,out_field_2d,_RC)

      call ESMF_FieldGet(out_field_2d, 0, farrayPtr=ptr2d, _RC)
      @assertEqual(expected_array, ptr2d)
      _RETURN(_SUCCESS)

   end subroutine test_region_mask_2d