
ʻǻꤹˡ (Ѵֹ51) γפȻˡ

 Ϣѥå

  GRPH1
    SGPACK   ɲ
    STPACK   ɲ
  MATH1
    GT2DLIB  ߡ 2ʻҤκɸѴ

 ס<!-- ߤGRPH1ޥ˥奢1.4.21.4.3δ֤ˡɸֳʻ
         ǻꤹˡפȤ롣-->

DCLϡU ɸ V ɸؤˡȤơƼľ()ɸϿ
ʤɤ򥵥ݡȤƤ롣ˡϡΰĤȤɲä줿ΥŪ
ʻ֤бˡǤ(¾ѴϲŪʴؿˤ
)Ѵֹ 51 Ǥ롣ʻδ֤ (bilinear
interpolation) ˤ֤ԤΤᡢߤ줿 MATH1  GT2DLIB 
Ѥ롣Ѵϥ֥롼 G2SCTR ǹԤºݤѴϲ̤Υ롼
 G2FCTR ƤǹԤ(桼ϸƤɬפʤ)

¾ѴƱ͡Ѵ U ɸˤŪ˶2ΰо
Ȥ롣Ωѿ, ǤȤUɸϤˤʻ [_i, _j]
(i=1,..,Nx, j=1,..,Ny) Ȥʤľɸ(Ωѿx,y)ˤ
[x_ij, y_ij] (i=1,..,Nx, j=1,..,Ny) ǤˡԤ桼ˤȤ
ƤΰȤԤκɸϤǲ̾ɽ롣ǡ, ǤϤ
i,jΤߤ˰¸ΤФx, y ξ˰¸뤳Ȥդ衣¨
γʻҤUɸˤơֶפǤ롣

ѴϡϵήϳŪˤϡʻ줿ʻҤˤήΥߥ졼
η̤Ļ벽ȤʤɤˡͭѤǤ롣ޤϷ˱äɸ
ϤǤη׻̤βĻ벽ˤΩġѴϡ̤ʾȤơΡx 
 ǡy ξбǤΤǡUɸǦΡxȤƿʿȤꡢ
ǤϷ˱äɸy˹٤Ф褤

ѴǤϡU ɸ V ɸľбΤǤʤC ɸȸƤ
Ūľɸ𤵤롣C ɸ Cartesian 츻ȤV ɸ
бľɸǤʸưȽġ줾ο̡ˡCɸϡ
ɸδȤʤľԺɸ񸽲ΤǤ롣Ȥʤľ
ɸ(嵭x,yɸ)ϡVɸǤʤCɸбC ɸVɸ
ؤѴϡSGPACKѴѥ᥿ CXMIN, CXMAX, CYMIN, CYMAX ǻ
ꤹ롣, U ɸ C ɸؤѴϡGT2DLIB ǹԤ

ɸ C ɸ U[XY]PACK Ȥäƽ񤯤ȤǤ롣ξ硢Ѵ
1ڤؤUɸȤCɸѤФ褤

ߤΤȤѴǤʬVɸˤʬȤʤ褦˰
ᡢ㤨кɸ˱äܤʬȤƽ񤤤Ƥ⡢ʻҤζʤ꤬
ȿǤʤäơٺ٤ʴֳ֤ʬĤʤ뤳Ȥɬ
Ǥ롣ϡѴֹ2-7ǤƱͤǤ롣ϿƤǤʬ
ߤ˱äŬ˶ڤä֤뤳ȤˤʤäƤꡢ㤨зʬ
褷Ƥ⡢Ͽޤ˱ä(ޤ)Ȥɽ롣Ūˤϡ
ϿưʳѴ˴ؤơUɸˤ֤ŬԤ褦ˤ뤳
ƤƤ롣


 Ѵѥ᥿ <!-- GRPH1 1.4.3ɲ -->

