* PACKAGE XMINIT !" 初期値出力 * *" [HIS] 96/03/13 (takepiro) *********************************************************************** PROGRAM XMKINT * * [PARAM] #include "zcdim.F" !" 格子点数, 波数 #include "zhdim.F" !" 文字列文字数 * * [VAR] *" 格子点データ REAL PSI ( 0:NX+1 , 0:NZ+1 ) !" 流線関数 REAL ZETA ( 0:NX+1 , 0:NZ+1 ) !" 渦度 REAL T ( 0:NX+1 , 0:NZ+1 ) !" 温度 * REAL DX !" X 軸上の格子点間隔 REAL DZ !" Z 軸上の格子点間隔 * CHARACTER RUN *(NCC) !" 実験名 CHARACTER SIGN *(NCC) !" 実験者名 * INTEGER IX, IZ REAL XX, ZZ, PI INTEGER IT !" 現在ステップ数 REAL DT !" 積分時間間隔(ダミー) * DATA RUN, SIGN / 'TEST', 'momoko' / DATA IT, DT / 0, 1.0 / * *" < 1. 初期値計算 > * PI = ATAN2( 0.0, -1.0 ) * CALL ASETUP !" 実験初期設定(時間, 座標) O ( IT , DT , O DX , DZ ) * DO 1000 IX = 0, NX+1 DO 1100 IZ = 0, NZ+1 XX = DX*(IX-1) ZZ = DZ*IZ * c$$$ PSI ( IX , IZ ) = COS( XX ) * SIN( PI*ZZ ) c$$$ & + ZZ c$$$ PSI ( IX , IZ ) = 0.0 PSI ( IX , IZ ) = 10*(1.0 - ZZ) c$$$ ZETA ( IX , IZ ) = 0.0 c$$$ T ( IX , IZ ) = 1.0 T ( IX , IZ ) = 1.0 - ZZ c$$$ T ( IX , IZ ) = COS( XX ) * SIN( PI*ZZ ) c$$$ & + ZZ 1100 CONTINUE 1000 CONTINUE T( NX/2+1, 1 ) = T( NX/2+1, 1 ) + 0.1 * CALL DBNSET !" 境界条件の設定 I ( PSI , !" 流線関数に対して用いる I ZETA, T , I DX , DZ ) * CALL DLAPLA !" PSI を与えた時 -> ZETA を計算 O ( ZETA , I PSI , C DX , DZ ) * CALL DBNDRZ !" 運動学/力学境界条件の適用と流線関数の計算 O ( PSI , M ZETA , I DX , DZ ) * *" < 2. リスタートファイル出力 > * CALL WRRSTR !" リスタートファイル書き込み I ( PSI , ZETA , T , I IT ) * STOP END