Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=THARN_MAXSTR), | intent(in) | :: | lstring | |||
integer, | intent(in) | :: | MemBeg | |||
integer, | intent(in) | :: | MemEnd | |||
integer, | intent(out) | :: | localrc |
integer function dist_rank(lstring, MemBeg, MemEnd, localrc) !--------------------------------------------------------------------------- ! This function returns the distribution rank as specified by the ! descriptor string. !--------------------------------------------------------------------------- ! arguments character(len=THARN_MAXSTR), intent(in ) :: lstring integer, intent(in ) :: MemBeg, MemEnd integer, intent( out) :: localrc ! local variables character(len=3) :: pattern3 integer :: nDist ! initialize variables localrc = ESMF_RC_NOT_IMPL !--------------------------------------------------------------------------- ! Check each memory chunk to see if any of the dimensions are distributed. !--------------------------------------------------------------------------- pattern3 = 'BCA' nDist = set_query(lstring(MemBeg:MemEnd), pattern3) if ( nDist == 0 ) then call ESMF_LogSetError( ESMF_FAILURE, & msg="Syntax Error - no distribution indicated", & rcToReturn=localrc) return endif dist_rank = nDist !--------------------------------------------------------------------------- ! if I've gotten this far without an error, then the routine has succeeded. !--------------------------------------------------------------------------- localrc = ESMF_SUCCESS !--------------------------------------------------------------------------- end function dist_rank