Run Subroutine

private subroutine Run(gcomp, istate, estate, clock, rc)

Arguments

Type IntentOptional Attributes Name
type(ESMF_GridComp) :: gcomp
type(ESMF_State) :: istate
type(ESMF_State) :: estate
type(ESMF_Clock) :: clock
integer, intent(out) :: rc

Calls

proc~~run~4~~CallsGraph proc~run~4 Run proc~esmf_traceregionenter ESMF_TraceRegionEnter proc~run~4->proc~esmf_traceregionenter proc~esmf_traceregionexit ESMF_TraceRegionExit proc~run~4->proc~esmf_traceregionexit c_esmftrace_region_enter c_esmftrace_region_enter proc~esmf_traceregionenter->c_esmftrace_region_enter proc~esmf_logfounderror ESMF_LogFoundError proc~esmf_traceregionenter->proc~esmf_logfounderror c_esmftrace_region_exit c_esmftrace_region_exit proc~esmf_traceregionexit->c_esmftrace_region_exit proc~esmf_traceregionexit->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

Source Code

    subroutine Run(gcomp, istate, estate, clock, rc)
      type(ESMF_GridComp):: gcomp
      type(ESMF_State):: istate, estate
      type(ESMF_Clock):: clock
      integer, intent(out):: rc

      integer :: i, j, k
      character(len=64) :: name, name2
      
      
      call ESMF_TraceRegionEnter("my_run", rc=rc)
      if (rc /= ESMF_SUCCESS) return
      
      !print *, "Inside Run"

      ! do i=1,25
      !   write(name, "(A25,I2)") "region_with_longer_name_", i
      !   call ESMF_TraceRegionEnter(trim(name), rc=rc)
      !   if (rc /= ESMF_SUCCESS) return

      !   ! waste some time
      !   k=1
      !   do j=1,i*10000
      !     k=k+1
      !     if (mod(k, 10000) == 0) then
      !       write(name2, "(A13,I6)") "inner_region_", k
      !       call ESMF_TraceRegionEnter(trim(name2), rc=rc)
      !       if (rc /= ESMF_SUCCESS) return
      !       call ESMF_TraceRegionExit(trim(name2), rc=rc)
      !       if (rc /= ESMF_SUCCESS) return
      !     endif
      !   enddo

      !   call ESMF_TraceRegionExit(trim(name), rc=rc)
      !   if (rc /= ESMF_SUCCESS) return        
      ! enddo      

      call ESMF_TraceRegionExit("my_run", rc=rc)
      if (rc /= ESMF_SUCCESS) return

      rc = ESMF_SUCCESS
      
    end subroutine Run