Skip to content

Commit

Permalink
Fixes #288 ESMF_ArrayCreateGetUTest (#289)
Browse files Browse the repository at this point in the history
* fill array with random number 0 - 1000
* fail if every element in array matches
  • Loading branch information
danrosen25 authored Sep 23, 2024
1 parent d4d016c commit e84ae5b
Showing 1 changed file with 8 additions and 3 deletions.
11 changes: 8 additions & 3 deletions src/Infrastructure/Array/tests/ESMF_ArrayCreateGetUTest.F90
Original file line number Diff line number Diff line change
Expand Up @@ -369,7 +369,12 @@ program ESMF_ArrayCreateGetUTest
!NEX_UTest_Multi_Proc_Only
write(name, *) "ArrayCreate from Copy (ALLOC), 2D ESMF_TYPEKIND_R8 Test"
write(failMsg, *) "Did not return ESMF_SUCCESS"
farrayPtr2D = real(localPet+10, ESMF_KIND_R8) ! fill with data to check
! In most circumstances it is best to avoid using random_number in unit tests.
! In this case farrayPtr2D will be compared to an uninitialized array, which
! is already effectively random. Filling farrayPtr2D with random numbers
! reduces the chance of a value collision to near zero.
call random_number(farrayPtr2D) ! fill with data to check
farrayPtr2D = farrayPtr2D * 1000.0_ESMF_KIND_R8
arrayDup = ESMF_ArrayCreate(array, datacopyflag=ESMF_DATACOPY_ALLOC, rc=rc)
call ESMF_Test((rc.eq.ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE)

Expand Down Expand Up @@ -398,14 +403,14 @@ program ESMF_ArrayCreateGetUTest
!NEX_UTest_Multi_Proc_Only
write(name, *) "Verify Array vs Array Copy (ALLOC) no data copy"
write(failMsg, *) "Unexpected data copy"
dataCorrect = .true.
dataCorrect = .false.
do j=lbound(farrayPtr2D,2), ubound(farrayPtr2D,2)
do i=lbound(farrayPtr2D,1), ubound(farrayPtr2D,1)
write (msg,*) "farrayPtr2D(",i,",",j,")=", farrayPtr2D(i,j), &
" farrayPtr2DCpy(",i,",",j,")=", farrayPtr2DCpy(i,j)
call ESMF_LogWrite(msg, ESMF_LOGMSG_INFO, rc=rc)
if (rc /= ESMF_SUCCESS) call ESMF_Finalize(endflag=ESMF_END_ABORT)
if (abs(farrayPtr2D(i,j)-farrayPtr2DCpy(i,j)) < 1.d-10) dataCorrect=.false.
if (abs(farrayPtr2D(i,j)-farrayPtr2DCpy(i,j)) >= 1.d-10) dataCorrect=.true.
enddo
enddo
call ESMF_Test((dataCorrect), name, failMsg, result, ESMF_SRCLINE)
Expand Down

0 comments on commit e84ae5b

Please sign in to comment.