Ѵѥ᥿  
  <!-- ʲʸϤ (SIMFAC, VXOFF, VYOFF) β -->

  ѴδȤʤľɸϤ V ɸδ֤Ѵꤹѥ
  ᥿ˤϲ2롣DCL 5.2 ޤǤ2ܤΤΤ¸ߤ
  ϿƤʤɤѤƤ뤬5.3 ǤϤΤ1ܤΤ
  Ƴ졢Ѵֹ51ʤɤѤ롣ξ롼ϡ
  ¾ꤹ褦ˤʤäƤΤǡºݤˤϤɤꤷƤ
  褦ˤʤäƤ롣

  ( CXMIN, CXMAX, CYMIN, CYMAX )

    Ѵ (Ѵֹ 5 ʾ. ϿƤʻǻꤹѴޤ) 
    ˤơƤδȤʤľɸϤ V ɸб뤿Υ
    ᥿ɡλͶCɸꤹ롣CXMIN, CXMAX, CYMIN,
    CYMAX  VXMIN, VXMAX, VYMIN, VYMAX ˰פȤCɸVɸ
    פ롣ʤѴѥ᥿ϼ˽Ҥ٤ SIMFAC, VXOFF,
    VYOFF ˤäƤǤ롣ϽļȲν̼ܤƱǤ뤳
    Ȥ롣

    (CXMIN, CXMAX, CYMIN, CYMAX) ϥ֥롼SGSCWD / SGQCWD  
    / ȤǤ롣SGSCWD ϡ (SIMFAC, VXOFF, VYOFF) 
    ꤹ뤬κݡSIMFAC ϲΥ򸵤˷롣

  ( SIMFAC, VXOFF, VYOFF )

    <!--˰ʲʸɲ-->
    SGSSIM (CXMIN, CXMAX, CYMIN, CYMAX) ꤹ롣

 UɸϤ <!-- GRPH1 1.4.4ɲ-->

ʻǻꤹɸ (Ѵֹ51)

      CALL SGSTRN(51)
      CALL SGSVPT(VXMIN, VXMAX, VYMIN, VYMAX)
      CALL SGSCWD(CXMIN, CXMAX, CYMIN, CYMAX)
      CALL SGSWND(UXMIN, UXMAX, UYMIN, UYMAX)
      CALL G2SCTR(NX, NY, UX, UY, CX, CY)
      CALL SGSTRF

    ǡUX, UY Ϥ줾Ĺ NX, NY ΰ켡ǡUɸˤ
    ˶ڤ줿ʻɽ(ˤ_i, _jб)
    , CY, CY ϤȤ˥ (NX, NY) 2Ȥ(
     x_ij, y_ij б)UX, UYñĴäñĴǤʤФʤ
    G2SCTR  MATH1GT2DLIBˤɸѴؿ G2FCTR ν
    Ǥ롣G2FCTR˼ưŪ˸ƤФ롣ʤUX, UYγʻҤԤ
     U ɸȤˤϡGRSWND

      CALL SGSWND(UX(1),UX(NX),UY(1),UY(NY))

    ʤɤȤФ褤

    <!--ʲϾΥեȤ-->
    ʤ GRPH2 ǤϾ嵭Υ֥롼ƬSG  GR Ѥ֥롼
    ѰդƤ롣GR* ѤѴꤹϡ(CXMIN,
    CXMAX, CYMIN, CYMAX) λϾάǤ롣ά礹٤Ƥγʻ
    ǾϰϤФ롣㡧

      CALL GRSTRN(51)
      CALL GRSVPT(VXMIN, VXMAX, VYMIN, VYMAX)
      CALL GRSWND(UXMIN, UXMAX, UYMIN, UYMAX)
      CALL G2SCTR(NX, NY, UX, UY, CX, CY)
      CALL GRSTRF

 SGPACKեɲʬ

SGpGET/SGpSET(SGpSTX)

  [Ѵؿ˴ؤѥ᥿]  

  'CXMIN', 'CXMAX', 'CYMIN', 'CYMAX'    Ѵѥ᥿. ͤ
                                        0.0, 1.0, 0.0, 1.0.

