test_AllReduce_min Subroutine

public subroutine test_AllReduce_min()

Arguments

None

Calls

proc~~test_allreduce_min~2~~CallsGraph proc~test_allreduce_min~2 test_AllReduce_min interface~esmf_vmallreduce ESMF_VMAllReduce proc~test_allreduce_min~2->interface~esmf_vmallreduce proc~esmf_test ESMF_Test proc~test_allreduce_min~2->proc~esmf_test proc~esmf_vmallreducei4 ESMF_VMAllReduceI4 interface~esmf_vmallreduce->proc~esmf_vmallreducei4 proc~esmf_vmallreducei4s ESMF_VMAllReduceI4S interface~esmf_vmallreduce->proc~esmf_vmallreducei4s proc~esmf_vmallreducei8 ESMF_VMAllReduceI8 interface~esmf_vmallreduce->proc~esmf_vmallreducei8 proc~esmf_vmallreducer4 ESMF_VMAllReduceR4 interface~esmf_vmallreduce->proc~esmf_vmallreducer4 proc~esmf_vmallreducer8 ESMF_VMAllReduceR8 interface~esmf_vmallreduce->proc~esmf_vmallreducer8 proc~esmf_logwrite ESMF_LogWrite proc~esmf_test->proc~esmf_logwrite c_esmc_vmwtime c_esmc_vmwtime proc~esmf_logwrite->c_esmc_vmwtime proc~esmf_logclose ESMF_LogClose proc~esmf_logwrite->proc~esmf_logclose proc~esmf_logflush ESMF_LogFlush proc~esmf_logwrite->proc~esmf_logflush proc~esmf_logopenfile ESMF_LogOpenFile proc~esmf_logwrite->proc~esmf_logopenfile proc~esmf_utiliounitflush ESMF_UtilIOUnitFlush proc~esmf_logwrite->proc~esmf_utiliounitflush proc~esmf_utilstring2array ESMF_UtilString2Array proc~esmf_logwrite->proc~esmf_utilstring2array interface~c_esmc_vmallreduce c_ESMC_VMAllReduce proc~esmf_vmallreducei4->interface~c_esmc_vmallreduce proc~esmf_imerr ESMF_IMErr proc~esmf_vmallreducei4->proc~esmf_imerr proc~esmf_logfounderror ESMF_LogFoundError proc~esmf_vmallreducei4->proc~esmf_logfounderror proc~esmf_logseterror ESMF_LogSetError proc~esmf_vmallreducei4->proc~esmf_logseterror proc~esmf_vmgetinit ESMF_VMGetInit proc~esmf_vmallreducei4->proc~esmf_vmgetinit proc~esmf_vmallreducei4s->interface~c_esmc_vmallreduce proc~esmf_vmallreducei4s->proc~esmf_imerr proc~esmf_vmallreducei4s->proc~esmf_logfounderror proc~esmf_vmallreducei4s->proc~esmf_logseterror proc~esmf_vmallreducei4s->proc~esmf_vmgetinit proc~esmf_vmallreducei8->interface~c_esmc_vmallreduce proc~esmf_vmallreducei8->proc~esmf_imerr proc~esmf_vmallreducei8->proc~esmf_logfounderror proc~esmf_vmallreducei8->proc~esmf_logseterror proc~esmf_vmallreducei8->proc~esmf_vmgetinit proc~esmf_vmallreducer4->interface~c_esmc_vmallreduce proc~esmf_vmallreducer4->proc~esmf_imerr proc~esmf_vmallreducer4->proc~esmf_logfounderror proc~esmf_vmallreducer4->proc~esmf_logseterror proc~esmf_vmallreducer4->proc~esmf_vmgetinit proc~esmf_vmallreducer8->interface~c_esmc_vmallreduce proc~esmf_vmallreducer8->proc~esmf_imerr proc~esmf_vmallreducer8->proc~esmf_logfounderror proc~esmf_vmallreducer8->proc~esmf_logseterror proc~esmf_vmallreducer8->proc~esmf_vmgetinit proc~esmf_imerr->proc~esmf_logfounderror proc~esmf_initcheckdeep ESMF_InitCheckDeep proc~esmf_imerr->proc~esmf_initcheckdeep proc~esmf_logclose->proc~esmf_logflush proc~esmf_logflush->proc~esmf_utiliounitflush proc~esmf_utilarray2string ESMF_UtilArray2String proc~esmf_logflush->proc~esmf_utilarray2string proc~esmf_logfounderror->proc~esmf_logwrite esmf_breakpoint esmf_breakpoint proc~esmf_logfounderror->esmf_breakpoint proc~esmf_logrc2msg ESMF_LogRc2Msg proc~esmf_logfounderror->proc~esmf_logrc2msg proc~esmf_logopenfile->proc~esmf_utiliounitflush proc~esmf_utiliounitget ESMF_UtilIOUnitGet proc~esmf_logopenfile->proc~esmf_utiliounitget proc~esmf_logseterror->proc~esmf_logwrite proc~esmf_logseterror->esmf_breakpoint proc~esmf_logseterror->proc~esmf_logrc2msg

