「Subroutine callspecgeneration(nnode,x,y,eg,generation)」:修訂間差異

出自DDCC TCAD TOOL Manual
跳至導覽 跳至搜尋
Yrwu留言 | 貢獻
已建立頁面,內容為 " subroutine callspecgeneration(nnode,x,y,eg,generation) use nrtype ,only : dp,i4b,i8b use global2d implicit none integer(i8b), intent(in) :: nnode real(dp) , i..."
 
Yrwu留言 | 貢獻
無編輯摘要
 
第1行: 第1行:
This function is activated by [[$usegenspecfunc]]. It is similar to [[Subroutine callgeneration(x,y,z,generation,ind)]] <br>
However, it is sending the whole x,y, and generation matrix. Not the single value.
  subroutine callspecgeneration(nnode,x,y,eg,generation)  
  subroutine callspecgeneration(nnode,x,y,eg,generation)  
  use nrtype ,only : dp,i4b,i8b
  use nrtype ,only : dp,i4b,i8b
  use global2d
  use global2d
  implicit none
  implicit none
  integer(i8b), intent(in) :: nnode
  integer(i8b), intent(in) :: nnode ! total node number
  real(dp) , intent(inout) :: x(nnode),y(nnode),eg(nnode),generation(nnode)  
  real(dp) , intent(inout) :: x(nnode),y(nnode),eg(nnode),generation(nnode) ! matrix x, matrix y, Bandgap, and generation
real(dp) :: xp,yp,bandgap
  integer :: i,j  
  integer :: i,j  
  do i=1,nnode
  do i=1,nnode
     generation(i)=0.0_dp
     xp=x(i)
    yp=y(i)
    bandgap=eg(i)
    if(xp>2.0 .and. xp<3.0) then
      generation(i)=0.0_dp
    end if
  end do
  end do
  print*, "You should not call 2D-ddcc.exe  to run callspecgeneration. You should use 2D-ddcc-dyna.exe to run it."
  !print*, " This function usually for solar cell application where its generation rate will be related to the bandgap.
  stop
!print*, "You should not call 2D-ddcc.exe  to run callspecgeneration. You should use 2D-ddcc-dyna.exe to run it."
  !stop
  end subroutine
  end subroutine

於 2017年8月27日 (日) 15:05 的最新修訂

This function is activated by $usegenspecfunc. It is similar to Subroutine callgeneration(x,y,z,generation,ind)
However, it is sending the whole x,y, and generation matrix. Not the single value.


subroutine callspecgeneration(nnode,x,y,eg,generation) 
use nrtype ,only : dp,i4b,i8b
use global2d
implicit none
integer(i8b), intent(in) :: nnode  ! total node number
real(dp) , intent(inout) :: x(nnode),y(nnode),eg(nnode),generation(nnode)  ! matrix x, matrix y, Bandgap, and generation
real(dp) :: xp,yp,bandgap
integer :: i,j 
do i=1,nnode
   xp=x(i)
   yp=y(i)
   bandgap=eg(i)
   if(xp>2.0 .and. xp<3.0) then
      generation(i)=0.0_dp
   end if
end do
!print*, " This function usually for solar cell application where its generation rate will be related to the bandgap. 
!print*, "You should not call 2D-ddcc.exe  to run callspecgeneration. You should use 2D-ddcc-dyna.exe to run it."
!stop
end subroutine