SGSCWD

  1. ǽ

       Ѵꤹ롣

  2. ƽФˡ

             CALL SGSCWD(CXMIN,CXMAX,CYMIN,CYMAX)

  3. ѥ᥿

        CXMIN,CXMAX,CYMIN,CYMAX (R) CɸλͶɽ SGPACK 
        ѿ1.4򻲾ȤΤȡ

  4. 

     (a) 4ѥ᥿ϿѤѴѥ᥿ 
         SIMFAC, VXOFF, VYOFF ΰۤʤɽˡȸ롣¿
         Ȥʬ褦ˡΤۤŪǤ롣Ԥ
         ϡġο̥ѥ᥿Ʊ(SIMFAC)뤳Ȥǡѥ
         ᥿οäƤΤǤ롣

     (b) Ѵֹ 51 Ѥ뤿Ƴ줿ѥ᥿Ǥ뤬
         ºݤˤϡSGSCWDƤ֤ SGSSIM ǰѥ᥿ꤵ졢
         ޤ SGSSIM Ƥ֤ SGSCWD ǰѥ᥿ꤵ褦
         ˤʤäƤ롣
         
 GRPACKեɲʬ

GRSCWD

  1. ǽ

       Ѵꤹ롣GRPH1/SGPACKSGSCWD˰ϤƸƤ
       Ǥ롣

  2. ƽФˡ

             CALL GRSCWD(CXMIN,CXMAX,CYMIN,CYMAX)

  3. ѥ᥿

       GRPH1/SGPACKSGSCWD򻲾ȤΤ.

  4. 

       GRPH1/SGPACKSGSCWD򻲾ȤΤ.

 塼ȥꥢ
 <!-- ֤餯餯פˡɸϡֳʻǻꤹˡ -->

DCLǤϡľԶɸɽϿƤʤɡ¿Ѵˤ
ԤޤϤϴؿꤵѴǤʳ
˳ʻ֤бѴꤹˡ⤢ꡢѴֹ51ȤʤäƤ
ǤϤλȤޤʤʻδ֤ɽˤ
(bilinear interpolation)Ѥޤ֤ MATH1  GT2DLIB 
ˤԤޤΤǡ르ꥺξܺ٤ˤĤƤϡΥޥ˥奢
ȤƤ

㣱

Υץ¹Ԥȡ g2pk01.png ޤ

<img src="g2pk01.png">
<a href="g2pk01.f">ץg2pk01.f</a>

--------------- ץ g2pk01.f -------------------
 1: *--------------------------------------------------------------------
 2: *     Copyright (C) 2000-2004 GFD Dennou Club. All rights reserved.
 3: *--------------------------------------------------------------------
 4:       PROGRAM G2PK01
 5: 
 6:       PARAMETER(NX=15,NY=15)
 7: 
 8:       REAL UX(NX), UY(NY)
 9:       REAL UYW(NX), UXW(NY) 
