Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(ESMF_Base) | :: | base | ||||
character(len=*), | intent(in), | optional | :: | name | ||
character(len=*), | intent(in), | optional | :: | namespace | ||
integer, | intent(out), | optional | :: | rc |
subroutine ESMF_SetName(base, name, namespace, rc) ! ! !ARGUMENTS: type(ESMF_Base) :: base character (len = *), intent(in), optional :: name character (len = *), intent(in), optional :: namespace integer, intent(out), optional :: rc ! ! !DESCRIPTION: ! Associate a name with any object in the system. ! ! \begin{description} ! \item [base] ! In the Fortran interface this must be an {\tt ESMF\_Base} ! derived type object. It is expected that all specialized ! derived types will include a {\tt ESMF\_Base} object as the ! first entry. ! \item [{[name]}] ! Object name. An error will be returned if a duplicate name ! is specified. If a name is not given a unique name will be ! generated and can be queried by the {\tt ESMF\_GetName} routine. ! \item [{[namespace]}] ! Object namespace (e.g. "Application", "Component", "IGrid", etc). ! If given, the name will be checked that it is unique within ! this namespace. If not given, the generated name will be ! unique within this namespace. If namespace is not specified, ! a default "global" namespace will be assumed and the same rules ! for names will be followed. ! \item [{[rc]}] ! Return code; equals {\tt ESMF\_SUCCESS} if there are no errors. ! \end{description} ! ! !EOPI logical :: rcpresent ! Return code present integer :: localrc ! Initialize return code; assume routine not implemented rcpresent = .FALSE. if(present(rc)) then rcpresent = .TRUE. rc = ESMF_RC_NOT_IMPL endif localrc = ESMF_RC_NOT_IMPL ! TODO: remove this once everyone is initializing their Base objects. ! cheat for old code for now. if (base%isInit .ne. ESMF_INIT_CREATED) then call ESMF_BaseCreate(base, namespace, name, 0, rc=localrc) if (rcpresent) rc = localrc return endif ! end cheat call c_ESMC_SetName(base , namespace, name, localrc) if (rcpresent) rc = localrc end subroutine ESMF_SetName