SNIXSY
IIIII1 NNNNNN SSSSSS 6689︐︐
一一一一一一一一一一一一しCC EE
拙恥晒叩岬恥祁
打
例 I S N ;
6 3 R E A D ( 5 , 1 0 1 ) N 7101FORMAT(I4) 8 D O 1 0 1 = 1 , N 9 R E A D ( 5 , 1 0 2 ) X 10102FORMAT(F20.0) 1 1 2 0 Y = 1 . 0 / X
12.DEBUG(文法書P.166,P.177,P.119〜123参照)
11.で述べた4種類のデバ.ソグ機能のうちの,どれか1つだけを用いたとき,/PARA文を /PARAbLIST,MAP,DEBUGと書き,さらに主プログラムに図のようにDEBUGのための ステートメントを挿入する。文法書P、123のCHECKON,CHECKOFFは間違いでINITON,
INITOFFが正しい。
BOSIIのDEBUG機能は不完全であI), 文法書P.119〜123の記述も不明確であ
っ て , こ れ ら は 近 い 将 来 改 善 さ れ る と 思 わ れ る 、 蚤 で , 詳 細 は 省 き , 実 用 に 便 利 な 使 用 法 の み を 記 す 。
図 ①
S T O P
DEBUGIMg星ノ→(INIT,sUBCHKまたは
SUBTRACE)AT4r諺プログラム中にある実行文の番号
① プ ロ グ ラ ム 全 部 を デ バ ッ グ す る と き は , 上 図 の よ う に す れ ば よ い 。 こ の と き A T n で 指 定 した文番号nのステートメントは,プログラム中どの位詮にあっても同じ結果が得られる。
②あるステートメントより前の部分をデパ、ソグしたいとき,図②のようにする。
︑L
るる
なす
す
るグるグ しもも
るグ
諦駒①すッすヅ
9
行︵行パ
実デ極実デ実デ
︑ILjlノT︑1J︑jlγ1J慕い等価
一一一FC
llIl1l
T R A C E す る 実 行 す る
3
T R A C E し な い 実 行 も し な い
D E B U G T R A C E A T 3
S T O P
E N D 図 ②
一
つ
.P 一OD
−000TN一SE
一
01
③あるステートメントより後のデバッグをしたい時,たとえばステートメント10よりSTOP までTRACEを行ない,かつその間の特定の変数,たとえばFとCをINITしたいときは,図③ の よ う に す る 。
13.ENCODE/DECODE文(文法書P.47〜48参照)
書式つきWRITE/READ文と似た機能をもつが入出力装證を操作しないで,コア上で情報を
転送する。
DECODE(2n,m,X)Y
これを実行すると変数Xで与えられる番地を先頭として連続した2n個の文字が,ステート メントmのFORMAT様式にしたがって,入出力並びYに格納される。
ENCODE(2n,m,X)Y
入出力並びYで与えられる2n文字の情報は,ステー.トメントmのFORMAT様式にしたがっ て,変数Xで与えられる番地から順番に格納される。
例 D A T A C H / 4 H C D A B /
(4byte)
野野
(2byte) (4byte)
(2byte) (2,45,CH)IS1
(A2)
(4,55,CH)IS2 (2X,A2)
(4,65,S3)IS2,IS1 (2A2)
C H IS1 C H IS2 I S 2 S 3
ETETET DADADA OMOMOM CRCRCR EOEONO DFDFEF
555456 } → {
} → {
} r競二詰謁
14.FILES文(文法書P、49〜53参照)
磁 気 テ ー プ 装 澄 や 紙 テ ー プ 読 取 装 置 で デ ー タ 入 出 力 を 行 う と き は F I L E S 文 を , ソ ー ス カ ー ド の実行文よ!)前に挿入しなければならない。
↓ 第 7 カ ラ ム u : フ ァ イ ル 参 照 番 号 ( 1 〜 3 2 7 6 7 ) F I L E S u ‑ d ( 様 式 指 定 ) d : 装 澄 名 ( た と え ば M T , P T R な ど )
新 し い 磁 気 テ ー プ を 使 用 す る と き は , 1 6 . に 述 べ る コ ン ト ロ ー ル カ ー ド ¥ E X F O R T R A N の前に,
¥VOLINIT,MTO1,VOL=0123,OWNER=YUKARI,NEW,DEN=800
な る コ ン ト ロ ー ル カ ー ド を 挿 入 す る 。 ま た F I L E 文 を 使 用 す る と き は ¥ E X F . F T M A I N の あ とに¥FD文を挿入する。
例FLES3MT(RECFM=F,BL=64,RL=60)・・MTの記録様式を固定長,1レコード60 F I L E S 2 ‑ P T R b y t e , 1 ブ ロ ッ ク 6 4 b y t y に 指 定 す る
READ(2,5)(X(I),I=1,10) 5FORMAT(F5.0)
WRITE(8,15)(X(I),I=1,10) 15FORMAT(10F6.0)
… フ ァ イ ル 参 照 番 号 2 の 装 設 よ り デ ー タ を 読 み 込 む
… フ ァ イ ル 参 照 番 号 8 の 装 証 へ デ ー タ を 書 き 出 す
¥ E X F ・ F T M A I N
¥FDUO1,8,MTO1,FILE=YUKARI…MTのファイル参照番号を8にする
¥FDUOO,2,PROO,CODE=4…PTRのファイル参照番号を2,コード指定4と す る
15.計算糖度と計算速度
基本外部関数(SQRT,SIN,EXP,ALOG10,ATAN)について,引数がO.1〜10.0の間で,
BOSとBOSIIについて比較を行なった。速度についてはおおよそBOSIIの方が2倍になり,
また精度については,EXPがBOSIIにおいてやや糖度がよくなっている他はほとんど同じで あった。
16.通常のBOSIIFORTRANコントロールカードの並べ方
¥ J O B … j o b の 始 ま I )
¥FDSYSLST,LPOO……SYSLSTをlineprinterに割り当てる。
¥FDOLIB,DPOO,FILE=OLIB……OLIB(オブジェクトプログラムの格納領域)をDP に割り当てる。
¥EXFORTRAN,DPOO,SYG.PLIB……DP上にあるFORTRANコンパイラを呼び出 しコン'ぐイルを実行する。
/PARALIST,MAP……ソースカードのlistとコアマップの表示を指定する。
ソ ー ス カ ー ド
E N D
¥EXLIED,DPOO,SYG.PLIB…DP上の1.TFDを呼び出し稽合編集してオブジェクトプ ログラムを作成する。
/PARAOUT=F.FTMAIN,LIST,ALL‑MOD…オブジェクトプログラムの出力表示を指定
¥EXF.FTMAIN,OLIB…オブジェクトプログラムの実行開始
¥JEND……job終了
FORTRANコン'ぐイラ,LIEDプログラムをDP上にとるため,それらを呼び出す時間がそれ ぞれ約17sec,8sec要する。またオブジェクトプログラムをDPから呼び出すための時間が,た とえばソースカード60枚のプログラムで7sec要する。すなわち,DPの使用による呼び出し時間 として約30sec必要とする。
− 研 究 一
ラ イ ン プ リ ン タ ー に よ る グ ラ フ 不 表一(1)
§1.はじめに 物 理 地 学 数 値 実 験 グ ル ー プ
これまで,プリントされた結果を再び読みとってグラフ用紙にプロットしていた方がおられ るかもしれない。しかし,計算機ラインプリンターで直接グラフを描かせると,少々精度はお ちるかもしれないが,全体の様子をつかむには充分役立つものがえられる。我々のところでも,
地球内部の研究のため種々の計算を行い,それらの結果を上記の方法でプリントし,全体の様 子をつかんだり,直接又はそのままトレースして,スライドにしたりしてきた。
これらグラフ表示のプログラムは,サブルーチンにしておくのがよい。パラメターさえ変え てやれば,各人の目的にあったグラフを描かせることができる。しかし,一つのサブルーチン で全ての場合をふくませることは,実際の使用のさいわずらわしくなるので,機能別にサブル
ーチンをわけておく方がよい。我々のところで実際に使用しているものは次の第1表に示すと おりである。他に開発中のものもある。蔵
の ゲ ラ ー フ の 蝿 の 範 囲 は プ 面 の範囲,あ島
.Y2の範囲は
fPPPPF定AAAAAAA KRRRRRn
。
i の 範 囲 は 共 通 Yの範囲,あ,
の 姉 囲 . あ ら か
こ れ ら は , 研 究 分 野 に よ ら ず , 一 般 に 利 用 で き る も の で あ る 。 そ こ で 以 下 に , 数 回 に わ た っ て , そ の 使 用 方 法 を 説 明 し た い 。
こ こ で 述 べ る こ と は , 別 に 新 ら し い こ と で は な い 。 す で に 同 様 の プ ロ グ ラ ム を 多 く の 方 が 使 用 さ れ て い る は ず で あ る 。 願 わ く ば , 御 批 判 や , お 手 も ち の プ ロ グ ラ ム の 紹 介 を し て い た だ き
た い 。 次 の 改 定 の 機 に そ な え た い 。
な お , X Y プ ロ ッ タ ー が 導 入 き れ れ ば , 精 度 の 商 い 図 形 の 出 力 は , そ れ を 利 用 す る こ と に な る で あ ろ う 。 し か し そ れ ほ ど 精 度 が 必 要 で な け れ ば , プ ロ グ ラ ム の 簡 単 さ , 出 力 速 度 等 か ら い っ て , な お ラ イ ン プ リ ン タ ー に よ る グ ラ フ 表 示 の 利 点 は の こ る は ず で あ る 。
§2.ラインプリンターによるグラフ表示の基本的な考え方
苑 を 独 立 変 数 と す る 関 数 " = / ( x ) は M A I N P R ・ で 値 が き ま っ て い る と す る 。
(1)まず,〃やxの値をラインプリンター上の行や列の値に換算しなければならない。それに
は,
。〃の値の範囲(","i"〜〃疵α垂)
・ 蕗 の 値 の 範 囲 と x の き ざ み , 又 は 苑 が 等 間 隔 の と き 妬 の 個 数 ( 行 の 数 が き ま る )
・ラインプリンターへうちだす一行の長き(LINMX,用紙の巾に限度がある。媛大130字)
。 ( ラ イ ン プ リ ン タ ー へ う ち だ す 行 の 数 に は き び し い 制 限 は な い 。 x の 個 数 と 関 係 ) が 決 ま っ て い な け れ ば な ら な い 。
このとき,第1図の関係から,関数値 をラインプリンター上の1〜LINMXの値I〃に変 換する。
LINMX=I型加αェ
IU
1
〃、f宛 〃 〃"α工
IⅣ= 〃 − 〃 沈 鋺 x(LINMX‑1)
g 堀 α 工 − 9 加 加
gがLogスケールや指数スケールのときは,あらかじめ"'=1og","'=exp(")と変換してお
けば,上式がつかえる。(2)I"のプリント。I〃をそのままプリントしたのでは,1〜LINMXの数値がでるだけで
あ る 。 グ ラ フ に す る た め に は 基 線 か ら I y ( + 1 ) 番 目 の 位 遼 に 記 号 ( 1 と か * と か ) が 打 出されなければならない。それには,列の数(LINMX)だけDIMENSIONをもった配 列を用意し,まず,全ての内容を(文字)空白にした上で,I"(+1)番目の内容に(文字)記 号 を 代 入 す る 。 そ し て , そ の 配 列 全 部 を A タ イ プ で 出 力 す る 。 次 の 妬 に 移 る 。
FAに'』M230−ハノ調FしRTRArU−F10h』6−0011−02 岳各骨SOljRCFI1STe骨骨
7 2 . 0 6 . 0 2 P A G E 』
N1234うSI
SrATf・'FNT
f各骨骨骨骨骨毎己pR()6R ,TFSTOFSURROUT1NE6RAPH4吾吾骨骨暑197'・う・ ・・・.・・
DIMF,'bIONY(100.1 、x《100)
、Cl旧1FいTFGrR1CPT n n l J 宮 1 . 1 0
,011画10う1 A1(1−1)
。〕骨FLOAT(J)吾FIOAT(1−1》
8 1 C O N T 1 M j E
−9 10
−
|狸一喝一恥
11
15 16 17 18 19 20
rAI.LCl、〔K( しPT)
CPT画1〔pT CPT軍〔PTノf》ooO wR1TF(602)Cト′T wR1Tf 94)】LpT 4FoRHAI《1HOoll4》
?4
,5 26 77 8 29 30 31
CPT■ILPT fPT■CトjTノ60.O WRITf 9?)C卜T WRlTt(60 ILPT FnRM&1《1脚()・1M)
fnNT1IdUE STOP FND
うり
FACノM290−yうノ FしRTRAN‑710bl6‑0011−O2 骨暑らSOURCFlIS1骨骨骨
7 2 . u 6 . 0 1 P A G E ユ
N1234う678901234う678901234567890123
s1111111111?2222?22223339
1STAT上隈FN1
SU8ROuTIrdEGhAPH4(XoNxQYoIW・YHIN9YHAx9NHOD)
FuNCIIoNY110YluAkEPLuTTEDONGRAPHwHICHISDIvIDEDBYloOSEGMENTS・
D1HE知SIOr凶X(hX)9Y《1000NY)、PLO《101)・FGY《12〕
DATA卜GYノlHユ、1H2.1H3,1H4,1Hう・1H6・lH7、1H8.1H9・ユHO01H・ユH◆ノ LINHX=101
F11N脾入容L1NHX−1 wRITI・ 、 01)YHIh・YHAX FORM'・1《1『1.8八・F8.3o92X9f5・
WRITF《60202)
FORMA1《lI101ンX,10(lH骨・9《1fl.))01H骨)
DO?uKごl・NX DO1ぃ1回10LINHX PLO(1)=F《,Y(11》
CONTlNUE DO30N耳1.NY
YS堂FllNMx員《Y(K・N)−YMlN)ノ(Y閏AX=YMlN)◆1.5 PIO(1)■FbY(lと)
PLO(LlNMA)mF。Y(12)
IF《Y5.GTo卜LOAT(LIr、閲X))YS=FLINHX◆1.5 1F(YS・LT、1.)YS■1・う
IY■IflX(Yご)
PIO(IY1■卜GY(N)
てONTIrdUE
IF(H()1)《X・NHOし)・Eu・1)wR1T上(6.101)X(K)。(PLO(1)。i=19LlNMX)
FORMA1(lf1◆9F1,.3,101A1ノ》
IF(HCI)《K・NMOし》0M卜01)wR1Tr(60102)(PLO(1)91写1.LINMX》
FORMAI〔1制令。lとXC101A1ハ CONTlNUE
WR1Tl ・PU3)
FORMAI 《1『1◆91とXヤユし《1H骨99(1H、))01H骨)
WRIT上《602u1)YMlF、、YHAX RFTl昨N
FND
〔
2もjl
'U2
10
う0 1巴1
ユU2
?0
?(j3 NX■51 NY写10
■ ■ ■ ロ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■
YMIN■u,0
−
YHAX=100.0 NHODごう
ccつ①︒︒﹃○ccの︒
*C●●●●・●●●*・・・・・●●●●*.●●●・●●●●*・●●・・●●・●*.●●●●・・・・中・・●・●・・・●*・●・・・・●●●*・●●・・・●●●*●︒●●●●・●●*.・・●●●●・●*