@@ -17,7 +17,7 @@ function epsilonDiff(a,b) result(isSame)
1717 endif
1818end function
1919
20- subroutine createTest (mpMesh , nCells , numMPs , mp2Elm , isMPActive )
20+ subroutine createMPsTest (mpMesh , nCells , numMPs , mp2Elm , isMPActive )
2121 implicit none
2222 type (c_ptr):: mpMesh
2323 integer :: nCells, numMPs, i
@@ -27,6 +27,20 @@ subroutine createTest(mpMesh, nCells, numMPs, mp2Elm, isMPActive)
2727 integer , parameter :: MP_INACTIVE = 0
2828 integer , dimension (:), pointer :: mpsPerElm, mp2Elm, isMPActive
2929 real (kind= MPAS_RKIND), dimension (:,:), pointer :: mpPosition
30+
31+ isMPActive = MP_ACTIVE ! no inactive MPs and some changed below
32+ isMPActive(4 ) = MP_INACTIVE ! first/1-st MP is indexed 1 and 4-th MP is inactive
33+
34+ ! mp2Elm = [2,3,2,0,3,4,5,6,...]
35+ mp2Elm(1 ) = 2
36+ mp2Elm(2 ) = 3
37+ mp2Elm(3 ) = 2
38+ ! mp2Elm(4) is not needed/used since 4-th MP is inactive
39+ do i = 5 ,numMPs
40+ mp2Elm(i) = i-2 ! i=5 leads to mp2Elm(5)=3 (5-th MP in 3-rd element)
41+ ! i=numMPs leads to mp2Elm(numMPs=nCells+2)=numMPs-2=nCells
42+ end do
43+
3044 allocate (mpsPerElm(nCells))
3145 mpsPerElm = 1 ! all elements have 1 MP and some changed below
3246 mpsPerElm(1 ) = 0 ! 1st element has 0 MPs
@@ -70,7 +84,7 @@ subroutine createTest(mpMesh, nCells, numMPs, mp2Elm, isMPActive)
7084 deallocate (mpsPerElm)
7185end subroutine
7286
73- subroutine rebuildTests (mpMesh , numMPs , mp2Elm , isMPActive )
87+ subroutine rebuildMPsTests (mpMesh , numMPs , mp2Elm , isMPActive )
7488 implicit none
7589 type (c_ptr):: mpMesh
7690 integer :: numMPs, i, numMPsLarger
@@ -255,27 +269,14 @@ program main
255269 latVertex, &
256270 verticesOnCell, cellsOnCell)
257271
258- ! test on new createMPs
272+ ! check for allocation
259273 call assert(nCells .ge. 3 , " This test requires a mesh with at least three cells" )
260274 numMPs = nCells+2 ;
261275 allocate (mp2Elm(numMPs))
262276 allocate (isMPActive(numMPs))
263277
264- isMPActive = MP_ACTIVE ! no inactive MPs and some changed below
265- isMPActive(4 ) = MP_INACTIVE ! first/1-st MP is indexed 1 and 4-th MP is inactive
266-
267- ! mp2Elm = [2,3,2,0,3,4,5,6,...]
268- mp2Elm(1 ) = 2
269- mp2Elm(2 ) = 3
270- mp2Elm(3 ) = 2
271- ! mp2Elm(4) is not needed/used since 4-th MP is inactive
272- do i = 5 ,numMPs
273- mp2Elm(i) = i-2 ! i=5 leads to mp2Elm(5)=3 (5-th MP in 3-rd element)
274- ! i=numMPs leads to mp2Elm(numMPs=nCells+2)=numMPs-2=nCells
275- end do
276-
277- call createTest(mpMesh, nCells, numMPs, mp2Elm, isMPActive)
278- call rebuildTests(mpMesh, numMPs, mp2Elm, isMPActive)
278+ call createMPsTest(mpMesh, nCells, numMPs, mp2Elm, isMPActive)
279+ call rebuildMPsTests(mpMesh, numMPs, mp2Elm, isMPActive)
279280
280281 deallocate (mp2Elm)
281282 deallocate (isMPActive)
0 commit comments