forked from lijiext/lammps
129 lines
3.0 KiB
Fortran
Executable File
129 lines
3.0 KiB
Fortran
Executable File
c
|
|
c Declaration in pair_meam.h:
|
|
c
|
|
c void meam_setup_param(int *, double *, int *, int *, int *);
|
|
c
|
|
c Call in pair_meam.cpp
|
|
c
|
|
c meam_setup_param(&which,&value,&nindex,index,&errorflag);
|
|
c
|
|
c
|
|
c
|
|
c The "which" argument corresponds to the index of the "keyword" array
|
|
c in pair_meam.cpp:
|
|
c
|
|
c 0 = Ec_meam
|
|
c 1 = alpha_meam
|
|
c 2 = rho0_meam
|
|
c 3 = delta_meam
|
|
c 4 = lattce_meam
|
|
c 5 = attrac_meam
|
|
c 6 = repuls_meam
|
|
c 7 = nn2_meam
|
|
c 8 = Cmin_meam
|
|
c 9 = Cmax_meam
|
|
c 10 = rc_meam
|
|
c 11 = delr_meam
|
|
c 12 = augt1
|
|
c 13 = gsmooth_factor
|
|
c 14 = re_meam
|
|
c 15 = ialloy
|
|
|
|
subroutine meam_setup_param(which, value, nindex,
|
|
$ index, errorflag)
|
|
|
|
use meam_data
|
|
implicit none
|
|
|
|
integer which, nindex, index(3), errorflag
|
|
real*8 value
|
|
|
|
errorflag = 0
|
|
|
|
c 0 = Ec_meam
|
|
if (which.eq.0) then
|
|
Ec_meam(index(1),index(2)) = value
|
|
|
|
c 1 = alpha_meam
|
|
else if (which.eq.1) then
|
|
alpha_meam(index(1),index(2)) = value
|
|
|
|
c 2 = rho0_meam
|
|
else if (which.eq.2) then
|
|
rho0_meam(index(1)) = value
|
|
|
|
c 3 = delta_meam
|
|
else if (which.eq.3) then
|
|
delta_meam(index(1),index(2)) = value
|
|
|
|
c 4 = lattce_meam
|
|
else if (which.eq.4) then
|
|
if (value.eq.0) then
|
|
lattce_meam(index(1),index(2)) = "fcc"
|
|
else if (value.eq.1) then
|
|
lattce_meam(index(1),index(2)) = "bcc"
|
|
else if (value.eq.2) then
|
|
lattce_meam(index(1),index(2)) = "hcp"
|
|
else if (value.eq.3) then
|
|
lattce_meam(index(1),index(2)) = "dim"
|
|
else if (value.eq.4) then
|
|
lattce_meam(index(1),index(2)) = "dia"
|
|
else if (value.eq.5) then
|
|
lattce_meam(index(1),index(2)) = 'b1'
|
|
else if (value.eq.6) then
|
|
lattce_meam(index(1),index(2)) = 'c11'
|
|
else if (value.eq.7) then
|
|
lattce_meam(index(1),index(2)) = 'l12'
|
|
endif
|
|
|
|
c 5 = attrac_meam
|
|
else if (which.eq.5) then
|
|
attrac_meam(index(1),index(2)) = value
|
|
|
|
c 6 = repuls_meam
|
|
else if (which.eq.6) then
|
|
repuls_meam(index(1),index(2)) = value
|
|
|
|
c 7 = nn2_meam
|
|
else if (which.eq.7) then
|
|
nn2_meam(index(1),index(2)) = value
|
|
|
|
c 8 = Cmin_meam
|
|
else if (which.eq.8) then
|
|
Cmin_meam(index(1),index(2),index(3)) = value
|
|
|
|
c 9 = Cmax_meam
|
|
else if (which.eq.9) then
|
|
Cmax_meam(index(1),index(2),index(3)) = value
|
|
|
|
c 10 = rc_meam
|
|
else if (which.eq.10) then
|
|
rc_meam = value
|
|
|
|
c 11 = delr_meam
|
|
else if (which.eq.11) then
|
|
delr_meam = value
|
|
|
|
c 12 = augt1
|
|
else if (which.eq.12) then
|
|
augt1 = value
|
|
|
|
c 13 = gsmooth
|
|
else if (which.eq.13) then
|
|
gsmooth_factor = value
|
|
|
|
c 14 = re_meam
|
|
else if (which.eq.14) then
|
|
re_meam(index(1),index(2)) = value
|
|
|
|
c 15 = ialloy
|
|
else if (which.eq.15) then
|
|
ialloy = value
|
|
|
|
else
|
|
errorflag = 1
|
|
endif
|
|
|
|
return
|
|
end
|