Subroutine mod3dpar
Subroutine mod3dpar is the subroutine called "after" all parameters are arranged to the memory. This subroutine allows user to modify the parameters locally. This function is activated by the command $assignparbyfunc. Some examples are listed below
subroutine mod3dpar
use meshelement
use global3d
implicit none
real(dp) :: x,y,z
integer(i8b) :: nodetype ,i ,j
do i=1,mshnd%n
nodetype = mshnd%element(i) ! Get the node number
x=mshnd%x(i)
y=mshnd%y(i)
z=mshnd%z(i)
material%dope(i)=mshelectric%dope(nodetype)
material%Eg(i)=mshelectric%Eg(nodetype)
material%Ea(i)=mshelectric%Ea(nodetype)
material%impurity(i)=mshelectric%impurity(nodetype)
material%charges(i)=mshelectric%charges(nodetype)
material%ep(i)=mshelectric%ep(nodetype)
material%polx(i)=mshelectric%polx(nodetype)
material%poly(i)=mshelectric%poly(nodetype)
material%polz(i)=mshelectric%polz(nodetype)
material%efmass(1:4,i)=mshelectric%efmass(1:4,nodetype)
material%trapNT(i)=mshelectric%trapNT(nodetype)
material%trapEt(i)=mshelectric%trapEt(nodetype)
material%trapdegenercy(i)=mshelectric%trapdegenercy(nodetype)
material%traptaun(i)=mshelectric%traptaun(nodetype)
material%traptaup(i)=mshelectric%traptaup(nodetype)
material%taun(i)=mshelectric%taun(nodetype)
material%taup(i)=mshelectric%taup(nodetype)
if( ifusegenfunc) then
generations(i) = mshelectric%taun(nodetype)
end if
end do
do j=mshel%tetraelenumstart,mshel%n
material%EgEl(j) = mshelectric%Eg(mshel%realvolnum(j)) ! Setup the tetrahydron volnum
material%polxEl(j)=mshelectric%polx(mshel%realvolnum(j))
material%polyEl(j)=mshelectric%poly(mshel%realvolnum(j))
material%polzEl(j)=mshelectric%polz(mshel%realvolnum(j))
end do
print*, "You have activated the program to assign material parameters by an external function!"
print*, "You have to run the program with 3D-ddcc-dyna.exe. In adition, please remember to modify "
print*, "lib3dmodpar.f90 and recompile it! Program stop"
stop
end subroutine