この章のはじめに紹介した USPAC1 のプログラムでは, 一つのグラフに
一つのデータをプロットしましたが, 複数のデータを折れ線の属性を変えなが
ら1つのグラフに描いてみましょう(USPAC2).
まず, 前節で紹介した USSPNT ルーチンを3回呼んで X と Y0, Y1, Y2 のデータのなかから x と y の最大値と最小値
を見つけ, USPFIT と GRSTRF ルーチンで正規化変換を確定しま
す. そして, つぎの USSTTL と USDAXS で座標軸を描きます.
最後に, UUSLNT と UUSLNI のサブルーチンで折れ線の属性(線種 と線の太さ)を変更しながら, UULIN ルーチンで折れ線を描きます. こ れら UUPACK のサブルーチンの動作は, この場合には SGPACK の SGPLU ルーチンなどと同じです. (便利な機能は次節の例で示します.)
PROGRAM USPAC2
PARAMETER( NMAX=201, IMAX=5 )
REAL X(NMAX), Y0(NMAX), Y1(NMAX), Y2(NMAX), A(IMAX)
PI = 3.14159
DO 10 I=1,IMAX
II = 2*I - 1
A(I) = (-1)**I *2./(II*PI)
10 CONTINUE
DO 20 N=1,NMAX
X(N) = 1.*(N-1)/(NMAX-1)
T = 2.*PI*X(N)
IF(T.LT.PI/2. .OR. T.GE.PI*3./2.) THEN
Y0(N) = 0.
ELSE
Y0(N) = 1.
END IF
Y1(N) = 0.5 + A(1)*COS(T)
Y2(N) = 0.5
DO 30 I=1,IMAX
II = 2*I - 1
Y2(N) = Y2(N) + A(I)*COS(II*T)
30 CONTINUE
20 CONTINUE
WRITE(*,*) ' WORKSTATION ID (I) ? ;'
CALL SGPWSN
READ (*,*) IWS
CALL GROPN( IWS )
CALL GRFRM
CALL USSPNT( NMAX, X, Y0 )
CALL USSPNT( NMAX, X, Y1 )
CALL USSPNT( NMAX, X, Y2 )
CALL USPFIT
CALL GRSTRF
CALL USSTTL( 'FREQUENCY', '/DAY', 'RESPONSE', ' ' )
CALL USDAXS
CALL UULIN( NMAX, X, Y0 )
CALL UUSLNT( 2 )
CALL UUSLNI( 3 )
CALL UULIN( NMAX, X, Y1 )
CALL UUSLNT( 3 )
CALL UULIN( NMAX, X, Y2 )
CALL GRCLS
END
PROGRAM USPAC2