配列の一部分だけを作画するにはどうしたらよいのでしょう? これまでと同じ       
データで, その一部分だけを描くことを考えてみましょう(U2D4).       
       
       
       
       
経度80 から320
から320 ,       
緯度       
-60
,       
緯度       
-60 から60
から60 の       
部分だけを描くことにします. 6行めのパラメータ文で与えているように, 格       
子点の範囲はx方向に9 ≦ i ≦ 33,       
y方向に7 ≦ j ≦ 31  となります. ウインドウの設定をこの範囲とし, 36行めのUDCNTR ルーチ       
ンで等高線図を描くのですが, ここで一工夫が必要です. 最初の引数としては,        
この矩形領域の左下に対応する配列要素 P(KXMN,KYMN) を陽に与え, 2       
番めには実際に宣言した配列の第1次元寸法 NX, 3, 4番めには実際の作       
画に使う配列の第1次元および第2次元寸法 (KXMX-KXMN+1,KYMX-KYMN+1)        
を与えることによって配列の一部分だけを作画することができます.
の       
部分だけを描くことにします. 6行めのパラメータ文で与えているように, 格       
子点の範囲はx方向に9 ≦ i ≦ 33,       
y方向に7 ≦ j ≦ 31  となります. ウインドウの設定をこの範囲とし, 36行めのUDCNTR ルーチ       
ンで等高線図を描くのですが, ここで一工夫が必要です. 最初の引数としては,        
この矩形領域の左下に対応する配列要素 P(KXMN,KYMN) を陽に与え, 2       
番めには実際に宣言した配列の第1次元寸法 NX, 3, 4番めには実際の作       
画に使う配列の第1次元および第2次元寸法 (KXMX-KXMN+1,KYMX-KYMN+1)        
を与えることによって配列の一部分だけを作画することができます.       
       
       
       
この辺の事情を正しく理解するためには, FORTRAN において, 2次元の配列要 素が記憶領域上でどのように順序づけられ, サブルーチンの引数にある配列が どのように扱われているかを知る必要があります. FORTRAN マニュアルなどを 参照してください.
      PROGRAM U2D4
      PARAMETER( NX=37, NY=37 )
      PARAMETER( XMIN=0, XMAX=360, YMIN=-90, YMAX=90 )
      PARAMETER( PI=3.14159, DRAD=PI/180 )
      PARAMETER( KXMN=9, KXMX=33, KYMN=7, KYMX=31 )
      REAL P(NX,NY), ALON(NX), ALAT(NY)
       DO 10 I=1,NX
        ALON(I) = XMIN + (XMAX-XMIN)*(I-1)/(NX-1)
   10 CONTINUE
      DO 20 J=1,NY
        ALAT(J) = YMIN + (YMAX-YMIN)*(J-1)/(NY-1)
   20 CONTINUE
      DO 30 J=1,NY
        SLAT = SIN(ALAT(J)*DRAD)
      DO 30 I=1,NX
        P(I,J) = 3*SQRT(1-SLAT**2)*SLAT*COS(ALON(I)*DRAD)
     +         - 0.5*(3*SLAT**2-1)
   30 CONTINUE
      WRITE(*,*) ' WORKSTATION ID (I)  ? ;'
      CALL SGPWSN
      READ (*,*) IWS
      CALL GROPN( IWS )
      CALL GRFRM
      CALL GRSWND( ALON(KXMN), ALON(KXMX), ALAT(KYMN), ALAT(KYMX) )
      CALL GRSVPT(        0.2,        0.8,        0.2,        0.8 )
      CALL GRSTRN( 1 )
      CALL GRSTRF
      CALL USDAXS
      CALL UDCNTR( P(KXMN,KYMN), NX, KXMX-KXMN+1, KYMX-KYMN+1 )
      CALL GRCLS
      END
  
PROGRAM U2D4       
 
       
| FORTRANのひけつ 2 
 |