init Subroutine

public subroutine init()

Routine that calls the initialisation routines author: P J Knight, CCFE, Culham Science Centre None This routine calls the main initialisation routines that set the default values for the global variables, reads in data from the input file, and checks the run parameters for consistency.

Arguments

None

Contents

Source Code


Source Code

   subroutine init

      !! Routine that calls the initialisation routines
      !! author: P J Knight, CCFE, Culham Science Centre
      !! None
      !! This routine calls the main initialisation routines that set
      !! the default values for the global variables, reads in data from
      !! the input file, and checks the run parameters for consistency.

      use global_variables, only: verbose, fileprefix, output_prefix
      use main_module, only: run_summary
      use constants, only: opt_file, vfile, nout, nplot, mfile, sig_file
      use error_handling, only: initialise_error_list
      use numerics, only: ixc , lablxc, nvar
      use process_input, only: nin, input
      use stellarator_module, only: stinit
      implicit none

      !  Arguments

      !  Local variables
      integer :: i

      ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

      !  Initialise error handling

      call initialise_error_list

      !  Initialise the program variables
      call initial

      !  Open the input/output external files
      if (trim(fileprefix) == "") then
         open(unit=nin,file="IN.DAT",status='old')
      else
         open(unit=nin,file=trim(fileprefix),status='old')
      end if
      ! open(unit=nin,file=trim(fileprefix)//'IN.DAT',status='old')

      open(unit=nout     ,file=trim(output_prefix)//'OUT.DAT'   ,status='unknown')
      open(unit=mfile    ,file=trim(output_prefix)//'MFILE.DAT' ,status='unknown')

      !  Input any desired new initial values
      call input

      !  Initialise stellarator parameters if necessary
      !  This overrides some of the bounds of the tokamak parameters
      call stinit

      !  Check input data for errors/ambiguities
      call check

      !  Write to the output file certain relevant details about this run
      call run_summary

      !  Open verbose diagnostics file
      if (verbose == 1) then
         open(unit=vfile,file=trim(output_prefix)//'VFILE.DAT',status='unknown')
         write(vfile,'(a80)') 'nviter = number of VMCON iterations.'
         write(vfile,'(a80)') '(1-mod(ifail,7))=1 indicates that there has '// &
            'been an escape from a failed line search.'
         write(vfile,'(a80)') 'odd/even is a convenient plotting bit.'
         write(vfile,'(100a13)') 'nviter','escape', 'odd/even', 'te','coe','rmajor', &
            'fusion_power','bt','tburn','sqsumsq', (lablxc(ixc(i)),i=1,nvar)
      end if

   end subroutine init