Subroutine mod3dpar

出自 DDCC TCAD TOOL Manual
於 2017年12月5日 (二) 10:10 由 Yrwu (對話 | 貢獻) 所做的修訂 (已建立頁面,內容為 "Subroutine mod3dpar is the subroutine called "after" all parameters are arranged to the memory. This subroutine allows user to modify the parameters locally. This fu...")

(差異) ←上個修訂 | 最新修訂 (差異) | 下個修訂→ (差異)
前往: 導覽搜尋

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