45 character(*),
intent(in) :: fileN
46 integer,
intent(out) :: err
54 character(*),
intent(in) :: fileN, fileTH
55 integer,
intent(out) :: err
63 character(*),
intent(in) :: fileN
64 integer,
intent(out) :: err
72 character(*),
intent(in) :: fileTH
73 integer,
intent(out) :: err
82 integer,
intent(out) :: err
91 subroutine esputr_yn(E0s, n_E0s, proj, targ, version, YNs, err)
93 integer,
intent(in) :: n_E0s
94 real(kind=esputr_dp),
dimension(n_E0s),
intent(in) :: E0s
95 character(*),
intent(in) :: proj
96 character(*),
intent(in) :: targ
97 character(*),
intent(in) :: version
98 integer,
intent(out) :: err
99 real(kind=esputr_dp),
dimension(size(E0s)),
intent(out) :: YNs
102 subroutine esputr_yth(THs, n_THs, E0s, n_E0s, proj, targ, version, YTHs, err)
104 integer,
intent(in) :: n_THs
105 integer,
intent(in) :: n_E0s
106 real(kind=esputr_dp),
dimension(n_THs),
intent(in) :: THs
107 real(kind=esputr_dp),
dimension(n_E0s),
intent(in) :: E0s
108 character(*),
intent(in) :: proj
109 character(*),
intent(in) :: targ
110 character(*),
intent(in) :: version
111 integer,
intent(out) :: err
112 real(kind=esputr_dp),
dimension(size(THs), size(E0s)) :: YTHs
124 subroutine esputr_yn(E0s, n_E0s, proj, targ, version, YNs, err)
130 real(kind=esputr_dp),
dimension(n_E0s),
intent(in) :: E0s
132 integer,
intent(in) :: n_E0s
134 character(*),
intent(in) :: proj
136 character(*),
intent(in) :: targ
138 character(*),
intent(in) :: version
140 integer,
intent(out) :: err
142 real(kind=esputr_dp),
dimension(size(E0s)),
intent(out) :: YNs
143 integer :: i, projId, targId, projTargId, err_
147 if(version ==
"1993")
then
149 if(err /= 0)
goto 1000
151 if(err /= 0)
goto 1000
154 if(err /= 0)
goto 1000
156 else if(version ==
"2001")
then
158 if(err /= 0)
goto 1000
161 if(err /= 0)
goto 1000
169 write(
esputr_unit,*)
"YNs for ",trim(proj),
" on ",trim(targ),
" completed"
183 subroutine esputr_yth(THs, n_THs, E0s, n_E0s, proj, targ, version, YTHs, err)
189 real(kind=esputr_dp),
dimension(n_THs),
intent(in) :: THs
191 integer,
intent(in) :: n_THs
193 real(kind=esputr_dp),
dimension(n_E0s),
intent(in) :: E0s
195 integer,
intent(in) :: n_E0s
197 character(*),
intent(in) :: proj
199 character(*),
intent(in) :: targ
201 character(*),
intent(in) :: version
203 integer,
intent(out) :: err
206 real(kind=esputr_dp),
dimension(size(THs), size(E0s)),
intent(out) :: YTHs
207 integer :: i, t, projTargIdl, projTargIdu, err_
212 if(version ==
"1993")
then
216 if(err /= 0)
goto 2000
219 else if(version ==
"2001")
then
222 if(err /= 0)
goto 2000
225 yths(t,i) =
esputr2001_yth(e0s(i), ths(t), projtargidl, projtargidu, err)
226 if(err /= 0)
goto 2000
233 if(err /= 0)
goto 2000
235 write(
esputr_unit,*)
"esputr_yth for ",trim(proj),
" on ",trim(targ),
" completed"
251 character(*),
intent(in) :: proj
253 character(*),
intent(in) :: targ
255 real(kind=esputr_dp),
intent(out) :: Emin
257 real(kind=esputr_dp),
intent(out) :: Emax
258 integer,
intent(out) :: err
259 integer :: projTargIdl, projTargIdu
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 targe...
integer function, public esputr1993_getprojectileid(proj, err)
Return ID of the projectile for the 1993-model.
subroutine esputr_deallocate(err)
call esputr2001_deallocate and esputr1993_deallocate
subroutine, public esputr1993_deallocate(err)
Deallocate dynamic arrays used by the module ESPUTR1993.
subroutine, public esputr2001_getavailableenergyrange(projTargStartId, projTargEndId, Emin, Emax, err)
Get the minimum and maximum energies for which the angular dependency factor is defined.
subroutine, public esputr2001_initn(fileNName, err)
subroutine, public esputr1993_init(constantsFile, err)
Initialization of the 1993-model.
subroutine esputr2001_initth_wrapper(fileTH, err)
module-less wrapper for esputr2001_initTH
subroutine, public esputr2001_deallocate(err)
Deallocate dynamic arrays used by this module.
subroutine esputr1993_init_wrapper(fileN, err)
See include esputr_octave.hpp, esputr_YN.cpp, esputr_YTH.cpp as an example of how to use those subrou...
real(esputr_dp) function, public esputr2001_yth(E0, theta, projTargStartId, projTargEndId, err)
Angular dependence of sputtering yield in 2001-model for given incident angle and energy...
integer function, public esputr2001_getprojectiletargetidn(proj, targ, err)
Return ID for a projectile-target combination for 2001-model for normal incidence.
subroutine esputr_yth(THs, n_THs, E0s, n_E0s, proj, targ, version, YTHs, err)
Calculate the angular dependence factor Y(E,theta)/Y(E,0) for selected incident angles and energies f...
subroutine esputr_yn(E0s, n_E0s, proj, targ, version, YNs, err)
Calculate sputtering yield for normal incidence for selected incident energies and the specified proj...
integer function, public esputr1993_gettargetid(targ, err)
Return ID of the target for the 1993-model.
real(esputr_dp) function, public esputr1993_yth(theta, err)
Angular dependence of sputtering yield in 1993-model for given incident angle.
subroutine esputr2001_initn_wrapper(fileN, err)
module-less wraper for esputr2001_initN
real(esputr_dp) function, public esputr2001_yn(E0, projectileTarget_id, err)
Calculate sputtering yield for normal incidence with 2001-model for given incident energy and target-...
subroutine esputr2001_getavailableenergyrangebyname(proj, targ, Emin, Emax, err)
Return the minimum and maximum energies for which the angular dependence data are defined...
subroutine, public esputr2001_initth(fileTHName, err)
subroutine, public esputr2001_getprojectiletargetidsth(proj, targ, thLower, thUpper, err)
Return two IDs for a projectile-target combination for 2001-model for angular dependence.
subroutine, public esputr2001_init(fileNName, fileThName, err)
Initialization of the 2001-model.
subroutine esputr2001_init_wrapper(fileN, fileTH, err)
module-less wraper for esputr2001_initN
integer, save, public esputr_unit
Index of the unit for standard output, default value 6.