ESPUTR
calculation of sputtering yields
Functions/Subroutines | Variables
esputr1993 Module Reference

Functions/Subroutines

subroutine, public esputr1993_init (constantsFile, err)
 Initialization of the 1993-model. More...
 
logical function, public esputr1993_if_initialized ()
 Return .true. if module esputr1993 is initialized. More...
 
subroutine, public esputr1993_check (res, err)
 Check integrity and validity of data in the module. More...
 
subroutine, public esputr1993_deallocate (err)
 Deallocate dynamic arrays used by the module ESPUTR1993. More...
 
integer function, public esputr1993_getprojectileid (proj, err)
 Return ID of the projectile for the 1993-model. More...
 
integer function, public esputr1993_gettargetid (targ, err)
 Return ID of the target for the 1993-model. More...
 
real(esputr_dp) function, public esputr1993_yn (E0, proj_id, targ_id, err)
 Calculate sputtering yield for normal incidence with 1993-model for a given incident energy and target-projectile combination. More...
 
real(esputr_dp) function, public esputr1993_yth (theta, err)
 Angular dependence of sputtering yield in 1993-model for given incident angle. More...
 
real(esputr_dp) function, public esputr1993_eth (proj_id, targ_id, err)
 Return threshold energy for the given projectile-target combination. More...
 
subroutine, public esputr1993_availablecombinations (combinations, err)
 Return the list of available projectile-target combinations. More...
 

Variables

integer, parameter, public esputr1993_first_col_width = 11
 Width of the first column in the input file. More...
 
integer, save, private nheaderlines
 Number of comment lines in the beginning of the input file All lines including the first line which starts with '=' are considered to be comment lines. If there is no line starting with '=', no line is treated as comment. More...
 
integer, parameter, private col_width = 9
 Width of the columns in the input file. More...
 
integer, parameter, private lines_per_target = 6
 Number of lines for each target in in the input file (excluding blank lines) More...
 
integer, parameter, private nconstants = 3
 Number of parameters read from the input file for one target/projectile combination. More...
 
integer, save, private ntargets
 Number of loaded targets. More...
 
integer, save, private nprojectiles
 Number of loaded projectiles. More...
 
real(esputr_dp), dimension(:,:,:), allocatable, save, private fitvalues
 Array with parameters of fitting formula for normal incidence for 1993-model. More...
 
character(esputr1993_first_col_width), dimension(:), allocatable, save, private targets_names
 Array of strings with the names of targets. More...
 
character(esputr1993_first_col_width), dimension(:), allocatable, save, private projectiles_names
 Array of strings with the names of projectiles. More...
 

Function/Subroutine Documentation

subroutine, public esputr1993::esputr1993_init ( character(*), intent(in)  constantsFile,
integer, intent(out)  err 
)
logical function, public esputr1993::esputr1993_if_initialized ( )

Return .true. if module esputr1993 is initialized.

Definition at line 259 of file esputr1993.f90.

References fitvalues.

Referenced by esputr1993_test::esputr1993_test_initialized().

Here is the caller graph for this function:

subroutine, public esputr1993::esputr1993_check ( integer, intent(out)  res,
integer, intent(out)  err 
)

Check integrity and validity of data in the module.

Parameters
[out]resCode of the result
  • 0: the data are valid
  • 1: some or all arrays are not allocated
  • 2: inconsistent array size
  • 3: E_tf <= 0
  • 4: E_th <= 0
  • 5: Q <= 0
Parameters
[out]errError code

Definition at line 264 of file esputr1993.f90.

References esputr::esputr_unit, fitvalues, nprojectiles, ntargets, projectiles_names, and targets_names.

Referenced by esputr1993_init().

Here is the caller graph for this function:

subroutine, public esputr1993::esputr1993_deallocate ( integer, intent(out)  err)
integer function, public esputr1993::esputr1993_getprojectileid ( character(*), intent(in)  proj,
integer, intent(out)  err 
)