10:       REAL CX(NX,NY), CY(NX,NY)
11:       REAL Z(NX,NY)
12: 
13: 
14: *     / SET PARAMETERS /
15: 
16:       DO 10 I=1,NX
17:         UX(I)=(I-1.0)/(NX-1.0)
18:    10 CONTINUE
19:       DO 15 J=1,NY
20:         UY(J)=(J-1.0)/(NY-1.0)
21:    15 CONTINUE
22: 
23:       DO 25 J=1,NY
24:         DO 20 I=1,NX
25:           CX(I,J) = UX(I) + 0.1*UY(J)
26:           CY(I,J) = 0.2*UX(I) + UY(J)
27:    20   CONTINUE
28:    25 CONTINUE
29: 
30:       CXMIN = 0.0
31:       CXMAX = 1.1
32:       CYMIN = 0.0
33:       CYMAX = 1.1
34: 
35: *     / GRAPHIC /
36: 
37:       WRITE(*,*) ' WORKSTATION ID (I) ? ;'
38:       CALL SGPWSN
39:       READ(*,*) IWS
40: 
41:       CALL GROPN(IWS)
42:       CALL GRFRM
43:       CALL GRSVPT(0.15,0.85,0.15,0.85)
44:       CALL GRSWND(UX(1),UX(NX),UY(1),UY(NY))
45:       CALL G2SCTR(NX,NY,UX,UY,CX,CY)
46:       CALL GRSTRN(51)
47:       CALL SGSCWD(CXMIN,CXMAX,CYMIN,CYMAX)
48:       CALL GRSTRF
49: 
50:       CALL SGLSET('LCLIP',.TRUE.)
51: 
52: *     / TONE /
53: 
54:       DO 35 J=1,NY
55:         DO 30 I=1,NX
56:           Z(I,J) = UX(I) + UY(J)
57:    30   CONTINUE
58:    35 CONTINUE
59: 
60:       CALL UELSET('LTONE',.TRUE.)
61:       CALL UWSGXA(UX,NX)
62:       CALL UWSGYA(UY,NY)
63:       CALL UETONE(Z, NX, NX, NY)
64: 
65: *     / GRID LINES /
66: 
67:       DO 45 J=1,NY
68:         DO 40 I=1,NX
69:           UYW(I) = UY(J)
70:    40   CONTINUE
71:         CALL SGPLU(NX,UX,UYW)
72:    45 CONTINUE
73: 
74:       DO 55 I=1,NX
75:         DO 50 J=1,NY
76:           UXW(J) = UX(I)
77:    50   CONTINUE
78:         CALL SGPLU(NY,UXW,UY)
79:    55 CONTINUE
80: 
81: *     / AXES (Switch to ITR==1) /
82: 
83:       CALL GRSWND(CXMIN,CXMAX,CYMIN,CYMAX)
84:       CALL GRSTRN(1)
85:       CALL GRSTRF
86:       CALL USDAXS
87:       CALL UXSTTL('T','BOTH X & Y TRANSFORMED',0.0)
88: 
89:       CALL GRCLS
90: 
91:       END
--------------- ץ g2pk01.f -------------------


ǥΤᡢʻϤñʲϴؿѤޤ U ɸ
ơĹפ¤ʻκɸ [ UX(I), UY(J) ] (I=1..NX,
J=1..NY) 졢줾줬Ȥʤľɸˤ [ CX(I,J),
CY(I,J) ] κɸͤޤ

42-48ܤǡѴꤷƤޤUɸˤϰϤ, UX, UY 
СΰԤäˤ٤

      CALL GRSWND(UX(1),UX(NX),UY(1),UY(NY)) 

ꤷޤ(44)ӥ塼ݡȤλͶCɸͤꤹ 
CXMIN,CXMAX,CYMIN,CYMAX ˤŬͤꤷƤޤ(30-33 )
GRFRM, GRSTRGRPH2GRPACKȤäƽ硢C[XY](MIN|MAX)
ϾάǤޤ(GRFRMCXMINˤޤ)άˤϡʻҤԤ
٤CX, CYκͤѤŪꤷޤ

Uɸǿɤ(54-63)򤷤ȡʻҤɽޤ(67-79)
ΤȤʬVɸǤΤޤʬȤƽ񤯤褦ˤʤäƤޤΤǡ
Τ褦˳ƳʻޤȤƽɬפޤˤ
֤ˤƤϡΤ褦ˤȸ̩ʳʻҤɽȤʤޤ

ɸ C ɸǽ񤭤ޤ(83-87)Τ˸СѴ
ʤơޤCɸǤäɸϤUɸȤ(Ѵ
1)ɸ񤭤ޤΤȤѴֹ51ˤľܤκɽ
ϥݡȤƤޤ

㣲

Υץ¹Ԥȡ g2pk02.png ޤ

<img src="g2pk02.png">
<a href="g2pk02.f">ץg2pk02.f</a>

--------------- ץ g2pk02.f -------------------
 1: *--------------------------------------------------------------------
 2: *     Copyright (C) 2000-2004 GFD Dennou Club. All rights reserved.
 3: *--------------------------------------------------------------------
 4:       PROGRAM G2PK02
 5: 
 6:       PARAMETER(NX=15,NY=15)
 7: 
 8:       REAL UX(NX), UY(NY)
 9:       REAL UYW(NX), UXW(NY)
