lammps/lib/meam/meam_setup_param.F

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