Return ID of the projectile for the 1993-model.

The ID index is to be used in function esputr1993_yn

Parameters
[in]projString with the name of projectile
[out]errError code
  • 101 : requested projectile is not found

Definition at line 352 of file esputr1993.f90.

References esputr::esputr_unit, and projectiles_names.

Referenced by esputr1993_test::esputr1993_test_call_uninitialized(), esputr1993_test::esputr1993_test_compare(), esputr1993_test::esputr1993_test_eth(), esputr1993_test::esputr1993_test_unknown_elements(), esputr_yn(), and writejsonarray().

Here is the caller graph for this function:

integer function, public esputr1993::esputr1993_gettargetid ( character(*), intent(in)  targ,
integer, intent(out)  err 
)

Return ID of the target for the 1993-model.

The ID index is to be used in function esputr1993_yn

Parameters
[in]targString with the name of the target
[out]errError code
  • 102 : requested target is not found

Definition at line 382 of file esputr1993.f90.

References esputr::esputr_unit, and targets_names.

Referenced by esputr1993_test::esputr1993_test_call_uninitialized(), esputr1993_test::esputr1993_test_compare(), esputr1993_test::esputr1993_test_eth(), esputr1993_test::esputr1993_test_unknown_elements(), esputr_yn(), and writejsonarray().

Here is the caller graph for this function:

real(esputr_dp) function, public esputr1993::esputr1993_yn ( real(esputr_dp), intent(in)  E0,
integer, intent(in)  proj_id,
integer, intent(in)  targ_id,
integer, intent(out)  err 
)

Calculate sputtering yield for normal incidence with 1993-model for a given incident energy and target-projectile combination.

Same formula is used as in the subroutine SPUTER of EIRENE, see [W. Eckstein et al., Atomic as plasma-material interaction data for fusion, vol. 7, Part B (2001)] Chapter 2, first Equation on Page 18

Parameters
[in]e0Incident energy, eV
[in]proj_idProjectile ID returned by yesputr1993_getProjectileId
[in]targ_idTarget ID returned by esputr1993_getTargetId
[out]errError code

Definition at line 417 of file esputr1993.f90.

References esputr::esputr_unit, fitvalues, nprojectiles, and ntargets.

Referenced by esputr1993_test::esputr1993_test_call_uninitialized(), esputr1993_test::esputr1993_test_compare(), esputr1993_test::esputr1993_test_wrong_ids(), and esputr_yn().

Here is the caller graph for this function:

real(esputr_dp) function, public esputr1993::esputr1993_yth ( real(esputr_dp), intent(in)  theta,
integer, intent(out)  err 
)

Angular dependence of sputtering yield in 1993-model for given incident angle.

Yamamura formula with f=2 and theta_opt=75 deg. See [W. Eckstein et al., Atomic as plasma-material interaction data for fusion, vol. 7, Part B (2001)] Chapter 2, first Equation on Page 19. This model was used in the EIRENE subroutine SPUTER. Maximum for cChosen set of parameters is 3.3902

Parameters
[in]thetaAngle of incidence, radian

Angle between surface normal and the incident velocity: 0 for normal incidence

Parameters
[out]errError code

Definition at line 468 of file esputr1993.f90.

References esputr::esputr_pi, esputr::esputr_pi2, and esputr::esputr_unit.

Referenced by esputr1993_test::esputr1993_test_th(), esputr1993_test::esputr1993_test_wrong_angle(), and esputr_yth().

Here is the caller graph for this function:

real(esputr_dp) function, public esputr1993::esputr1993_eth ( integer, intent(in)  proj_id,
integer, intent(in)  targ_id,
integer, intent(out)  err 
)

Return threshold energy for the given projectile-target combination.

Parameters
[in]proj_idProjectile ID returned by yesputr1993_getProjectileId
[in]targ_idTarget ID returned by esputr1993_getTargetId
[out]errError code

