● 構造
 ○ 正展開
dummymain_main !
 ┣ ALGGN ! 文字型変数に記憶されているバイト数を出力
 ┣ ALGSRP ! 文字型変数に記憶されているバイト数を出力(大サイズ変数用)
 ┣ ITOAGN ! 整数型データを文字型アラビア数字列に変換 (例: 123 → '123')
 ┃ ┗ T1LPAS ! プログラムの一時停止
 ┣ WRFILE ! ファイルへの書き込み
 ┃ ┣ ALGGN ! 文字型変数に記憶されているバイト数を出力
 ┃ ┗ ALGSRP ! 文字型変数に記憶されているバイト数を出力(大サイズ変数用)
 ┣ ATOIGN ! 文字型アラビア数字列を整数型データに変換 (例: '123' → 123)
 ┃ ┗ ATORGN ! 文字型アラビア数字列を実数型データに変換 (例: '1.23' → 1.23)
 ┗ ATORGN ! 文字型アラビア数字列を実数型データに変換 (例: '1.23' → 1.23)

 ○ 逆展開
(1) dummymain_main !



● 変数(個別)
 ○ Input

 ○ Input & Output

 ○ Output

● 変数(子を含む)
 ○ Input

 ○ Input & Output

 ○ Output




以下は、人間用のデータではありません。


* dummymain.f  0
* Src code start
c このメインプログラムは、サブルーチン群 Chara.f の理解支援を目的とした
c メインプログラムです。
c
c このメインプログラムは正しく動きますが、あまり意味はありません。

character*20 fname1, fname2
character*10 ia,ra
character*100 fname
character*100 text
integer lg1,lg2
real r
integer i, i2
data fname1/'file'/,fname2/'.txt'/

call ALGGN(fname1,lg1) ! 文字型変数に記憶されているバイト数を出力
call ALGSRP(fname2,lg2) ! 文字型変数に記憶されているバイト数を出力(大サイズ変数用)
do 100 i=1,5
*
call ITOAGN(i,ia,ilg) ! 整数型データを文字型アラビア数字列に変換 (例: 123 → '123')
fname = ' '
fname(1 :lg1 )=fname1(1:lg1)
fname(lg1+1 :lg1+3 )='000'
fname(lg1+3-ilg+1 :lg1+3 )=ia(1:ilg)
fname(lg1+3+1 :lg1+3+lg2)=fname2(1:lg2)
open( 20 , file=fname(1:lg1+3+lg2) )
text = 'Hello, world!'
call WRFILE(20,text) ! ファイルへの書き込み
close(20,status='keep')
*
call ATOIGN(ia, i2) ! 文字型アラビア数字列を整数型データに変換 (例: '123' → 123)
ra = '1.'//ia(1:ilg)
call ATORGN(ra, r) ! 文字型アラビア数字列を実数型データに変換 (例: '1.23' → 1.23)
write(*,*) i2, r
*
100 continue
stop
end

© TAKAGI-1