ESMF_SetName Subroutine

public subroutine ESMF_SetName(base, name, namespace, rc)

Arguments

Type IntentOptional Attributes Name
type(ESMF_Base) :: base
character(len=*), intent(in), optional :: name
character(len=*), intent(in), optional :: namespace
integer, intent(out), optional :: rc

Calls

proc~~esmf_setname~~CallsGraph proc~esmf_setname ESMF_SetName c_esmc_setname c_esmc_setname proc~esmf_setname->c_esmc_setname proc~esmf_basecreate ESMF_BaseCreate proc~esmf_setname->proc~esmf_basecreate c_esmc_basecreate c_esmc_basecreate proc~esmf_basecreate->c_esmc_basecreate proc~esmf_logfounderror ESMF_LogFoundError proc~esmf_basecreate->proc~esmf_logfounderror esmf_breakpoint esmf_breakpoint proc~esmf_logfounderror->esmf_breakpoint proc~esmf_logrc2msg ESMF_LogRc2Msg proc~esmf_logfounderror->proc~esmf_logrc2msg proc~esmf_logwrite ESMF_LogWrite proc~esmf_logfounderror->proc~esmf_logwrite c_esmc_loggeterrormsg c_esmc_loggeterrormsg proc~esmf_logrc2msg->c_esmc_loggeterrormsg 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

Called by

proc~~esmf_setname~~CalledByGraph proc~esmf_setname ESMF_SetName proc~esmf_compset ESMF_CompSet proc~esmf_compset->proc~esmf_setname proc~esmf_fieldset ESMF_FieldSet proc~esmf_fieldset->proc~esmf_setname proc~esmf_stateset ESMF_StateSet proc~esmf_stateset->proc~esmf_setname proc~esmf_cplcompset ESMF_CplCompSet proc~esmf_cplcompset->proc~esmf_compset proc~esmf_gridcompset ESMF_GridCompSet proc~esmf_gridcompset->proc~esmf_compset proc~esmf_scicompset ESMF_SciCompSet proc~esmf_scicompset->proc~esmf_compset proc~f_esmf_compinsertvm f_esmf_compinsertvm proc~f_esmf_compinsertvm->proc~esmf_compset proc~f_esmf_compreplicate f_esmf_compreplicate proc~f_esmf_compreplicate->proc~esmf_compset proc~f_esmf_compsetvminfo f_esmf_compsetvminfo proc~f_esmf_compsetvminfo->proc~esmf_compset proc~nuopc_advertisefield NUOPC_AdvertiseField proc~nuopc_advertisefield->proc~esmf_fieldset proc~testfieldnamedalias TestFieldNamedAlias proc~testfieldnamedalias->proc~esmf_fieldset program~esmf_fieldutest ESMF_FieldUTest program~esmf_fieldutest->proc~esmf_fieldset interface~nuopc_advertise NUOPC_Advertise interface~nuopc_advertise->proc~nuopc_advertisefield proc~comp1_init comp1_init proc~comp1_init->proc~esmf_gridcompset proc~comp2_init comp2_init proc~comp2_init->proc~esmf_gridcompset proc~esmf_gridcompcreate ESMF_GridCompCreate proc~esmf_gridcompcreate->proc~esmf_gridcompset proc~esmfio_create ESMFIO_Create proc~esmfio_create->proc~esmf_gridcompset proc~f_esmf_cplcompset f_esmf_cplcompset proc~f_esmf_cplcompset->proc~esmf_cplcompset proc~f_esmf_gridcompset f_esmf_gridcompset proc~f_esmf_gridcompset->proc~esmf_gridcompset proc~f_esmf_scicompset f_esmf_scicompset proc~f_esmf_scicompset->proc~esmf_scicompset proc~nuopc_advertisefields NUOPC_AdvertiseFields proc~nuopc_advertisefields->proc~nuopc_advertisefield proc~nuopc_gridcompsetclock NUOPC_GridCompSetClock proc~nuopc_gridcompsetclock->proc~esmf_gridcompset proc~setmodelservices SetModelServices proc~setmodelservices->proc~esmf_gridcompset proc~setmodelservices~2 SetModelServices proc~setmodelservices~2->proc~esmf_gridcompset proc~testcplcompnamedalias TestCplCompNamedAlias proc~testcplcompnamedalias->proc~esmf_cplcompset proc~testgridcompnamedalias TestGridCompNamedAlias proc~testgridcompnamedalias->proc~esmf_gridcompset proc~testscicompnamedalias TestSciCompNamedAlias proc~testscicompnamedalias->proc~esmf_scicompset proc~user_init~62 user_init proc~user_init~62->proc~esmf_gridcompset proc~user_init~68 user_init proc~user_init~68->proc~esmf_gridcompset program~esmf_appdriver ESMF_AppDriver program~esmf_appdriver->proc~esmf_gridcompset program~esmf_namedaliasutest ESMF_NamedAliasUTest program~esmf_namedaliasutest->proc~testfieldnamedalias

Source Code

  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