WRFサポートチームとコミュニティの皆様、こんにちは。
私はWRF V4.7.1を使用しています。現在、履歴出力は1時間間隔(history_interval = 60)に設定されています。しかし、3D風コンポーネントのデフォルト出力では、出力時の瞬時値しか提供されません。
私の目標:各出力時刻におけるUとV(それぞれ別々に)の1時間平均値を算出すること。例えば、01:00の履歴出力の値は、01:00までの1時間におけるすべてのタイムステップの平均値を表すものとする。
現在の進捗状況と質問:既にコードの修正に着手していますが、正しい方向に向かっているのか、もっと簡単な方法があるのか確信が持てません。
1. Registry.EM_COMMON:蓄積用の変数を定義しました。
状態 実数 u_acc ikj その他 1 - rhdu "u_acc" "累積 U" "m s-1"
状態 実数 v_acc ikj その他 1 - rhdu "v_acc" "累積 V" "m s-1"
2. dyn_em/start_em.F:開始時にこれらの 3D 変数をゼロにリセットする初期化ロジックを追加しました。
if(config_flags%cycling) then
! 初期診断時にバケットをクリアします
DO j = jts,min(jte,jde-1)
DO k = kms、kme
DO i = its, min(ite,ide-1)
grid%u_acc(i,k,j) = 0。
grid%v_acc(i,k,j) = 0。
エンドド
エンドド
DO i = its, min(ite,ide-1)
grid%prec_acc_nc(i,j) = 0。
grid%snow_acc_nc(i,j) = 0。
エンドド
エンドド
endif
3. 私の質問:
私はWRF V4.7.1を使用しています。現在、履歴出力は1時間間隔(history_interval = 60)に設定されています。しかし、3D風コンポーネントのデフォルト出力では、出力時の瞬時値しか提供されません。
私の目標:各出力時刻におけるUとV(それぞれ別々に)の1時間平均値を算出すること。例えば、01:00の履歴出力の値は、01:00までの1時間におけるすべてのタイムステップの平均値を表すものとする。
現在の進捗状況と質問:既にコードの修正に着手していますが、正しい方向に向かっているのか、もっと簡単な方法があるのか確信が持てません。
1. Registry.EM_COMMON:蓄積用の変数を定義しました。
状態 実数 u_acc ikj その他 1 - rhdu "u_acc" "累積 U" "m s-1"
状態 実数 v_acc ikj その他 1 - rhdu "v_acc" "累積 V" "m s-1"
2. dyn_em/start_em.F:開始時にこれらの 3D 変数をゼロにリセットする初期化ロジックを追加しました。
if(config_flags%cycling) then
! 初期診断時にバケットをクリアします
DO j = jts,min(jte,jde-1)
DO k = kms、kme
DO i = its, min(ite,ide-1)
grid%u_acc(i,k,j) = 0。
grid%v_acc(i,k,j) = 0。
エンドド
エンドド
DO i = its, min(ite,ide-1)
grid%prec_acc_nc(i,j) = 0。
grid%snow_acc_nc(i,j) = 0。
エンドド
エンドド
endif
3. 私の質問:
- もっと簡単な方法はありますか?namelist.input の設定を使うか、V4.7.1 の既存の診断フレームワークを使う方法はありますか?
- 手動での変更が必要な場合、最適な場所はどこですか?