10:       REAL CX(NX,NY), CY(NX,NY)
11:       REAL Z(NX,NY)
12:       REAL TERRAIN(NX)
13: 
14: 
15: *     / SET PARAMETERS /
16: 
17:       CALL GLRGET('RUNDEF',RUNDEF)
18: 
19:       DO 10 I=1,NX
20:         UX(I)=(I-1.0)/(NX-1.0) - 0.5
21:         TERRAIN(I) = 0.1 * EXP(-24*UX(I)**2)
22:    10 CONTINUE
23:       DO 15 J=1,NY
24:         UY(J)=(J-1.0)/(NY-1.0)
25:    15 CONTINUE
26: 
27:       CX(1,1) = RUNDEF
28:       DO 25 J=1,NY
29:         DO 20 I=1,NX
30:           CY(I,J) = UY(J)*(1.0-TERRAIN(I)) + TERRAIN(I)
31:    20   CONTINUE
32:    25 CONTINUE
33: 
34: *     / GRAPHIC /
35: 
36:       WRITE(*,*) ' WORKSTATION ID (I) ? ;'
37:       CALL SGPWSN
38:       READ(*,*) IWS
39: 
40:       CALL GROPN(IWS)
41:       CALL GRFRM
42:       CALL GRSVPT(0.15,0.85,0.15,0.85)
43:       CALL GRSWND(UX(1),UX(NX),UY(1),UY(NY))
44:       CALL GRSTRN(51)
45:       CALL G2SCTR(NX, NY, UX,UY, CX,CY)
46:       CALL GRSTRF
47: 
48: *     / TONE /
49: 
50:       DO 35 J=1,NY
51:         DO 30 I=1,NX
52:           Z(I,J) = UX(I) * (1-UY(J))
53:    30   CONTINUE
54:    35 CONTINUE
55: 
56:       CALL UELSET('LTONE',.TRUE.)
57:       CALL UWSGXA(UX,NX)
58:       CALL UWSGYA(UY,NY)
59:       CALL UETONE(Z, NX, NX, NY)
60: 
61: *     / GRID LINES /
62: 
63:       DO 45 J=1,NY
64:         DO 40 I=1,NX
65:           UYW(I) = UY(J)
66:    40   CONTINUE
67:         CALL SGPLU(NX,UX,UYW)
68:    45 CONTINUE
69: 
70:       DO 55 I=1,NX
71:         DO 50 J=1,NY
72:           UXW(J) = UX(I)
73:    50   CONTINUE
74:         CALL SGPLU(NY,UXW,UY)
75:    55 CONTINUE
76: 
77: *     / AXES  (Switch to ITR==1) /
78: 
79:       CALL G2QCTM(CXMIN, CXMAX, CYMIN, CYMAX)
80:       CALL GRSWND(CXMIN,CXMAX,CYMIN,CYMAX)
81:       CALL GRSTRN(1)
82:       CALL GRSTRF
83:       CALL USDAXS
84:       CALL UXSTTL('T','TERRAIN FOLLOWING',0.0)
85: 
86:       CALL GRCLS
87: 
88:       END
--------------- ץ g2pk02.f -------------------

Ǥ, CXUXȤY˱äƤΤߺɸѴƤޤUX1
ʤΤФCX2Ǥ顢Τ褦ѰդʤФʤ
ʤȤʤȾݤǤǡCXκǽǤͤ GLPACK Υѥ
 'RUNDEF' ͤϡCXUXǤȲᤵ뤳Ȥˤʤä
ޤʹߤͤɤ߹ߤޤΤǡCXΤ2Ѱդ
ɬפ⤢ޤǤѰդƤޤˡƱͤʤȤ Y ˱
ƤޤCXUXCYUYʤ餳Ѵΰ̣ʤΤǡ
顼ˤʤ褦ˤʤäƤޤ

ɸѴ(41-46)ˤ㣱Ȱ㤦ΤϡC[XY](MIN|MAX) 
ƤʤȤǤȡŪ˳ʻԤäޤ褦
褬ݤޤΤǡޤΤ褦ʷ̤ȤʤޤΤˤ 
Τ褦ˡGRPH2 롼 GRFRM Ѥɬפޤʤ
Ūꤵ줿Υѥ᥿򻲾Ȥ뤳ȤǡCɸؤڤ
ȼǤޤ79-84)
