ocean_fold_exchange_destroy Subroutine

public subroutine ocean_fold_exchange_destroy()

Release the plan, buffers and topology. Idempotent.

Arguments

None

Calls

proc~~ocean_fold_exchange_destroy~~CallsGraph proc~ocean_fold_exchange_destroy ocean_fold_exchange_destroy proc~fold_plan_destroy fold_plan_t%fold_plan_destroy proc~ocean_fold_exchange_destroy->proc~fold_plan_destroy

Called by

proc~~ocean_fold_exchange_destroy~~CalledByGraph proc~ocean_fold_exchange_destroy ocean_fold_exchange_destroy proc~engine_teardown engine_teardown proc~engine_teardown->proc~ocean_fold_exchange_destroy proc~ocean_fold_exchange_init ocean_fold_exchange_init proc~ocean_fold_exchange_init->proc~ocean_fold_exchange_destroy proc~driver_run_ocean driver_run_ocean proc~driver_run_ocean->proc~engine_teardown proc~engine_setup engine_setup proc~driver_run_ocean->proc~engine_setup proc~driver_validate driver_validate proc~driver_validate->proc~engine_teardown proc~driver_validate->proc~engine_setup proc~engine_setup->proc~ocean_fold_exchange_init proc~rdb_ocean_destroy rdb_ocean_destroy proc~rdb_ocean_destroy->proc~engine_teardown proc~complete_ocean_create complete_ocean_create proc~complete_ocean_create->proc~engine_setup proc~driver_run driver_run proc~driver_run->proc~driver_run_ocean proc~rdb_ocean_create_finalize rdb_ocean_create_finalize proc~rdb_ocean_create_finalize->proc~complete_ocean_create proc~rdb_ocean_create_from_string rdb_ocean_create_from_string proc~rdb_ocean_create_from_string->proc~complete_ocean_create

Source Code

   subroutine ocean_fold_exchange_destroy()
      !! Release the plan, buffers and topology.  Idempotent.
      if (.not. fx_initialised) return
      if (fx_active) then
         !$acc exit data delete(fx_sn, fx_rn, fx_scol, fx_speer, fx_se, &
         !$acc&                 fx_rcol, fx_rpeer, fx_re, fx_rcls)
         if (allocated(fx_sbuf)) then
            !$acc exit data delete(fx_sbuf, fx_rbuf)
            deallocate (fx_sbuf, fx_rbuf)
         end if
         deallocate (fx_peer_rank, fx_sn, fx_rn, fx_scol, fx_speer, fx_se, &
                     fx_rcol, fx_rpeer, fx_re, fx_rcls, fx_reqs, fx_stats)
      end if
      call fx_plan%destroy()
      fx_cap = 0
      fx_slab_cap = 0
      fx_npeer = 0
      fx_self = 0
      fx_nmax = 1
      fx_active = .false.
      fx_open = .false.
      fx_sent = .false.
      fx_initialised = .false.
   end subroutine ocean_fold_exchange_destroy