start_finish.f90 Source File

Start and stop the solver


This file depends on

sourcefile~~start_finish.f90~~EfferentGraph sourcefile~start_finish.f90 start_finish.f90 sourcefile~solver.f90 solver.f90 sourcefile~start_finish.f90->sourcefile~solver.f90 sourcefile~fclose.f90 fclose.f90 sourcefile~start_finish.f90->sourcefile~fclose.f90 sourcefile~wall.f90 wall.f90 sourcefile~solver.f90->sourcefile~wall.f90 sourcefile~time.f90 time.f90 sourcefile~solver.f90->sourcefile~time.f90 sourcefile~boundary_state_reconstruction.f90 boundary_state_reconstruction.f90 sourcefile~solver.f90->sourcefile~boundary_state_reconstruction.f90 sourcefile~interface1.f90 interface1.f90 sourcefile~solver.f90->sourcefile~interface1.f90 sourcefile~summon_grad_evaluation.f90 summon_grad_evaluation.f90 sourcefile~solver.f90->sourcefile~summon_grad_evaluation.f90 sourcefile~viscous2.f90 viscous2.f90 sourcefile~solver.f90->sourcefile~viscous2.f90 sourcefile~global_vars.f90 global_vars.f90 sourcefile~solver.f90->sourcefile~global_vars.f90 sourcefile~layout.f90 layout.f90 sourcefile~solver.f90->sourcefile~layout.f90 sourcefile~state.f90 state.f90 sourcefile~solver.f90->sourcefile~state.f90 sourcefile~gradients.f90 gradients.f90 sourcefile~solver.f90->sourcefile~gradients.f90 sourcefile~wall_dist.f90 wall_dist.f90 sourcefile~solver.f90->sourcefile~wall_dist.f90 sourcefile~mapping.f90 mapping.f90 sourcefile~solver.f90->sourcefile~mapping.f90 sourcefile~resnorm.f90 resnorm.f90 sourcefile~solver.f90->sourcefile~resnorm.f90 sourcefile~source.f90 source.f90 sourcefile~solver.f90->sourcefile~source.f90 sourcefile~bc.f90 bc.f90 sourcefile~solver.f90->sourcefile~bc.f90 sourcefile~geometry.f90 geometry.f90 sourcefile~solver.f90->sourcefile~geometry.f90 sourcefile~viscosity.f90 viscosity.f90 sourcefile~solver.f90->sourcefile~viscosity.f90 sourcefile~utils.f90 utils.f90 sourcefile~solver.f90->sourcefile~utils.f90 sourcefile~dump_solution.f90 dump_solution.f90 sourcefile~solver.f90->sourcefile~dump_solution.f90 sourcefile~string.f90 string.f90 sourcefile~solver.f90->sourcefile~string.f90 sourcefile~bc_primitive.f90 bc_primitive.f90 sourcefile~solver.f90->sourcefile~bc_primitive.f90 sourcefile~read.f90 read.f90 sourcefile~solver.f90->sourcefile~read.f90 sourcefile~update.f90 update.f90 sourcefile~solver.f90->sourcefile~update.f90 sourcefile~cc.f90 CC.f90 sourcefile~solver.f90->sourcefile~cc.f90 sourcefile~global.f90 global.f90 sourcefile~solver.f90->sourcefile~global.f90 sourcefile~grid.f90 grid.f90 sourcefile~solver.f90->sourcefile~grid.f90 sourcefile~fclose.f90->sourcefile~global.f90 sourcefile~wall.f90->sourcefile~global_vars.f90 sourcefile~wall.f90->sourcefile~utils.f90 sourcefile~wall.f90->sourcefile~string.f90 sourcefile~wall.f90->sourcefile~global.f90 sourcefile~bitwise.f90 bitwise.f90 sourcefile~wall.f90->sourcefile~bitwise.f90 sourcefile~time.f90->sourcefile~global_vars.f90 sourcefile~time.f90->sourcefile~geometry.f90 sourcefile~time.f90->sourcefile~utils.f90 sourcefile~time.f90->sourcefile~string.f90 sourcefile~time.f90->sourcefile~read.f90 sourcefile~boundary_state_reconstruction.f90->sourcefile~global_vars.f90 sourcefile~boundary_state_reconstruction.f90->sourcefile~utils.f90 sourcefile~interface1.f90->sourcefile~global_vars.f90 sourcefile~interface1.f90->sourcefile~mapping.f90 sourcefile~interface1.f90->sourcefile~utils.f90 sourcefile~summon_grad_evaluation.f90->sourcefile~global_vars.f90 sourcefile~summon_grad_evaluation.f90->sourcefile~utils.f90 sourcefile~summon_grad_evaluation.f90->sourcefile~string.f90 sourcefile~ghost_gradient.f90 ghost_gradient.f90 sourcefile~summon_grad_evaluation.f90->sourcefile~ghost_gradient.f90 sourcefile~viscous2.f90->sourcefile~global_vars.f90 sourcefile~viscous2.f90->sourcefile~geometry.f90 sourcefile~viscous2.f90->sourcefile~utils.f90 sourcefile~viscous2.f90->sourcefile~string.f90 sourcefile~viscous2.f90->sourcefile~global.f90 sourcefile~global_sa.f90 global_sa.f90 sourcefile~viscous2.f90->sourcefile~global_sa.f90 sourcefile~global_kkl.f90 global_kkl.f90 sourcefile~viscous2.f90->sourcefile~global_kkl.f90 sourcefile~global_sst.f90 global_sst.f90 sourcefile~viscous2.f90->sourcefile~global_sst.f90 sourcefile~global_vars.f90->sourcefile~global.f90 sourcefile~layout.f90->sourcefile~global_vars.f90 sourcefile~layout.f90->sourcefile~utils.f90 sourcefile~layout.f90->sourcefile~global.f90 sourcefile~state.f90->sourcefile~global_vars.f90 sourcefile~state.f90->sourcefile~layout.f90 sourcefile~state.f90->sourcefile~utils.f90 sourcefile~state.f90->sourcefile~string.f90 sourcefile~state.f90->sourcefile~global.f90 sourcefile~read_output.f90 read_output.f90 sourcefile~state.f90->sourcefile~read_output.f90 sourcefile~check_outout_control.f90 check_outout_control.f90 sourcefile~state.f90->sourcefile~check_outout_control.f90 sourcefile~gradients.f90->sourcefile~global_vars.f90 sourcefile~gradients.f90->sourcefile~utils.f90 sourcefile~lctm2015_gradients.f90 lctm2015_gradients.f90 sourcefile~gradients.f90->sourcefile~lctm2015_gradients.f90 sourcefile~laminar_gradients.f90 laminar_gradients.f90 sourcefile~gradients.f90->sourcefile~laminar_gradients.f90 sourcefile~sst_gradients.f90 sst_gradients.f90 sourcefile~gradients.f90->sourcefile~sst_gradients.f90 sourcefile~kkl_gradients.f90 kkl_gradients.f90 sourcefile~gradients.f90->sourcefile~kkl_gradients.f90 sourcefile~sa_gradients.f90 sa_gradients.f90 sourcefile~gradients.f90->sourcefile~sa_gradients.f90 sourcefile~wall_dist.f90->sourcefile~global_vars.f90 sourcefile~wall_dist.f90->sourcefile~utils.f90 sourcefile~wall_dist.f90->sourcefile~global.f90 sourcefile~mapping.f90->sourcefile~fclose.f90 sourcefile~mapping.f90->sourcefile~global_vars.f90 sourcefile~mapping.f90->sourcefile~utils.f90 sourcefile~mapping.f90->sourcefile~string.f90 sourcefile~mapping.f90->sourcefile~global.f90 sourcefile~resnorm.f90->sourcefile~fclose.f90 sourcefile~resnorm.f90->sourcefile~global_vars.f90 sourcefile~resnorm.f90->sourcefile~layout.f90 sourcefile~resnorm.f90->sourcefile~utils.f90 sourcefile~resnorm.f90->sourcefile~string.f90 sourcefile~resnorm.f90->sourcefile~global.f90 sourcefile~source.f90->sourcefile~global_vars.f90 sourcefile~source.f90->sourcefile~layout.f90 sourcefile~source.f90->sourcefile~utils.f90 sourcefile~source.f90->sourcefile~dump_solution.f90 sourcefile~source.f90->sourcefile~string.f90 sourcefile~source.f90->sourcefile~cc.f90 sourcefile~source.f90->sourcefile~global_sa.f90 sourcefile~source.f90->sourcefile~global_kkl.f90 sourcefile~source.f90->sourcefile~global_sst.f90 sourcefile~bc.f90->sourcefile~global_vars.f90 sourcefile~bc.f90->sourcefile~utils.f90 sourcefile~read_bc.f90 read_bc.f90 sourcefile~bc.f90->sourcefile~read_bc.f90 sourcefile~geometry.f90->sourcefile~global_vars.f90 sourcefile~geometry.f90->sourcefile~utils.f90 sourcefile~viscosity.f90->sourcefile~global_vars.f90 sourcefile~viscosity.f90->sourcefile~utils.f90 sourcefile~viscosity.f90->sourcefile~global_sa.f90 sourcefile~copy_bc.f90 copy_bc.f90 sourcefile~viscosity.f90->sourcefile~copy_bc.f90 sourcefile~viscosity.f90->sourcefile~global_kkl.f90 sourcefile~viscosity.f90->sourcefile~global_sst.f90 sourcefile~utils.f90->sourcefile~global_vars.f90 sourcefile~dump_solution.f90->sourcefile~global_vars.f90 sourcefile~dump_solution.f90->sourcefile~layout.f90 sourcefile~dump_solution.f90->sourcefile~utils.f90 sourcefile~dump_solution.f90->sourcefile~string.f90 sourcefile~dump_solution.f90->sourcefile~global.f90 sourcefile~write_output.f90 write_output.f90 sourcefile~dump_solution.f90->sourcefile~write_output.f90 sourcefile~bc_primitive.f90->sourcefile~global_vars.f90 sourcefile~bc_primitive.f90->sourcefile~utils.f90 sourcefile~bc_primitive.f90->sourcefile~copy_bc.f90 sourcefile~ft_bc.f90 FT_bc.f90 sourcefile~bc_primitive.f90->sourcefile~ft_bc.f90 sourcefile~bc_primitive.f90->sourcefile~global_sst.f90 sourcefile~bc_primitive.f90->sourcefile~read_bc.f90 sourcefile~read.f90->sourcefile~fclose.f90 sourcefile~read.f90->sourcefile~global_vars.f90 sourcefile~read.f90->sourcefile~utils.f90 sourcefile~read.f90->sourcefile~string.f90 sourcefile~read.f90->sourcefile~global.f90 sourcefile~update.f90->sourcefile~time.f90 sourcefile~update.f90->sourcefile~boundary_state_reconstruction.f90 sourcefile~update.f90->sourcefile~interface1.f90 sourcefile~update.f90->sourcefile~summon_grad_evaluation.f90 sourcefile~update.f90->sourcefile~viscous2.f90 sourcefile~update.f90->sourcefile~global_vars.f90 sourcefile~update.f90->sourcefile~source.f90 sourcefile~update.f90->sourcefile~geometry.f90 sourcefile~update.f90->sourcefile~viscosity.f90 sourcefile~update.f90->sourcefile~utils.f90 sourcefile~update.f90->sourcefile~string.f90 sourcefile~update.f90->sourcefile~bc_primitive.f90 sourcefile~update.f90->sourcefile~global_sa.f90 sourcefile~plusgs.f90 plusgs.f90 sourcefile~update.f90->sourcefile~plusgs.f90 sourcefile~update.f90->sourcefile~global_kkl.f90 sourcefile~update.f90->sourcefile~global_sst.f90 sourcefile~lusgs.f90 lusgs.f90 sourcefile~update.f90->sourcefile~lusgs.f90 sourcefile~cc.f90->sourcefile~global_vars.f90 sourcefile~cc.f90->sourcefile~utils.f90 sourcefile~grid.f90->sourcefile~global_vars.f90 sourcefile~grid.f90->sourcefile~mapping.f90 sourcefile~grid.f90->sourcefile~utils.f90 sourcefile~grid.f90->sourcefile~global.f90

Files dependent on this one

sourcefile~~start_finish.f90~~AfferentGraph sourcefile~start_finish.f90 start_finish.f90 sourcefile~main.f90 main.f90 sourcefile~main.f90->sourcefile~start_finish.f90

Contents

Source Code


Source Code

  !< Start and stop the solver
module start_finish
  !< Start and stop the solver
  use fclose, only: close_all_files
  use solver, only: destroy_solver
  use solver, only: setup_solver
#include "../mpi.inc"
  private

  public :: abort_run
  public :: finish_run
  public :: start_run

  contains

    subroutine abort_run()
      !< Aborting the solver
      implicit none
      integer :: ierr

      call close_all_files()
      call destroy_solver()
      call MPI_FINALIZE(ierr)
      stop

    end subroutine abort_run

    subroutine finish_run()
      !< Finishing the solution computation
      implicit none
      integer :: ierr

      call close_all_files()
      call destroy_solver()
      call MPI_FINALIZE(ierr)

    end subroutine finish_run

    subroutine start_run()
      !< Starting the solver setup
      implicit none
      integer :: ierr

      call MPI_INIT(ierr)
      call setup_solver()

    end subroutine start_run

end module start_finish