Source Code

      subroutine test_AllReduce_min
      !Test with Integer arguments
      !==========================
      !------------------------------------------------------------------------
      !EX_UTest
      write(failMsg, *) "Did not return ESMF_SUCCESS"
      write(name, *) "VM All Reduce ESMF_REDUCE_MINTest"
      call ESMF_VMAllReduce(vm, sendData=array1, recvData=array3, &
                            count=nsize, reduceflag=ESMF_REDUCE_MIN, rc=rc)
      call ESMF_Test((rc.eq.ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE)

      !------------------------------------------------------------------------
      !EX_UTest
      isum=0
      do i=1,nsize
        array3_soln(i) = minval( array2(i,:) )
        print *, localPet,'array3(',i,')=',array3(i), &
                          'array3_soln(',i,')=',array3_soln(i)
        isum=isum + abs( array3(i) - array3_soln(i) )
      end do
      write(failMsg, *) "Returned wrong results"
      write(name, *) "Verify All Reduce ESMF_REDUCE_MINResults Test"
      call ESMF_Test((isum.eq.0.), name, failMsg, result, ESMF_SRCLINE)

      !Test with ESMF_KIND_R8 arguments
      !================================
      !------------------------------------------------------------------------
      !EX_UTest
      write(failMsg, *) "Did not return ESMF_SUCCESS"
      write(name, *) "VM All Reduce ESMF_REDUCE_MINTest: ESMF_KIND_R8"
      call ESMF_VMAllReduce(vm, sendData=farray1, recvData=farray3, &
                            count=nsize, reduceflag=ESMF_REDUCE_MIN, rc=rc)
      call ESMF_Test((rc.eq.ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE)

      !------------------------------------------------------------------------
      !EX_UTest
      fsum=0
      do i=1,nsize
        farray3_soln(i) = minval( farray2(i,:) )
        print *, localPet,'farray3(',i,')=',farray3(i), &
                          'farray3_soln(',i,')=',farray3_soln(i)
        fsum=fsum + real(abs( farray3(i) - farray3_soln(i) ))
      end do
      write(failMsg, *) "Returned wrong results"
      write(name, *) "Verify All Reduce ESMF_REDUCE_MINResults Test:ESMF_KIND_R8"
      call ESMF_Test((fsum.eq.0.), name, failMsg, result, ESMF_SRCLINE)


      !Test with ESMF_KIND_R4 arguments
      !================================
      !------------------------------------------------------------------------
      !EX_UTest
      write(failMsg, *) "Did not return ESMF_SUCCESS"
      write(name, *) "VM All Reduce ESMF_REDUCE_MINTest: ESMF_KIND_R4"
      call ESMF_VMAllReduce(vm, sendData=f4array1, recvData=f4array3, &
                            count=nsize, reduceflag=ESMF_REDUCE_MIN, rc=rc)
      call ESMF_Test((rc.eq.ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE)

      !------------------------------------------------------------------------
      !EX_UTest
      fsum=0
      do i=1,nsize
        f4array3_soln(i) = minval( f4array2(i,:) )
        print *, localPet,'f4array3(',i,')=',f4array3(i), &
                          'f4array3_soln(',i,')=',f4array3_soln(i)
        fsum=fsum + abs( f4array3(i) - f4array3_soln(i) )
      end do
      write(failMsg, *) "Returned wrong results"
      write(name, *) "Verify All Reduce ESMF_REDUCE_MINResults Test:ESMF_KIND_R4"
      call ESMF_Test((fsum.eq.0.), name, failMsg, result, ESMF_SRCLINE)

      end subroutine test_AllReduce_min