ESMF_BaseCreate Subroutine

public subroutine ESMF_BaseCreate(base, superclass, name, nattr, vm, rc)

Arguments

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

Calls

proc~~esmf_basecreate~~CallsGraph proc~esmf_basecreate 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 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_logopenfile->proc~esmf_utiliounitflush proc~esmf_utiliounitget ESMF_UtilIOUnitGet proc~esmf_logopenfile->proc~esmf_utiliounitget

Called by

proc~~esmf_basecreate~~CalledByGraph proc~esmf_basecreate ESMF_BaseCreate proc~esmf_compconstruct ESMF_CompConstruct proc~esmf_compconstruct->proc~esmf_basecreate proc~esmf_locstreamcreatefromdg ESMF_LocStreamCreateFromDG proc~esmf_locstreamcreatefromdg->proc~esmf_basecreate proc~esmf_setname ESMF_SetName proc~esmf_setname->proc~esmf_basecreate proc~esmf_xgridconstructbaseobj ESMF_XGridConstructBaseObj proc~esmf_xgridconstructbaseobj->proc~esmf_basecreate program~esmf_baseutest ESMF_BaseUTest program~esmf_baseutest->proc~esmf_basecreate interface~esmf_locstreamcreate ESMF_LocStreamCreate interface~esmf_locstreamcreate->proc~esmf_locstreamcreatefromdg proc~esmf_compset ESMF_CompSet proc~esmf_compset->proc~esmf_setname proc~esmf_cplcompcreate ESMF_CplCompCreate proc~esmf_cplcompcreate->proc~esmf_compconstruct proc~esmf_fieldset ESMF_FieldSet proc~esmf_fieldset->proc~esmf_setname proc~esmf_gridcompcreate ESMF_GridCompCreate proc~esmf_gridcompcreate->proc~esmf_compconstruct proc~esmf_locstreamcreatefromlocal ESMF_LocStreamCreateFromLocal proc~esmf_locstreamcreatefromlocal->proc~esmf_locstreamcreatefromdg proc~esmf_locstreamcreatefromnewdg ESMF_LocStreamCreateFromNewDG proc~esmf_locstreamcreatefromnewdg->proc~esmf_locstreamcreatefromdg proc~esmf_locstreamcreateirreg ESMF_LocStreamCreateIrreg proc~esmf_locstreamcreateirreg->proc~esmf_locstreamcreatefromdg proc~esmf_locstreamcreatereg ESMF_LocStreamCreateReg proc~esmf_locstreamcreatereg->proc~esmf_locstreamcreatefromdg proc~esmf_scicompcreate ESMF_SciCompCreate proc~esmf_scicompcreate->proc~esmf_compconstruct proc~esmf_stateset ESMF_StateSet proc~esmf_stateset->proc~esmf_setname proc~esmf_xgridcreate ESMF_XGridCreate proc~esmf_xgridcreate->proc~esmf_xgridconstructbaseobj proc~esmf_xgridcreatefromsparsemat ESMF_XGridCreateFromSparseMat proc~esmf_xgridcreatefromsparsemat->proc~esmf_xgridconstructbaseobj

Source Code

  subroutine ESMF_BaseCreate(base, superclass, name, nattr, vm, rc)
!
! !ARGUMENTS:
    type(ESMF_Base)                         :: base
    character(len=*), intent(in)            :: superclass
    character(len=*), intent(in),  optional :: name
    integer,          intent(in),  optional :: nattr
    type(ESMF_VM),    intent(in),  optional :: vm
    integer,          intent(out), optional :: rc

!
! !DESCRIPTION:
!     Set initial state on a Base object.
!
!     \begin{description}
!     \item [base]
!           An {\tt ESMF\_Base} derived type.  It is expected that all 
!           specialized derived types will include an {\tt ESMF\_Base} 
!           object as the first entry.
!     \item [superclass]
!           The name of the superclass, e.g. {\tt "IGrid"}, {\tt "Array"}.
!           This sets the scope for unique object names.
!     \item [{[name]}]
!           If given, the unique name for this object.  If not given,
!           a unique name will be generated.  
!     \item [{[nattr]}]
!           If given, the initial number of attributes to allocate space for.
!           Additional attributes can be added at any time, but it will be
!           more efficient if space is allocated at create time.
!     \item[{[vm]}]
!           If present, base is created on the specified {\tt ESMF\_VM} object.
!           The default is to create on the VM of the current component context.
!     \item [{[rc]}]
!           Return code; equals {\tt ESMF\_SUCCESS} if there are no errors.
!
!     \end{description}
!
!EOPI

    integer :: localrc, allocNAttrs

    ! Initialize return code; assume routine not implemented
    if (present(rc)) rc = ESMF_RC_NOT_IMPL

    allocNAttrs = 0   ! default value, overwrite if argument specified
    if (present(nattr)) allocNAttrs = nattr

    if (present(name)) then
      call c_ESMC_BaseCreate(base , superclass, name, allocNattrs, vm, localrc)
      if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, &
        ESMF_CONTEXT, rcToReturn=rc)) return
    else
      call c_ESMC_BaseCreate(base , superclass, "", allocNattrs, vm, localrc)
      if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, &
        ESMF_CONTEXT, rcToReturn=rc)) return
    endif
    
    ! Set init code
    ESMF_INIT_SET_CREATED(base)
 
    ! Return successfully
    if (present(rc)) rc = ESMF_SUCCESS
 
  end subroutine ESMF_BaseCreate