ここで<#NTYP>は「INPUT.DAT」の入力項目の一つで
選択オプションを示します。選択した<#NTYP>によって,制御情報が更に
異なるため,ファイル<#INPFIL>を使用して入力しています。
「INPUT.DAT」の例はここをクリックしてください。
変数の説明についてはここをクリックしてください。
以下に<#NTYP>に応じた<#INPFIL>の入力内容について説明します:
<$CUR/part> part
と打ち込んでください。その他,注意事項は以下の通りです:
<$CUR/part> mpirun -np <#PETOT> wall
と打ち込んでください。<#PETOT>は使用するプロセッサ数です。
use hpcmw_cfdzhang_comm
use solver_SR
real(kind=8), dimension(:), allocatable :: V
real(kind=8), dimension(:), allocatable :: WS, WR
character(len=80) :: HEADER
......
call call INPUT_HPCMW_CFDZHANG_COMM (HEADER)
......
allocate (V(hpcmwNODTOTw))
(calc. V(i))
......
allocate (WS(hpcmwNODTOT), WR(hpcmwNODTOT))
WS= 0.d0
WR= 0.d0
call SOLVER_SEND_RECV &
& ( hpcmwNODTOT, hpcmwNEIBPETOT, hpcmwNEIBPE, &
& hpcmwIMPORT_index, hpcmwIMPORT_item, &
& hpcmwEXPORT_index, hpcmwEXPORT_item, &
& WS, WR, V, MPI_COMM_WORLD, my_rank)
deallocate (WS, WR)
use hpcmw_cfdzhang_comm
use solver_SRw
real(kind=8), dimension(:), allocatable :: UTAU
real(kind=8), dimension(:), allocatable :: WS, WR
character(len=80) :: HEADER
......
call call INPUT_HPCMW_CFDZHANG_COMM (HEADER)
......
allocate (UTAU(hpcmwNODTOTw))
(calc. UTAU(i))
......
allocate (WS(hpcmwLENw), WR(hpcmwLENw))
WS= 0.d0
WR= 0.d0
call SOLVER_SEND_RECVw &
& ( hpcmwNODTOTw, hpcmwNEIBPETOTw, hpcmwNEIBPEw, &
& hpcmwIMPORTw_index, hpcmwIMPORTw_item, &
& hpcmwEXPORTw_index, hpcmwEXPORTw_item, &
& hpcmwLENw, WS, WR, UTAU, MPI_COMM_WORLD, my_rank )
deallocate (WS, WR)
<$CUR/mg> mg
とタイプすると:
NX,NY,NZ
と訊いてきます。X,Y,Z方向の分割数を入力してください。NX×NY×NZ×6の四面体と
(NX+1)×(NY+1)×(NZ+1)の節点が生成され,境界条件とともに:
use hpcmw_zhangcfd_comm
use hpcmw_fem_mesh
......
NEIBPETOT= hpcmwNEIBPETOT
NEIBPE => hpcmwNEIBPE
NOD_STACK_IMPORT => hpcmwIMPORT_index
NOD_IMPORT => hpcmwIMPORT_item
NOD_STACK_EXPORT => hpcmwEXPORT_index
NOD_EXPORT => hpcmwEXPORT_item
......
module hpcmw_cfdzhang_comm
use hpcmw_util
integer (kind=4) :: hpcmwNEIBPETOT, hpcmwNEIBPETOTw
integer (kind=4) :: hpcmwINTNODTOT, hpcmwNODTOT, hpcmwNODTOTw
integer (kind=4) :: hpcmwNODtotDIFF
integer (kind=4) :: hpcmwELMtot
integer (kind=4) :: hpcmwLEN, hpcmwLENw
integer (kind=4), pointer :: hpcmwNEIBPE(:), hpcmwNEIBPEw(:)
integer (kind=4), pointer :: &
& hpcmwIMPORT_index(:), hpcmwIMPORT_item(:), &
& hpcmwEXPORT_index(:), hpcmwEXPORT_item(:)
integer (kind=4), pointer :: &
& hpcmwIMPORTw_index(:), hpcmwIMPORTw_item(:), &
& hpcmwEXPORTw_index(:), hpcmwEXPORTw_item(:)
integer (kind=4), pointer :: &
& hpcmwNOD_IDg(:), hpcmwELM_IDg(:)
character(len=80) :: LINE
end module hpcmw_cfdzhang_comm