subroutine test_AllFullReduce_sum ! This subroutine tests all the overloaded versions of the full ESMF global sum. ! Test with integer arguments !============================= !EX_UTest write(failMsg, *) "Did not return ESMF_SUCCESS" write(name, *) "VM All Full Reduce ESMF_REDUCE_SUM Test" call ESMF_VMAllFullReduce(vm, sendData=array1, recvData=func_results, & count=nsize, reduceflag=ESMF_REDUCE_SUM, rc=rc) call ESMF_Test((rc.eq.ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE) ! print the result myresults = SUM(array2) print *, 'Global sum:' print *, localPet,' func_results: ', func_results, & ' myresults:', myresults !------------------------------------------------------------------------ !EX_UTest write(failMsg, *) "Returned wrong results" write(name, *) "Verify All Full Reduce ESMF_REDUCE_SUM Results Test" call ESMF_Test((func_results.eq.myresults), name, failMsg, & result, ESMF_SRCLINE) !------------------------------------------------------------------------ !Test with ESMF_KIND_R8 arguments !================================= !EX_UTest write(failMsg, *) "Did not return ESMF_SUCCESS" write(name, *) "VM All Full Reduce ESMF_REDUCE_SUM Test: ESMF_KIND_R8" call ESMF_VMAllFullReduce(vm, sendData=farray1, recvData=float_results, & count=nsize, reduceflag=ESMF_REDUCE_SUM, rc=rc) call ESMF_Test((rc.eq.ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE) ! print the result my_float_results = SUM(farray2) print *, 'Global sum:' print *, localPet,' float_results: ', float_results, & ' my_float_results:', my_float_results !------------------------------------------------------------------------ !EX_UTest write(failMsg, *) "Returned wrong results" write(name, *) "Verify Reduce ESMF_REDUCE_SUM Results Test: ESMF_KIND_R8" call ESMF_Test((float_results.eq.my_float_results), name, failMsg, & result, ESMF_SRCLINE) !------------------------------------------------------------------------ !Test with ESMF_KIND_R4 arguments !================================= !EX_UTest write(failMsg, *) "Did not return ESMF_SUCCESS" write(name, *) "VM All Full Reduce ESMF_REDUCE_SUM Test: ESMF_KIND_R4" call ESMF_VMAllFullReduce(vm, sendData=f4array1, recvData=float4_results,& count=nsize, reduceflag=ESMF_REDUCE_SUM, rc=rc) call ESMF_Test((rc.eq.ESMF_SUCCESS), name, failMsg, result, ESMF_SRCLINE) ! print the result my_float4_results = SUM(f4array2) print *, 'Global sum:' print *, localPet,' float4_results: ', float4_results, & ' my_float4_results:', my_float4_results !------------------------------------------------------------------------ !EX_UTest write(failMsg, *) "Returned wrong results" write(name, *) "Verify Reduce ESMF_REDUCE_SUM Results Test: ESMF_KIND_R4" call ESMF_Test((float4_results.eq.my_float4_results), name, failMsg, & result, ESMF_SRCLINE) !------------------------------------------------------------------------ end subroutine test_AllFullReduce_sum