load_params_ss Subroutine

private subroutine load_params_ss(params)

Arguments

Type IntentOptional AttributesName
type(KORC_PARAMS), intent(in) :: params

Contents

Source Code


Source Code

  subroutine load_params_ss(params)
    TYPE(KORC_PARAMS), INTENT(IN) 	:: params
    REAL(rp) 				:: Te
    ! Electron temperature
    REAL(rp) 				:: Ti
    ! Ion temperature
    REAL(rp) 				:: ne
    ! Background electron density
    REAL(rp) 				:: Zeff
    ! Effective atomic number of ions
    REAL(rp) 				:: dTau
    ! Subcycling time step in collisional time units (Tau)
    CHARACTER(MAX_STRING_LENGTH) 	:: ne_profile
    CHARACTER(MAX_STRING_LENGTH) 	:: Te_profile
    CHARACTER(MAX_STRING_LENGTH) 	:: Zeff_profile
    CHARACTER(MAX_STRING_LENGTH) 	:: filename
    REAL(rp) 				:: radius_profile
    REAL(rp) 				:: neo
    REAL(rp) 				:: Teo
    REAL(rp) 				:: Zeffo
    REAL(rp) 				:: n_ne
    REAL(rp) 				:: n_Te
    REAL(rp) 				:: n_Zeff
    REAL(rp), DIMENSION(4) 		:: a_ne
    REAL(rp), DIMENSION(4) 		:: a_Te
    REAL(rp), DIMENSION(4) 		:: a_Zeff
    LOGICAL 				:: axisymmetric
    REAL(rp)  ::  n_REr0
    REAL(rp)  ::  n_tauion
    REAL(rp)  ::  n_lamfront,psiN_0
    REAL(rp)  ::  n_lamback,n_lamshelf,n_shelfdelay,n_tauin,n_tauout,n_shelf

    NAMELIST /CollisionParamsSingleSpecies/ Te, Ti, ne, Zeff, dTau

    NAMELIST /plasmaProfiles/ radius_profile,ne_profile,neo,n_ne,a_ne,&
         Te_profile,Teo,n_Te,a_Te,n_REr0,n_tauion,n_lamfront,n_lamback, &
         Zeff_profile,Zeffo,n_Zeff,a_Zeff,filename,axisymmetric, &
         n_lamshelf,n_shelfdelay,n_tauin,n_tauout,n_shelf,psiN_0


    open(unit=default_unit_open,file=TRIM(params%path_to_inputs), &
         status='OLD',form='formatted')
    read(default_unit_open,nml=CollisionParamsSingleSpecies)
    close(default_unit_open)

    cparams_ss%Te = Te*C_E
    cparams_ss%Ti = Ti*C_E
    cparams_ss%ne = ne
    cparams_ss%Zeff = Zeff
    cparams_ss%dTau = dTau

    cparams_ss%rD = SQRT(C_E0*cparams_ss%Te/(cparams_ss%ne*C_E**2*(1.0_rp + &
         cparams_ss%Te/cparams_ss%Ti)))

    cparams_ss%re = C_E**2/(4.0_rp*C_PI*C_E0*C_ME*C_C**2)
    cparams_ss%CoulombLogee = CLogee_wu(params,cparams_ss%ne,cparams_ss%Te)
    cparams_ss%CoulombLogei = CLogei_wu(params,cparams_ss%ne,cparams_ss%Te)
    
    cparams_ss%VTe = VTe_wu(cparams_ss%Te)
    cparams_ss%delta = cparams_ss%VTe/C_C
    cparams_ss%Gammaco = C_E**4/(4.0_rp*C_PI*C_E0**2)
    cparams_ss%Gammac = Gammac_wu(params,cparams_ss%ne,cparams_ss%Te)

    
    cparams_ss%Tauc = C_ME**2*cparams_ss%VTe**3/cparams_ss%Gammac
    cparams_ss%Tau = C_ME**2*C_C**3/cparams_ss%Gammac

    cparams_ss%Ec = C_ME*C_C/(C_E*cparams_ss%Tau)
    cparams_ss%ED = cparams_ss%ne*C_E**3*cparams_ss%CoulombLogee/ &
         (4.0_rp*C_PI*C_E0**2*cparams_ss%Te)

    cparams_ss%taur=6*C_PI*C_E0*(C_ME*C_C)**3/(C_E**4*params%cpp%Bo**2* &
         params%cpp%time)
    
    !	ALLOCATE(cparams_ss%rnd_num(3,cparams_ss%rnd_dim))
    !	call RANDOM_NUMBER(cparams_ss%rnd_num)
    cparams_ss%rnd_num_count = 1_idef

    open(unit=default_unit_open,file=TRIM(params%path_to_inputs), &
         status='OLD',form='formatted')
    read(default_unit_open,nml=plasmaProfiles)
    close(default_unit_open)

    cparams_ss%P%a = radius_profile
    cparams_ss%P%ne_profile = TRIM(ne_profile)
    cparams_ss%P%neo = neo
    cparams_ss%P%n_ne = n_ne
    cparams_ss%P%a_ne = a_ne

    cparams_ss%P%Te_profile = TRIM(Te_profile)
    cparams_ss%P%Teo = Teo*C_E
    cparams_ss%P%n_Te = n_Te
    cparams_ss%P%a_Te = a_Te

    cparams_ss%P%Zeff_profile = TRIM(Zeff_profile)
    cparams_ss%P%Zeffo = Zeffo
    cparams_ss%P%n_Zeff = n_Zeff
    cparams_ss%P%a_Zeff = a_Zeff
  end subroutine load_params_ss