Definition at line 505 of file esputr1993.f90.

References esputr::esputr_unit, fitvalues, nprojectiles, and ntargets.

Referenced by esputr1993_test::esputr1993_test_eth(), and writejsonarray().

Here is the caller graph for this function:

subroutine, public esputr1993::esputr1993_availablecombinations ( character(esputr1993_first_col_width), dimension(:,:), intent(inout), allocatable  combinations,
integer, intent(out)  err 
)

Return the list of available projectile-target combinations.

Parameters
[in,out]combinations(:,1) are the projectiles, (:,2) are the targets

Definition at line 532 of file esputr1993.f90.

References esputr::esputr_unit, nprojectiles, ntargets, projectiles_names, and targets_names.

Referenced by sendavailablecombinations().

Here is the caller graph for this function:

Variable Documentation

integer, parameter, public esputr1993::esputr1993_first_col_width = 11

Width of the first column in the input file.

Definition at line 36 of file esputr1993.f90.

Referenced by esputr1993_init().

integer, save, private esputr1993::nheaderlines

Number of comment lines in the beginning of the input file All lines including the first line which starts with '=' are considered to be comment lines. If there is no line starting with '=', no line is treated as comment.

Definition at line 41 of file esputr1993.f90.

Referenced by esputr1993_init().

integer, parameter, private esputr1993::col_width = 9

Width of the columns in the input file.

Definition at line 43 of file esputr1993.f90.

Referenced by esputr1993_init().

integer, parameter, private esputr1993::lines_per_target = 6

Number of lines for each target in in the input file (excluding blank lines)

Definition at line 45 of file esputr1993.f90.

Referenced by esputr1993_init().

integer, parameter, private esputr1993::nconstants = 3

Number of parameters read from the input file for one target/projectile combination.

Definition at line 47 of file esputr1993.f90.

Referenced by esputr1993_init().

integer, save, private esputr1993::ntargets

Number of loaded targets.

Definition at line 49 of file esputr1993.f90.

Referenced by esputr1993_availablecombinations(), esputr1993_check(), esputr1993_eth(), esputr1993_init(), and esputr1993_yn().

integer, save, private esputr1993::nprojectiles

Number of loaded projectiles.

Definition at line 51 of file esputr1993.f90.

Referenced by esputr1993_availablecombinations(), esputr1993_check(), esputr1993_eth(), esputr1993_init(), and esputr1993_yn().

real(esputr_dp), dimension(:,:,:), allocatable, save, private esputr1993::fitvalues

Array with parameters of fitting formula for normal incidence for 1993-model.

FITVALUES(NTARGETS, NPROJECTILES, NCONSTANTS)

2nd index is the index of target, 3rd index is the index of projectile

  • FITVALUES(1,:,:) is E_tf
  • FITVALUES(2,:,:) is E_th
  • FITVALUES(3,:,:) is Q

Definition at line 62 of file esputr1993.f90.

Referenced by esputr1993_check(), esputr1993_deallocate(), esputr1993_eth(), esputr1993_if_initialized(), esputr1993_init(), and esputr1993_yn().

character(esputr1993_first_col_width), dimension(:), allocatable, save, private esputr1993::targets_names

Array of strings with the names of targets.

TARGETS_NAMES(NTARGETS)

Definition at line 66 of file esputr1993.f90.

Referenced by esputr1993_availablecombinations(), esputr1993_check(), esputr1993_deallocate(), esputr1993_gettargetid(), and esputr1993_init().

character(esputr1993_first_col_width), dimension(:), allocatable, save, private esputr1993::projectiles_names

Array of strings with the names of projectiles.

PROJECTILES_NAMES(NPROJECTILES)

Definition at line 70 of file esputr1993.f90.

Referenced by esputr1993_availablecombinations(), esputr1993_check(), esputr1993_deallocate(), esputr1993_getprojectileid(), and esputr1993_init().