ソースコード先頭部分は以下のように書く.
!= Program Title # 先頭の見出しは rdoc の書式に従い "=" を用いる ! ! Authors:: hogehero ! Version:: $Id: $ # cvs のバージョン名を出力 ! Tag Name:: $Name: $ # cvs の tag 名を出力 ! Copyright:: Copyright (C) GFD Dennou Club, 2006-. All right reserved. ! License:: See COPYRIGHT[../../COPYRIGHT] ! # COPYRIGHT ファイルへの相対パスを記入 ! ! ! 以下は必要に応じて記入. 見出しは "==" で書く.
コメントの書き方
ex.1) この書き方を基本とする.
!----- コメント ----- ! 詳細なコメントを追加したい場合は ! このように字下げをして書く call subroutine
ex.2)
!----------------------------------- !コメント ! 詳細なコメントを追加したい場合は ! このように字下げをして書く !----------------------------------- call subroutine
たぶん両者の中間がよいのだろう
ex)
... !----- 温度の移流を計算 ----- call dynamics_adv_scalar( pz_U, & !(in) 水平速度 & xr_W, & !(in) 鉛直速度 & xy_Temp, & !(in) 温度 & xy_Adv ) & !(out)移流項 !----- 温度の拡散を計算 ----- call dynamics_diff_scalar( xy_Km, & !(in) 拡散係数 & xy_Temp, & !(in) 温度 & xy_Diff ) & !(out)乱流拡散項 ... !----- 時間積分 ----- xy_Temp = xy_Temp + DelTime * (xy_ADV + xy_DIFF + ...)
コマンドライン引数で渡す NAMELIST ファイル名の取得は, dcargs を用いて以下のように行う. 詳細は http://www.gfd-dennou.org/library/gtool4/gt4f90io/gt4f90io_current/doc/code_reference/classes/dc_args.html を参照.
ex.)
use dc_args .... type(ARGS) :: arg ! ARGS 型の変数宣言 character(TOKEN), pointer :: argv(:) => null() ! 文字型配列のポインター call Open(arg) ! 変数 arg の初期化 call Debug(arg) ! デバッグオプションを自動設定 call Help(arg) ! ヘルプオプションを自動設定 call Strict(arg) ! 引数の数を返す call Get(arg, argv) ! オプションでないものを argv に渡す do i = 1, size(argv) write(*,*) argv(i) end do deallocate(argv) call Close(arg)
「普通」の放射モジュールとニュートン冷却モジュールとは 別物として扱うことにしよう. 具体的には, 物理過程のメインモジュールで
call physics_radiation … call physics_NewtonianCooling
と 2 つの call 文を入れる.
入出力するべき項目
入力は 大気温度分布, 表面温度, 吸収物質分布, 座標情報 出力は 長波フラックス, 短波フラックス