my_final Subroutine

private subroutine my_final(gcomp, importState, exportState, parentclock, rc)

Arguments

Type IntentOptional Attributes Name
type(ESMF_GridComp) :: gcomp
type(ESMF_State) :: importState
type(ESMF_State) :: exportState
type(ESMF_Clock) :: parentclock
integer, intent(out) :: rc

Calls

proc~~my_final~~CallsGraph proc~my_final my_final proc~esmf_cplcompdestroy ESMF_CplCompDestroy proc~my_final->proc~esmf_cplcompdestroy proc~esmf_cplcompfinalize ESMF_CplCompFinalize proc~my_final->proc~esmf_cplcompfinalize proc~esmf_gridcompdestroy ESMF_GridCompDestroy proc~my_final->proc~esmf_gridcompdestroy proc~esmf_gridcompfinalize ESMF_GridCompFinalize proc~my_final->proc~esmf_gridcompfinalize proc~esmf_logwrite ESMF_LogWrite proc~my_final->proc~esmf_logwrite proc~esmf_basesetstatus ESMF_BaseSetStatus proc~esmf_cplcompdestroy->proc~esmf_basesetstatus proc~esmf_compdestruct ESMF_CompDestruct proc~esmf_cplcompdestroy->proc~esmf_compdestruct proc~esmf_compisdualconnected ESMF_CompIsDualConnected proc~esmf_cplcompdestroy->proc~esmf_compisdualconnected proc~esmf_cplcompgetinit ESMF_CplCompGetInit proc~esmf_cplcompdestroy->proc~esmf_cplcompgetinit proc~esmf_imerr ESMF_IMErr proc~esmf_cplcompdestroy->proc~esmf_imerr proc~esmf_logfounderror ESMF_LogFoundError proc~esmf_cplcompdestroy->proc~esmf_logfounderror proc~esmf_logseterror ESMF_LogSetError proc~esmf_cplcompdestroy->proc~esmf_logseterror proc~esmf_compexecute ESMF_CompExecute proc~esmf_cplcompfinalize->proc~esmf_compexecute proc~esmf_cplcompfinalize->proc~esmf_compisdualconnected proc~esmf_cplcompfinalize->proc~esmf_cplcompgetinit proc~esmf_cplcompfinalize->proc~esmf_imerr proc~esmf_cplcompfinalize->proc~esmf_logfounderror proc~esmf_cplcompfinalize->proc~esmf_logseterror proc~esmf_gridcompdestroy->proc~esmf_basesetstatus proc~esmf_gridcompdestroy->proc~esmf_compdestruct proc~esmf_gridcompdestroy->proc~esmf_compisdualconnected proc~esmf_gridcompgetinit ESMF_GridCompGetInit proc~esmf_gridcompdestroy->proc~esmf_gridcompgetinit proc~esmf_gridcompdestroy->proc~esmf_imerr proc~esmf_gridcompdestroy->proc~esmf_logfounderror proc~esmf_gridcompdestroy->proc~esmf_logseterror proc~esmf_gridcompfinalize->proc~esmf_compexecute proc~esmf_gridcompfinalize->proc~esmf_compisdualconnected proc~esmf_gridcompfinalize->proc~esmf_gridcompgetinit proc~esmf_gridcompfinalize->proc~esmf_imerr proc~esmf_gridcompfinalize->proc~esmf_logfounderror proc~esmf_gridcompfinalize->proc~esmf_logseterror 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

Source Code

    subroutine my_final(gcomp, importState, exportState, parentclock, rc)
      type(ESMF_GridComp) :: gcomp
      type(ESMF_State) :: importState
      type(ESMF_State) :: exportState
      type(ESMF_Clock) :: parentclock
      integer, intent(out) :: rc
     
      call ESMF_LogWrite("Parent Gridded Component Finalize routine called", ESMF_LOGMSG_INFO)

      ! Give each of the subcomponents a chance to finalize themselves.
      call ESMF_GridCompFinalize(comp1Grid, importState=G1imp, &
        exportState=G1exp, clock=parentclock, rc=rc)
      call ESMF_GridCompFinalize(comp2Grid, importState=G2imp, &
        exportState=G2exp, clock=parentclock, rc=rc)

      call ESMF_CplCompFinalize(compCoupler, importState=G1exp, &
        exportState=G2imp, clock=parentclock, rc=rc)

      ! Now remove the Components to free up their resources
      call ESMF_GridCompDestroy(comp1Grid, rc=rc)
      call ESMF_GridCompDestroy(comp2Grid, rc=rc)
      call ESMF_CplCompDestroy(compCoupler, rc=rc)

      call ESMF_LogWrite( "Parent Gridded Component Finalize routine finished", ESMF_LOGMSG_INFO)
      rc=ESMF_SUCCESS

    end subroutine my_final