 gtool4 & ¾ ٶ () Ρ 

   Copyright (C) Morikawa Yasuhiro <morikawa@ep.sci.hokudai.ac.jp> 2004.
		 All rights reserved

     !! --- Caution!!  
                                             
     Υ񤭤ˤϥޤ路  
     񤤤Ƥ꤬¿ޤ.           
     ̵ǰƬ˸Ѥ    
                                             
   

 gt4f90io ȥ

   2004/10/28

    gt4_history.f90  HistoryGet ̵¼ʤѿ
      ɤ߹ʤȤХ(Ǽѿǽ)

    嵭νȿǤ褦ˡtest/histget.f90  test/histget.sh
      

    test/histtest.sh ν

    TAG Ϥ

      ǥŽäƤgt4f90io Υȥåץǥ쥯ȥ

	 $ cvs tag gt4f90io-20041028

      Ȥ롣

   2004/08/12

    Ѥγȯ HISTORY.htm 

    б gtool4 netCDF  С 4.3  4.2 

      gtool4 netCDF Ȥбɽ doc/data-gt4ncconv.htm 
      gt4_history.f90 ˤƥС 4.3 ȤƤޤäƤΤ
      4.2 ᤷ.

    Ĺʸμ갷򲼤˱

      §Ū˲Ĺʸ VSTRING  gt4f90io Ǥϰʤͽ
      ʤΤ, ˴ؤɥȤȥåפéʤ褦ˤ.
      , ɤˤϴޤޤƤΤ lib-names.htm 
      é褦ˤƤ. (gt4f90io ǤϥݡȤޤ
      Ȥս񤭤Ĥ).

    TAG Ϥ

      , ǥŽäƤ. gt4f90io Υȥåץǥ쥯ȥ

	 $ cvs tag gt4f90io-20040812

      Ȥ.



   2004/08/02  09

    gtool4 netCDF Ȥбɽ

      ߤ gt4f90io ɤ°/᤹Τ򵭤
      ꥹȤ
      - doc/data-gt4ncconv.htm

    HistoryCreate κݤ "Conventions", "gt_version" °

      HistoryCreate ѻ, ưŪ "Conventions" 
      "gt_version" °Ȥ netCDF ǡղä褦ˤ.
      ư°ͤꤹ뤳ȤǽˤʤäƤ.

      ŪˡϺޤ̤ɤ.

       ե󥹥ޥ˥奢ν
	 - 嵭ɤ˹碌ƥޥ˥奢⽤.

       ƥȥץν
	 - test/histtest.f90 嵭˹碌ѹ.

    HistoryGet ݥ󤫤Ѥ褦˻ѹ

      ޤǤ󥵥ꤷƤϤƤ,
      ݥ (0  3Ϥɬפ) Ϥ
      ϥǡΥ˹碌ƼưŪ allocate 
      ֤äƤ褦ˤ.

       Τ, , ĹϤʤʤäƤ.
	 Τȸ, Υ֥롼Ʊ̾
	 "HistoryGet" ˤ褦Ȥ, ϤƱʤΤ,
	 ʶ路ߤƲŪåˤޤ뤫Ǥ.
	 ʤߤ Intel Fortran 7.0 ϥѥˤޤ,
	 Fujitsu Fortran 4.0 ǤϥѥϤǤΤ,
	 ºݤ˥饤֥ȤƻȤȤΤ褦ʥå
	 Τ¹ԤǤʤ.

       ե󥹥ޥ˥奢ѹ
	 - 嵭ѹ˹碌ƥޥ˥奢ѹ.

    HistoryPut Υ顼̿Ū(?)Х

      HistoryCreate  HistoryAddVariable ʤɤˤäƺ
      ʤ, ¸ߤʤѿ˽Ϥ褦Ȥ, ¸Τɤ줫
      ѿ˾ͤǤޤХ.
      -> ȥ顼֤褦ˤ.

    HistoryCopyVariable 򿷵

      ̥եѿ°°ͤ򤽤Τޤޥԡ륵֥롼.
      ˤ, ѿʬΥɤʤǲǤ (...ͽ?)

       ƥȥץκ
	 - test/histcopy.f90, test/histcopy.sh

       ե󥹥ޥ˥奢κ
	 - doc/hist-copy.htm
	 -  History*** Υޥ˥奢ˤ⤳Υ֥롼դ
	   ɵ.

    gt4_history طΥޥ˥奢

       ñ - ټ¿Ѵ˴ؤ (in HistoryPut, Get)
	 - HistoryGet  HistoryPut , netCDF ǡȰ㤦
	   (㤨 netCDF Ǥñ٤ΥǡΤȤ HistoryPut 
	   ٥ǡäʤ) ˤɤΤ褦ư򤹤Τɵ.
	   - doc/hist-get.htm, doc/hist-put.htm

       ֤μưʹԤˤĤ (in HistoryPut)
	 - HistoryPut Ƥ˱ƼưŪ˻֤ʤळȤ
	   ޥ˥奢ɵ
	   - doc/hist-put.htm

    ⥸塼ΥɥȽ

       
	 - ʸѤ dc_string ⥸塼 ˴ؤ
	   - doc/proc-string.htm
	 - gtool4 ѿϤ dc_url ⥸塼 ˴ؤ
	   - doc/proc-url.htm
	 - ǥХå dc_trace ⥸塼 (ؿꥹȤ)
	 
       
	 - ³ΥꥹȤ򸫤䤹ʬ
	   - doc/lib-names.htm
	 - ³Τ줾Υڡ lib-names.htm إ
	   - doc/proc-***.htm
	 - ѿõ GTVarSearch
	   - doc/proc-varsys.htm
	     - 塼ȥꥢ˺ܤäƤܤ
	 - netCDF ǡȰ㤦 (㤨 netCDF Ǥñ٤Υǡ
	   ΤȤ Put ٥ǡäʤ) ˤɤΤ褦
	   ư򤹤Τɵ.
	   - doc/hist-put.htm, doc/hist-get.htm

    ƥȥץ

       ѥ˽Ϥΰۤʤ diffusion.f90  diffusion.sh
	 . (histtest.f90, histtest.sh ˴ؤƤϽ)

       HistoryGet Υƥȥץ histget.f90 ˤ
	 ٤ñ٤ȽƤ뤫Ĵ٤뤿,
	 Ϥͤ (?) 䤹.
      
       ¾Υƥȥץϥå򾯤

    ⥸塼β

       gtdata_generic  gtvarcreatecopy.f90 ˤ
	 2ĤΥեμӤκݤ, ̵¼ƱΤʤ
	 Ĺñ̤˴ؤ餺ƱפȤɲá

	 Ʊ gtvarcreatecopy.f90 , 򥳥ԡǤƤʤä
	 Х.

       dc_url δؿ UrlOnTheSameFile դѿη
	 VSTRING ʸѹ.
	 (ȼδؿѤƤ gtvarcreatecopy.f90 ⽤)

       gtdata_generic μ³getפ, 1, 2, 3 
	 ټ¿ݥ gtvargetdouble1.f90,
	 gtvargetdouble2.f90, gtvargetdouble3.f90 .

	 Ʊͤ 3 ñټ¿ݥ
	 gtvargetreal3.f90 .

	  4 ĤΥե Makefile Ͽ.

    TAG Ϥ

      , ǥŽäƤ. gt4f90io Υȥåץǥ쥯ȥ

	 $ cvs tag gt4f90io-20040809

      Ȥ.



   2004/04/01

    GCM ߥʡ

       ޥ˥奢ľ, 줫ΤȤ.

    TAG Ϥ

      , ǥŽäƤ. gt4f90io Υȥåץǥ쥯ȥ

	 $ cvs tag gt4f90io-20040401-1

      Ȥ


   2004/03/312004/04/01

    HistoryGet ѥåץȺ

       ѻ

	 1. ޤ, gt4f90io ľ ./configure  make ,
	    饤֥⥸塼Υե뼫Τ
	 2. test ǥ쥯ȥ˹ߤ, ޤ make ¹
	 3. θ,  test ǥ쥯ȥ

	      sh ./histget.sh

	    Ȥ뤳Ȥ HistoryGet åԤʤȤǤ.

	      okay

	    ɽ ok. ʤФʤ餫ꤢ.

    TAG Ϥ

      , ǥŽäƤ. gt4f90io Υȥåץǥ쥯ȥ

	 $ cvs tag gt4f90io-20040401

      Ȥ


    줫

       ϥե񤭤褦ˤ
	 <ޤ, Τ>

	 - ߤϾ񤭤ʤǷٹФ褦ˤƤ.

       եϤ˴ؤƤפ
	 (Dennou Ruby WorkShop ΥȤ򤽤Τޤĥդ)

   	 + (Ƿ) ϥե򥵥䥿ॹƥåפ˱ʬʤ?
	   - () ߤϡ§1Ĥ HistoryCreate  1 ĤΥեǤ.
	   - (Ƿ) ޤǤξˤ֤褦˺ɤ.
	   - () ϤϥץǥƤ .

	 + (Ƿ) ǡФĶˤʤơ
	   ϰϻֳִ֤ѿ˽褦ʾ
	   Ȥʤ

       °˴ؤ (εؤбȤط뤬)
  	 - HistoryCreate , ǥեȤ¾ο侩°
    	   񤭽Ф褦ˤ?
	   - , ɬܡפ°Ͻ񤭽Ф褦ˤʤ?

	 -  netCDF ե°ѿν°°
	   ѾǤ褦ˤ?
	   - °Ѥ HistoyGetAttr ?
	   - HistoryGetAttr  HistoryAddAttr ΥåѡȤ,
	     HistorySuccessAttr ɤ?

       Gtool4 netCDF Ȥб˴ؤ
	 (Dennou Ruby WorkShop ΥȤ򤽤Τޤĥդ)

         + (Ƿ) Gtool4 netCDF ȤбΤ˽񤤤Ƥȴ򤷤.
	   - ġ°˴ؤбѤȤ̤бȤäɽ

       dcl  msgdmp 륵֥롼?
	 <>

	 - msgdmp λ
	   http://www.gfd-dennou.org/arch/dcl/dcl-f90/rc1_jp/math/syslib/syslib01.htm
	   - gt4f90io 롼Ȥб
	     gt4f90io ǤϤۤƱʤεǽĥ֥롼Ȥ
	     dc_error ⥸塼 Storeerror ֥롼
	     äƤ. ޤ򤯤Ʊ󥿡ե
	     󶡤ǤΤΤʤ.
	     - Ĥޤ, msgdmp λͤʬäƤʤΤ
	       бϤäƤ.
	 - Ť񸻤ľ dcl Υ饤֥ɤߤ˹ԤäƤ
	 - Ф, dcl εǽɤɤ gt4f90io 
	   ۼʤФʤʤʤä.
	   - dcl äΤɤ, ֤򿧡ͤͤ
	     ʤʤΤǷɥȹ

       Intel Fortran 8.0 (ifort) ΥХ˴ؤ

	 - gt4_history.f90  HistoryCreate2  HistoryCreate1 
	   Ϥݤ, ¤ʸ򤦤ޤϤʤ餷,
	   ʸ󤬤ʥХʥȤʤ, Ǥʤư۾ｪλ.
	   Τǥƥȥץ histtest.f90 Ϥޤư
	   ʤ, 桼ФƸƤΤ HistoryCreate1
	   ʤΤǤۤäƤ.

	   ifort ǥƥȤݤˤϵĤ뤳.


   2004/03/242004/03/30

    HistoryGet 

       ޥ˥奢
       Ĥ test ץȥ塼ȥꥢ, ưǧ
	 -  frt4, ifc7.0 Ǥưǧ
	 
    an_file.f90 ν

      ¸ netCDF ե뤬 nc եϤǤʤ
      ݤ򼨤åɤݤ˥ХȤ߹ǤޤäƤΤ
      եå

    顼ΰ˴ؤ뽤

       lib-error.htm  dc_error.f90 
       ʥ顼ɤɲ (ܤ lib-error.htm )


    TAG Ϥ

      , ǥŽäƤ. gt4f90io Υȥåץǥ쥯ȥ

	 $ cvs tag gt4f90io-20040330

      Ȥ


    줫

       ǡϡѤΥ֥롼γȯ

	 - test ץѰդ
	   (ưǧΤ)
         - ĤΥѥưǧ
	   - ǧ : ifc7.0, frt4


       dcl  msgdmp 륵֥롼?
	 <>

	 - msgdmp λ
	   http://www.gfd-dennou.org/arch/dcl/dcl-f90/rc1_jp/math/syslib/syslib01.htm
	   - gt4f90io 롼Ȥб
	     gt4f90io ǤϤۤƱʤεǽĥ֥롼Ȥ
	     dc_error ⥸塼 Storeerror ֥롼
	     äƤ. ޤ򤯤Ʊ󥿡ե
	     󶡤ǤΤΤʤ.
	     - Ĥޤ, msgdmp λͤʬäƤʤΤ
	       бϤäƤ.
	 - Ť񸻤ľ dcl Υ饤֥ɤߤ˹ԤäƤ
	 - Ф, dcl εǽɤɤ gt4f90io 
	   ۼʤФʤʤʤä.
	   - dcl äΤɤ, ֤򿧡ͤͤ
	     ʤʤΤǷɥȹ

   

   2004/03/182004/03/21

    ifort8.0 б

      ƥȥץ, 塼ȥꥢΥץϻ.
      ɥȤưǧ⤽Τ褦˽񤭴.

    塼ȥꥢ


    TAG Ϥ

      , ǥŽäƤ. gt4f90io Υȥåץǥ쥯ȥ

	 $ cvs tag gt4f90io-20040321

      Ȥ

    줫

       ǡϡѤΥ֥롼γȯ
	 <>

	 - ⤵ΥץǷ⤵Υåѡ(?)򻲾Ȥ?
	 - ޥ˥奢, test ⴰ뤳.


       dcl  msgdmp 륵֥롼?
	 <>

	 - msgdmp λ
	   http://www.gfd-dennou.org/arch/dcl/dcl-f90/rc1_jp/math/syslib/syslib01.htm
	   - gt4f90io 롼Ȥб
	     gt4f90io ǤϤۤƱʤεǽĥ֥롼Ȥ
	     dc_error ⥸塼 Storeerror ֥롼
	     äƤ. ޤ򤯤Ʊ󥿡ե
	     󶡤ǤΤΤʤ.
	     - Ĥޤ, msgdmp λͤʬäƤʤΤ
	       бϤäƤ.
	 - Ť񸻤ľ dcl Υ饤֥ɤߤ˹ԤäƤ
	 - Ф, dcl εǽɤɤ gt4f90io 
	   ۼʤФʤʤʤä.
	   - dcl äΤɤ, ֤򿧡ͤͤ
	     ʤʤΤǷɥȹ


   2004/03/13

    ޥ˥奢

       ޥ˥奢δ

	 -  ()

	   - Ƭˡ֥饤֥공פؤΥ󥯤Τä

	   - gtool4 ȤĶפ gt4f90io Ѥ

	   - F77 ѥե󥹥ޥ˥奢
	     - doc/hspack.htm ν񼰤 gt4_history.htm ˹碌

	   - ref.htm ˡgt4f90io Ȥ?פؤΥ󥯤
	     (ޤեϺƤʤ)

	   - Ѹܼڡν


       ifc8.0 б˥եå

	 1. gtvarinquire.f90 Ǥ, ȹߴؿƱ̾
	    sizeѿѤƤ, ץ

	       intriment size

	    Ȥ뤳ȤǰʲΥ顼.
	    äƤʬ򥳥ȥȤ뤳Ȥб.

	    (ˤ, ǤȤ߹ߴؿ size ѤƤʤ.
	     ѤˤϤŪбɬפ뤬)


    TAG Ϥ

      , ǥŽäƤ. gt4f90io Υȥåץǥ쥯ȥ

	 $ cvs tag gt4f90io-20040313

      Ȥ



    줫

       ޥ˥奢δ

	 -  ()

	   - gt4f90io Ȥ?פgtool4ȸ̾ͳפβ˲ä
	     - äȰǽ

	 -  ()

	 - ֥󥹥ȡɬפʤΡ׽
	   - frt ˸ꤵ줿ɽ


       ifc8.0 б˥եå

	  ɤʬʤ顼.
	    - Υ顼 ifort8.0.039 ʹߤʤвǤ.
	    -  l_fc_p_8.0.039.tgz õ...  ()

======================================
ifc -c   -O -Qoption,ld,-Bdynamic -Vaxlib -w  gt4_history.f90
ifc: warning: The Intel Fortran driver is now named ifort.  You can suppress this message with '-quiet'
fortcom: Severe: gt4_history.f90, line 161: **Internal compiler error: internal abort** Please report this error along with the circumstances in which it occurred in a Software Problem Report.  Note: File and line given may not be explicit cause of this error.
            & dims=axes(:)%name, dimsizes=axes(:)%length, &
..........................................^
compilation aborted for gt4_history.f90 (code 3)
======================================



       ǡϡѤΥ֥롼γȯ
	 <>

	 - ⤵ΥץǷ⤵Υåѡ(?)򻲾Ȥ?
	 - ޥ˥奢, test ⴰ뤳.


       dcl  msgdmp 륵֥롼?
	 <>

	 - msgdmp λ
	   http://www.gfd-dennou.org/arch/dcl/dcl-f90/rc1_jp/math/syslib/syslib01.htm
	   - gt4f90io 롼Ȥб
	     gt4f90io ǤϤۤƱʤεǽĥ֥롼Ȥ
	     dc_error ⥸塼 Storeerror ֥롼
	     äƤ. ޤ򤯤Ʊ󥿡ե
	     󶡤ǤΤΤʤ.
	     - Ĥޤ, msgdmp λͤʬäƤʤΤ
	       бϤäƤ.
	 - Ť񸻤ľ dcl Υ饤֥ɤߤ˹ԤäƤ
	 - Ф, dcl εǽɤɤ gt4f90io 
	   ۼʤФʤʤʤä.
	   - dcl äΤɤ, ֤򿧡ͤͤ
	     ʤʤΤǷɥȹ

       chkfort.sh ν
	 <>

	 - , Config.mk ԽΤɤʤä
	   ˤ.


   2004/02/26

    줫

       ޥ˥奢δ

	 -  ()

	   - gt4f90io Ȥ?פgtool4ȸ̾ͳפβ˲ä
	     - äȰǽ

	 -  ()

	 - ֥󥹥ȡɬפʤΡ׽
	   - frt ˸ꤵ줿ɽ


       ifc8.0 б˥եå

	 1. gtvarinquire.f90 Ǥ, ȹߴؿƱ̾
	    sizeѿѤƤ, ץ

	       intriment size

	    Ȥ뤳ȤǰʲΥ顼.
	    , ̾ؤƥեå

======================================
ifc -c   -O -Qoption,ld,-Bdynamic -Vaxlib -w  gtvarinquire.f90
ifc: warning: The Intel Fortran driver is now named ifort.  You can suppress this message with '-quiet'
fortcom: Error: gtvarinquire.f90, line 51: This intrinsic procedure cannot be passed as an actual argument.   [SIZE]
    if (present(size)) size = internal_get_size(var)
................^
fortcom: Error: gtvarinquire.f90, line 51: The argument to the PRESENT intrinsic function must be an optional argument of the procedure in which the PRESENT function reference appears.   [SIZE]
    if (present(size)) size = internal_get_size(var)
................^
======================================

	 2. ɤʬʤ顼.
	    - ܸ䤤碌ʬäΤ, 䤤碌 ()
	      - ƺ  ()

======================================
ifc -c   -O -Qoption,ld,-Bdynamic -Vaxlib -w  gt4_history.f90
ifc: warning: The Intel Fortran driver is now named ifort.  You can suppress this message with '-quiet'
fortcom: Severe: gt4_history.f90, line 161: **Internal compiler error: internal abort** Please report this error along with the circumstances in which it occurred in a Software Problem Report.  Note: File and line given may not be explicit cause of this error.
            & dims=axes(:)%name, dimsizes=axes(:)%length, &
..........................................^
compilation aborted for gt4_history.f90 (code 3)
======================================



       ǡϡѤΥ֥롼γȯ
	 <>

	 - ⤵ΥץǷ⤵Υåѡ(?)򻲾Ȥ?
	 - ޥ˥奢, test ⴰ뤳.


       dcl  msgdmp 륵֥롼?
	 <>

	 - msgdmp λ
	   http://www.gfd-dennou.org/arch/dcl/dcl-f90/rc1_jp/math/syslib/syslib01.htm
	   - gt4f90io 롼Ȥб
	     gt4f90io ǤϤۤƱʤεǽĥ֥롼Ȥ
	     dc_error ⥸塼 Storeerror ֥롼
	     äƤ. ޤ򤯤Ʊ󥿡ե
	     󶡤ǤΤΤʤ.
	     - Ĥޤ, msgdmp λͤʬäƤʤΤ
	       бϤäƤ.
	 - Ť񸻤ľ dcl Υ饤֥ɤߤ˹ԤäƤ
	 - Ф, dcl εǽɤɤ gt4f90io 
	   ۼʤФʤʤʤä.
	   - dcl äΤɤ, ֤򿧡ͤͤ
	     ʤʤΤǷɥȹ

       chkfort.sh ν
	 <>

	 - , Config.mk ԽΤɤʤä
	   ˤ.
   

   2004/02/112004/02/17

    cvsroot Υѡߥåѹ

      ޤǤ, ѡߥå꤬ȤʤƤʤä,
      ư cvsroot/gt4f90io ʲΥ롼פ gtool4 ꤷƤ,
      commit 뤿Ӥ morikawa äƤޤäƤ.

      ¾ cvsroot ʲΤΤ򻲹ͤˤ, ƥǥ쥯ȥ
      ѡߥå, 롼פ sbit Ω,

          drwxrwsr-x  morikawa gtool4       4096  2 10 01:50 gt4f90io/
	        ^ []
	  
      Τ褦ˤɤȤʬä.

      ĤȤ櫓, ʲκȥ

        1. gt4f90io  cvsroot ֤ǰư

	     dennou-k:$ cd /GFD_Dennou_Club/ftp/arch/gtool4/cvsroot

        2.  (ޤطʤ)

	     $ sg gtool4
	     $ umask 002

        3. sbit ΩƤ

	     $ chmod 2775 gt4f90io

	4. Ʊͤ˰ʲΥǥ쥯ȥФƤԤʤ
	   (ʤߤ, Attic Ȥ cvs remove 줿ե뤬
	    ư)

	     gt4f90io/Attic
		      doc
		      doc/Attic
		          images
			  images/Attic
		      src
		      src/Attic
	              test


    ޥ˥奢

       塼ȥꥢκ

         - ե뷲
	 
	     tlib-00intro.htm
	     tlib-10io.htm
	     tlib-20sysprog.htm
	     tlib-30graphic.htm
	     tut101.htm
	     tut101_en.htm
	     tut102.htm
	     tut102_en.htm
	     tut103.htm
	     tut103_en.htm
	     tutorial-en.htm
	     tutorial.htm


       塼ȥꥢ°ƤʲΥɥȤ
	 ᥤΥڡǤ ref.htm ٤褦ˤ.

	 - gtool4 ɸ             intro-goal.htm
	 - gtool4 ΤȤ̾ͳ intro-name.htm
	 - gtool4 ȤĶ       intro-env.htm

       Ѹڡ ref-en.htm Ʊͤ

	 - the goal of gtool4             intro-goal-en.htm
	 - why it is called gtool4	      intro-name-en.htm
	 - the environment in which gtool4 can be used
					      intro-env.htm

       INSTALL  INSTALL.ja 
      
       INSTALL.ja, INSTALL.en 

	 doc/install-prepare.htm  doc/install.htm 
	 doc/install-prepare_en.htm  doc/install-en.htm
	 ؤˤ.

	  Ѹˤϼ̵Ǥ.


       󥹥ȡޥ˥奢

	 doc/install-prepare.htm  doc/install.htm 
	 doc/install-prepare_en.htm  doc/install-en.htm
	 . (Ѹˤϼ̵Ǥ)


       饤֥ޥ˥奢ΥŽ괹

	 gtool4/Fortran90 tools libraryפ
	 gt4f90io ե󥹥ޥ˥奢פ˽񤭴

         - lib-datatypes.htm
	 - lib-error.htm
	 - lib-gaikan.htm
	 - lib-names.htm
	 - lib-naming.htm
	 - lib-oop.htm
	 - lib-string.htm


       sysdep ⥸塼ʲ, פʥ֥롼

	 - sysdeparg-common.f90
	 - sysdeparg-dcl.f90
	 - sysdeparg-hitachi.f90
	 - sysdeparg.m4

	 - sysdepabort-dcl.f90


       嵭Υեȼ, configure.in , configure,
	 Config.mk.in  SYSDEPARG ʬ,
	 SYSDEPABORT  dcl Ǥʤ褦ˤ.

	 - , ѥ뤬̤뤳Ȥϳǧ

       src/Makefile  sysdeparg ƤФʤ褦˽.

       src/sysdep.f90  sysdeparg طΥ֥롼
	 ƤӽФʤ褦˽.

       gt4f90io ξܺٿޤ

         - lib-shousai.htm
	 - gt4f90io.obj

       gt4f90io γѿޤ

	 - gt4f90io_overview.obj

       Υ֥롼ɥȤ
	 gtool4/Fortran 90פȸäҤgt4f90ioפ
	 ֤.


    TAG Ϥ

      , ǥŽäƤ. gt4f90io Υȥåץǥ쥯ȥ

	 $ cvs tag gt4f90io-20040217

      Ȥ


    줫

       ޥ˥奢δ

	 - ֤⤽ gt4f90io Ȥ?פȤ񤤤Ƥ?
	   - ޤǤΤˤ, gtool4 Tools/Library ?פ̵äΤ

	 - F77 ѥե󥹥ޥ˥奢 (?)

       ifc8.0 б˥եå

	 - ŪľʤФʤʤʤ, ۤäȤ


       塼ȥꥢ°Ƥ, ʲΥɥȤμ谷ˤη

	 - gtool4 ɸ             intro-goal.htm
	 - gtool4 ΤȤ̾ͳ intro-name.htm
	 - gtool4 ȤĶ       intro-env.htm

       ǡϡѤΥ֥롼γȯ

	 - ⤵ΥץǷ⤵Υåѡ(?)򻲾Ȥ?
	 - ޥ˥奢, test ⴰ뤳.

       dcl  msgdmp 륵֥롼?

	 - Ť񸻤ľ dcl Υ饤֥ɤߤ˹ԤäƤ
	 - Ф, dcl εǽɤɤ gt4f90io 
	   ۼʤФʤʤʤä.


   2004/01/22

    ޥ˥奢

       ȥåץǥ쥯ȥ Windows ѥ󥹥ȡ INSTALL.BAT 

       ȥåץǥ쥯ȥ Windows  tarball Maker export.BAT 

       ȥåץǥ쥯ȥ INSTALL  gt4f90io ѹ

	 doc/install.htm  doc/install-prepare.htm ֥饦
	 ɽΤ򥳥ԡ


   2004/01/21

    ޥ˥奢

      ޥ˥奢ΥǥХå

       doc ʲ images ǥ쥯ȥ꤬󥹥ȡ뤵ʤβ

	 Makefile 
	 
       HistoryAddAttr °ղäˡɵ

       HistoryAddVariable ˰¸ 4 ʲˤ褦ɵ

       HistoryAddVariable μκݤ˻ּǸ˻ä
	 褦ɵ

       Ž

	 , ǥŽäƤ. gt4f90io Υȥåץǥ쥯ȥ

	 $ cvs tag gt4f90io-20040121

	 Ȥ
      

   2004/01/132004/01/15

    ޥ˥奢

      doc ʲΥޥ˥奢˼ݤ.

      ؿˤȤƤ,

       եåʬڤΥ

       gt4_history ޤ

       饤֥ (ȯԸ)  gt4f90io ˽ľ

      ȤȤǤ.

      ãΤ,

       եåʬڤΥ

	 gtgraph_generic  GT_OBJECT ʤɤΥեå˴ؤ
	 ⥸塼, ¤, ֥롼˴ؤޥ˥奢
	 doc ӽ.

	 ĤäƤΤϥ饤֥공 (lib-gaikan.htm),
	 ӱѸ INDEX (ref-en.htm) Ǥ.

       gt4_history ե󥹥ޥ˥奢

	 ߻Ѳǽ gt4_history ⥸塼Υ֥롼
	 ե󥹥ޥ˥奢.

	 Ϥܴۤλ

       ֥󥹥ȡμײ

	 ٥ΤȤ񤤤ƤʤΤ,
	 ׾˽񤭴.

       ֥󥹥ȡɬפʤΡפ DCL ˴ؤ뵭Ҥ

       Ž

	 , ǥŽäƤ. gt4f90io Υȥåץǥ쥯ȥ

	 $ cvs tag gt4f90io-20040115

	 Ȥ
      
    줫

       ޥ˥奢δ

	 - ֥饤֥공ѡפǿΤΤ֤.
	 - ֤⤽ gt4f90io Ȥ?פȤ񤤤Ƥ.
	   - ޤǤΤˤ, gtool4 Tools/Library ?פ̵äΤ
         - , ѸɽϺ?

       ǡϡѤΥ֥롼γȯ

	 - ⤵ΥץǷ⤵Υåѡ(?)򻲾Ȥ?
	 - ޥ˥奢, test ⴰ뤳.

       塼ȥꥢΰ˴ؤ

	 - ä? »Ĥ?


      

   2003/12/082003/12/09

    

       ifc-7.0 Ǥ Config.mk κ

         1. Config.mk 
	 
              $ ./configure --with-netcdf=/usr/local/lib/libnetcdf.a

	    Ȥ, Config.mk 


	 2. Config.mk Խ

	      SYSFFLAGS=-O -Qoption,ld,-Bdynamic -Vaxlib -w    
	    
	      SYSLDLIBS=-lnetcdf -L/usr/lib/ -lnetcdf-ifc7

             ޤǤ, gtool4  dcl ΥġǤ
	       dclf90config ƤӽФȤ, ʤȤ
	       SYSFFLAGS ϼưǽ񤭹ޤ줿,
	        dcl ¸ʤʤäΤǼư
	       񤭹ޤͤФʤʤ.


       ifc-7.0 Ǥ gt4f90io 󥹥ȡˡ

	 1. 

	    ޤ, ʲδĶѿ.

	      $ export CVSROOT=:ext:dennou-k.gfd-dennou.org:/GFD_Dennou_Club/ftp/arch/gtool4/cvsroot
	      $ export CVS_RSH=ssh

	    , checkout ޤ export

	      $ cvs checkout gt4f90io

	             ޤ

	      $ cvs export -D "2003-12-10" gt4f90io
	                           
	             (դ񤯤ȺǿǤ)


	 2. Config.mk 

	      $ cd gt4f90io    (ǥ쥯ȥذư)

              $ ./configure --with-netcdf=<netcdf饤֥ؤPATH>/libnetcdf.a

	    Ȥ, Config.mk 


	 3. Config.mk ΰʲξԽ

	      SYSFFLAGS=-O -Qoption,ld,-Bdynamic -Vaxlib -w    
	    
	      SYSLDLIBS=-lnetcdf -L<netcdf-ifc7饤֥ؤPATH> -lnetcdf-ifc7

	 4. make ǥѥ

	      $ make

	    (Config.mk 󤬽񤭹ޤƤ
	     ѥ뤵Ϥ)

	 5. 󥹥ȡ

	      # make install

	    , /usr/local/gt4f90io إ⥸塼, 饤֥꤬
	    󥹥ȡ뤵ϤǤ.


	 6. ɥȤΥ󥹥ȡ

	      # make install-doc

	    , /usr/local/gt4f90io/doc إɥȤ
	    󥹥ȡ뤵ϤǤ.

	       

    

       src/dc_string.f90  CUPPER, CLOWER 
	 dcl ¸ǤäΤ,
	 dcl-5.2/src/misc1/chglib/cupper.f
				  clower.f
	 Υɤ f90 Ѵưܿ

	 make ƤߤȤ, ޤäƤĤ褦.
	 ۤȤʡ?

       test ǥ쥯ȥ˰ư, ƥȤ¹ԤǤ뤫å

	   $ cd test
	   $ make

	      .... 

	   $ make test

	      Ϥ줿ΤϤ٤ΤŪå

                          

	      ⤽å٤Τʤ٤ä...
	      
       test ǥ쥯ȥʲΥե

         test/histtest.sh
	      histtest.f90
	      diffusion.sh
	      diffusion.f90

	 

	   gtool_history -> gt4_history
	   gtool4        -> gt4f90io


       src/gt4_history.f90 Τgtool_historyפǤФ褦
	 ʤäƤΤ,  gt4_historyפѹ


       test/diffusion.sh  gtprint ѤƤ뤿,
	 åԤʤʤȤʬ.

	  gtprint Ȥ鷺, ncdump  -v ץ
	 ȤȤǲ.

	 (ϥإå񤭽ФӤä,
	  񤷤äΤ, Ƥñˡä).


       󥹥ȡ뤷Ƥߤ

	 , /usr/local/gt4f90io ǥ쥯ȥʲ
	 󥹥ȡ뤬λ.


       spmodel  shallow_sfvp Ŭ˽񤭴
	 ƥȤƤߤ.

	 -> ޤư.



    줫

       ư Config.mk ץν

	 - Config.mk  SYSFFLAGS  -Vaxlib Ĥ,
	   dclf90config  dcl ܿ.
	   (ץऽΤΤϥ륹ץȤ
	   dcl-5.2  dcl-5.2/bin/dclcc.org*
				  dclconfig.org*
				  dclfrt.org*
	   ¸ߤ. ֤аܿǽ)

	   ( spmodel ϤɤƤΤʡ?)
		
	  - libnetcdf-<ѥ>.a  SYSLDLIBS ˲ä
	    褦ˤ뤿ˤϡ?


       sysdepabort-dcl.f90  sysdeparg-dcl.f90 

       configure.in Խ, dcl Ǥʤ褦ˤ.



   

   2003/11/12

      configure 

	Makefile ƥȤä, Config.mk ǤʤȤˤ
	ɤ褦ʤ, ޤ configure ɤƽ.

	ĤȻפä, configure  autoconf Ȥեȥ
	ưΤǤ뤳ȤȽ.
	(餯, ƥץ졼 Config.mk.in  configure.in
	 ѤƤ褦)

	ĤȤ櫓, autoconf ȤäƤߤ.
	ޤ, autoconf Ȥѥå apt-get Ǽ,
	man 򸫤Ƥߤ, ޤϰ̵ǻѤƤߤ.

	    $ cd gt4f90io
	    $ autoconf

	, ȥǥ쥯ȥ configure.in ɤ߹,
	configure .
	Ĥ, ߤ configure Ȥ礭 (diff Ȥä 200 Ԥۤ)
	ۤʤäƤޤä.


      autoconf  Config.mk ޤǤεư

	1. autoconf  configure

	   autoconf ޥɤ¹Ԥ, ȥǥ쥯ȥ

	     - configure.in
	     - aclocal.m4

	   ɤ߹, configure 


	2. configure  Config.mk

	     $ ./configure --with-netcdf=/usr/local/lib/libnetcdf.a \
	        --with-dclf90config=/usr/lib/dcl-5.2-ifc7/bin/dclf90config
		

	   Ȥ configure ¹Ԥ,
	   Config.mk.in ɤ߹ Config.mk 
	   .

	    Config.mk פȤΤ,
	      configure.in ΰֺǸΤۤˤ

	         AC_OUTPUT(Config.mk)

	      ǻꤵƤ.

	      ʤ, λˤ, ưŪ
	      Config.mk.in ɤ߹פȤȤ
	      ʤäƤ餷.


      aclocal.m4  gtool4  gt4f90io ǥ쥯ȥ
	ԡ, cvs add  cvs ci .


      롼Ȥ Makefile  configure 뤿Υå,
	"create-configure" ɲ.

	
      configure.in 褦Ȥ, gt4f90io.f90 
	̵פȸΤ, 

	  src/gtool.f90           gt4f90io.f90

	  src/gtool_history.f90   gt4_history.f90
	      gtool_history.html  gt4_history.html

	Ȥ.
	

      configure.in ˤʲ 2 

         - gtool  gt4f90io 

	     ==========================================
	     # 饤֥Τμץ
	     AC_INIT(src/gt4f90io.f90)
	     # 󥹥ȡ
	     AC_PREFIX_DEFAULT(/usr/local/gt4f90io)
	     ==========================================

         - dcl ¸ʬȤꤢϥȥ

	   ޤǤ, , dcl ؤΥ󥯤ꤵʤ
	   ./configure 򤹤ȥ顼ǤƽλƤ,
	   ɬפ̵.
	   (, netcdf ؤΰ¸)


      Config.mk.in λϤΥʬ


      ʾνˤ,

          $ ./configure --with-netcdf=/usr/local/lib/libnetcdf.a

	, Config.mk ǽˤʤä.

	ʹ, src ʲ make ¹Ԥݤˤ Config.mk
	ɬפˤʤΤ, ۤɤΥޥɤǺ
	Config.mk äʤ.
	ʤ, 줿;פʥե褦Ȥʤ,

	  $ make distclean

	Ȥ.


      src ʲäƺȳ

      dcl ¸å

	src ˳Ǽ f90depend.pl Ѥ,
	dcl ˰¸ƤΤ̵å

	  $ cd src
	  $ perl ./f90depend.pl * | grep dcl

	     ()
	     gr_file.o: dc_error.o dc_string.o dcl.o netcdf_f77.o
	     sysdepabort-dcl.o: dc_trace.o gtdata_generic.o

	gr_file.f90 Ϥޤä餷,
	Makefile ˺ܤäƤʤΤ̵뤷.

	sysdepabort-dcl.f90 ʤȤ.


      sysdepabort-dcl.f90  Makefile 

      sysdeparg-dcl.f90  Makefile 

	use dcl ϤƤʤäΤ, ºݤˤ
	DCL Υ֥롼ѤƤ sysdeparg-dcl.f90
	 Makefile .

	
      ޥɥ饤ΰѥ֥롼
	Makefile . оݤϰʲ̤

	  - gt_argtable.f90
	  - gtargget.f90
	  - gtargcount.f90
	  - sysdeparg-common.f90
	  - sysdeparg-hitachi.f90
	  - sysdeparg-dcl.f90
	  - sysdepabort-dcl.f90

      Makefile ˤ, gtool.f90  gtool_history 
	gt4f90io.f90  gt4_history.f90 ˲̾

      ʾ, dcl ̵ǤΥѥ뤬ǽˤʤϤǤ.

	ƥȤη, Ǥ.

	  $ cd src
	  $ make


       test ǥ쥯ȥ򤤤.

      Makefile, histtest.sh, histtest.f90 
	gtool_history  gt4_history Ƚ

      histtest.f90  gtArgCount åѤ
	ɤ򥳥ȥ.
	(¿ʬʤΤ)


         SYSLDLIBS=-lnetcdf -L/usr/lib/ -lnetcdf-ifc7

	 
	Ȥꤢɸ,

	   configure.in  (... Τ?)

	     - Config.mk  SYSFFLAGS  -Vaxlib Ĥ.
	       - abort Ǥʤ.
	        Ǥ, FFC ʤɤˤΥץäƤΤʡ?
		  Ĥɤ, ̵餷.
		  ifc ξˤ, Ȥդ뤫.

	     - libnetcdf-<ѥ>.a  SYSLDLIBS ˲ä
	       褦ˤ뤿ˤϡ?


	   test ǥ쥯ȥ˰ư, ƥȤ¹ԤǤ뤫å

	   ¤ src/dc_string.f90  CUPPER, CLOWER 
	     dcl ¸Ǥ뤳Ȥȯ.
	      DCL Υ򻲹ͤˤƽ.
	  
	   sysdepabort-dcl.f90  sysdeparg-dcl.f90 

	   configure.in Խ, dcl Ǥʤ褦ˤ.



   2003/11/11

      ܳŪ˳ȯ.

	gtool4 ̤ɬפʤΤä.
	ǾäΤ, §äĤä,
	ǥ쥯ȥϰٺȾäʤ,
	ǥ쥯ȥ

          - src
	  - doc
	  - test

        ΤߤȤ. ɬפˤʤää.


      եåѤΥե

	Τϰʲ 26 ĤΥե.

	  src/gtgraph_types.f90
      	      gtgraph_generic.f90
      	      gtgraph_com.f90

      	      gtgraph_drawparam.f90
	  
	  src/gtaxis.f90
	      gtaxisequivalent.f90
	      gtaxisload.f90
	      gtaxissave.f90
	      gtcontlib.f90
	      gtcontload.f90
	      gtcontsave.f90
	      gtdev.f90
	      gtfig.f90
	      gtfigdisplay.f90
	      gtfigload.f90
	      gtfigputobject.f90
	      gtfigsave.f90
	      gtframe.f90
	      gtframeload.f90
	      gtgraphsavename.f90
	      gtlinelib.f90
	      gtlineload.f90
	      gtlinesave.f90
	      gtobjectopen.f90
      	      gtstringquotefordcl.f90
	      gtvectlib.f90


      Makefile ʬ򥳥ȥ

	gt4f90io/Makefile
		 src/Makefile
		 test/Makefile

	,  src ʲΥե,
	gtview ˴ؤʬ򥳥ȥ.
	# ʸ, ͤˤʤ뤫ΤʤΤ, ޤǤϤʤä.
	# Τ, äǤ礦.


      configure 

	Makefile ƥȤä, Config.mk ǤʤȤˤ
	ɤ褦ʤ, ޤ configure ɤƽ.

	ĤȻפä, configure  autoconf Ȥեȥ
	ưΤǤ뤳ȤȽ.
	(餯, ƥץ졼 Config.mk.in  configure.in
	 ѤƤ褦)

	Ȥꤢɸ,

	   󥹥ȡ򺣤ޤǤѤ.
	   dcl ¸Ȥ make  make install ǽˤʤ褦
	     , Ǥ.

	

	      

 CVS Ȥн

    եɲ

	$ cvs add <ե>
	$ cvs commit -m "" <ե>
  
    ǥ쥯ȥɲ

	$ cvs add <ǥ쥯ȥ>

    եκ

	$ rm <ե>
	$ cvs remove <ե>
	$ cvs commit -m "" <ե>

    ե

	$ cvs log <ե> |less

      , 褦Ȥե򸫤Ƥߤ.
      , ǿǤ revision ʥСĤĴ٤.

        $ cvs -Q up -p -r <ǿǤΰ revision ʥС> \
 	                       <ե> > <ե>

      ֺǿ revision ʥСפϾäݤΤΤƤϤޤΤ,
      ꤷƤⲿⵢäƤʤΤ.


    Ĥ

	$ cvs -q tag Release-4_1-2003_10_16
                             
	        ̾ (Ǥ, <С̾>-<>ȤƤ)

      ʤ, , ƥץˤĤΤ,
      ץȤդΤǤϤʤȤ.


    Ĵ٤

      ɤΤ褦ʥĤƤ뤫, ǼƤե
      ɤ줫 log ץǸʬ.
      (դݤˤΥե뤬̵äΤʤ, Υե
       դʤΤ.)
      
	$ cvs log <Ŭʥե>

	  RCS file: /GFD_Dennou_Club/ftp/arch/gtool4/cvsroot/gtool4/src/gtool_history.f90,v
	  Working file: gtool_history.f90
	  head: 1.28
	  branch:
	  locks: strict
	  access list:
	  symbolic names:   <== 줬򼨤
		  Release-1_0-2003_10_09: 1.28   
		  dc_string-first: 1.6 <
		  isovst-last: 1.5   <ο
		  start: 1.1.1.1  < 
		  dcstaff: 1.1.1    <
	  keyword substitution: kv
		      :



    CVS ǥ쥯ȥ餺˼Ф.
      (ȯǥ쥯ȥȤƤǤϤʤ, ץΥѥåȤƼФ)

         ꡼Ѥˡ
	
	   $ cvs -q export -r Release-_1-2003_10_16 gt4f90io

         դѤˡ
	
	   $ cvs -q export -D "2003-11-11" gt4f90io

	    ǿǤΤʤ, פդ
	      export Ԥɤ.
		

    ץȳ

        $ cvs import -m "Initial Dirs" gt4f90io gtool4 initial
                                                  
                        ץ̾     ꡼
                                     ||             (ϤʤΤǤǤ)
                                ǥ쥯ȥ̾  
                                               ٥

      No conflicts created by this import Ȥ褦
      åФ, ݡ.




 Gtool4 κƳȯ˺ݤ

      - (ruby Ϥ˴ؤ)

	- ¤ѿ (gt_graph_class ʤ) ΰϤɤʤ?
	  Ƿ⤵Ϥ򹥤ʤ褦, ¾˴?

	- ruby ¦Ǥ gtool4/netCDF ɤΤ?
	  ޤǤϤޤϤƤʤä
	  ޤꥱƤʤäȻפ,
	  Τ?
	  (Υߡƥ󥰤˽ФƤΤǷ⤵
	   󤬥ᥤǥǥ󥰤ʤ鿴פʤ
	   פɤ)

      - gtool4/netCDF  бե뤬Ϥ.
	- ΤȤ, ʤȤ get_attr, put_attr
	  ˤϤΤ褦ʥå򤹤륳ɤ̵ä.
	- ˤä, εˤʤ°
	  , ̵뤹ʤ, 顼֤ʤꤹ褦
	  .
        - (ĤȤ, ΤȤ gtool4/netCDF Ρֿ侩פ
	   ̵뤵ƤΤ¿.)

	   ̵Ǥ(˭ )
	   줫, gtool_history ȯκݤȤ߹ɬפ.


      - ޥ˥奢˴ؤ
        - roff  html Ʊ˽񤭽Ф rd Ѥͽ
	  - ե󥹥ޥ˥奢˴ؤƤ, ޤʹɤΤ
	    ʤΤ rd  html ǽʬ.
	  - 塼ȥꥢϤޤ̤
	  - ܤϤޤͳ͸ʹ٤

      - ֥롼󷲤򥹥åɷˤǤʤʤ
	- ޤ礦
   

      - gt_mem Ϥɤʻ˻Ȥ?

	 ä뤫ɤȽǤѤ.
	
      - dc_date Ȥ?

	 Ͼäʤͽ


      - sysdep 
        - ʤ dcl ˰¸Τ? (¸򸺤餹?)
	- gtool4 ΤǻĤ?
	  - Τۤɤ?

	   Ϥ ruby ˤͤΤ, dcl ؤΰ¸
	     ̵.

	       - gtgraph  ˺
	       - gt_args  ˺
	       - dc_error  gtool4 Ȥ˻褦˲¤

	  

 gtview κݤΥ

    gtool4 ι¤
      - 饤֥
        - dc  dc  Dennou Club ά.
  	- ʤɤ, gtool4 鳰ɬפ뤫ɤ
  	  Ȥ⤢餷

        - sysdep 
  	- gtool4 ΤǻĤ?
  	   Τۤɤ

        - dc_date

  	- ɽϤ.
  	   ɤʾǤǽʤ褦
  	   50ʬֳ֡פȡ50ʬפȤǤϰۤʤ뤬
  	     äΤ᤹

  	- 1970/1/1  2003/09/03 ޤǤǲ
  	  Ȥ

        - gr ˴ؤ

  	1. ѤȤꤢ̵뤷
  	     netCDF طΥ饤֥ν¤Ϥ.

  	2. ǽä餽ä.
  	     (äѤľɤ)

       - gtool4סGrADSפȤɽˤĤ
  	- gtool4/netCDF, gtool4/GrADSפ

        - gtool4/netCDF  бե뤬Ϥ.
  	- ΤȤ, ʤȤ get_attr, put_attr
  	  ˤϤΤ褦ʥå򤹤륳ɤ̵ä.
  	- ˤä, εˤʤ°
  	  , ̵뤹ʤ, 顼֤ʤꤹ褦
  	  .

        - [] gtgraph_generic  gt_args οѤ?

        
      - ץ

      - ޤ򸫤Ƥäɤ
      - netCDF եݻλ
        (ޥåɽ  ɽ  anɽ)

    gtview 
      - 绨Ĥ

      - ƥ֥롼
        - ץμ
        - եŸ  (netcdf_f77 )
        - ɬפʾμ
        - dclѤƤ
  
    ɤǤƸդ, ޤޥ˥奢˺ܤäƤʤ
      gtview λȤ
    ХȤܤΤ˴ؤ
    ݹμ꤬Ƥ (ϤޤȤƤʤ) 仺˴ؤ
      - gtool_history 򻲾ȤƤ hs  Fortran 77 
        gtool_history 򻲾Ȥ뤿Υ֥롼
        (ɥȤݹѰդƤ
          gtoo4-beta/doc/hspack.htm)
    , ˭Ĥȥǥå󤷤



 CF Convention ˸

    ˭Ĥؤμ.

      - -save äƤɤŪǺ, ɤä̤Ѥ
	Ȥꤷ?
	ʤȤ, λͤǤǤФ󤬾ʤ
	(gtool4/netCDF 󤫤餷Ƥ­̵)
	ˡ褯狼Ǥ.
	

      - gtool4 °Conventions, gt_version
	 gtool_history ˥ϡɥɤ٤ĤǤ?
	(, 桼ꤹΤͥǤ뤫)

      - gtool4/netCDF  бե뤬Ϥ.
	- ΤȤ, ʤȤ get_attr, put_attr
	  ˤϤΤ褦ʥå򤹤륳ɤ̵ä.
	- ˤä, εˤʤ°
	  , ̵뤹ʤ, 顼֤ʤꤹ褦
	  .
        - (ĤȤ, ΤȤ gtool4/netCDF Ρֿ侩פ
	   ̵뤵ƤΤ¿.)
	  

      - gt_mem Ϥɤʻ˻Ȥ?

      - sysdep 
        - ʤ dcl ˰¸Τ? (¸򸺤餹?)
	- gtool4 ΤǻĤ?
	  - Τۤɤ?

      - dc_date Ȥ?
	  

      
 fortran 

    ENTRY

      - subroutine ǻ

    use

      module Ȥ߹ߤѤ.
      ɤ߹ݤ, only ѤɬפʤΤɤ߹ळȤǤ.

      <>
      
	use prm_resol  , only : imax           ! ȤΤ򤢤褦


	
    allocate

      1)
        ưŪ˳Ƥ뤿Ѥ.

	Ƥ, κݤ ? x ? 뤬,
	κݤ
      
	   real(8), allocatable  :: t(:)

	ȤƤȤˤ

	   allocate(t(20))

	Ȥ뤳Ȥ, ץǤդѹ뤳ȤǤ.

	   deallocate(t)

	Ȥ뤳Ȥǲ,  allocate Ȥ뤳Ȥ
	ޤ̤ˤ뤳ȤǤ.

      2)
   
      ֥ݥ󥿡פĥդ餷, 褯狼餺.
      
      
    ⥸塼

      äѿ(㤨, imax = 128 ߤ)
      ؿ (w_Jacobian_w_w(w_a,w_b)= (w_a)  (w_a))
      ֥롼ޤΤ,
      use Ѥƥ⥸塼Ȥ߹ळȤǤѿ, ؿ,
      ֥롼Ѳǽˤʤ.

    contains

      ץץ (subroutine ʤ) 
      ޤݤ˵Ҥ.
      

    private, public

      ϥ⥸塼ǻѤ.
      ⥸塼ѿؿʤɤ, 黲Ȥ뤳Ȥ
      ǰƬ֤Ƥ櫓, ѥå (Ĥޤϥ֥롼)
      ˴ؤƤ, ̤ˤȤäƤɬפǤ,
      ѿؿ˴ؤƤϳ黲Ȥʤ
      ˾ޤ. Τ褦ʾ private Ѥ.
      (ǥեȤ public ʤΤǤ).
      ɤΤ,


        private

	public im, jm, nm                 ! ʻ, ȿ, Ⱦ
	public it, t, y, ip, p, r, ia, a  ! ѴѺ
		      :

      Ĥȸä, ǥեȤ private ˤĤ,
      ɬ׺¤ʤΤ黲Ȥ褦ˤˡǤ.

      
    save

      ⥸塼䥵֥롼ʸˤƻȤ.
      嵭 private  public Ǥ

         黲Բ & () Բ (private)
	 黲 & Ѳǽ (public)

      ȾҲ𤷤,  save 줿ѿ

         黲Բ & Բ
	,
	 ץ (֥롼⥸塼) λƤ
	   Ƥȳƾ֤ݻ.

      Τ褦ѿֶͭѿפȤ.

      
    intent 

      ֥롼⥸塼 (ץפȤޤȤ)
      ʸǻѤ.
      intent(in) ץ೰ͿѿѤ.
      (줿ѿץͤͿ褦Ȥ
       顼)
      intent(out) ץफ鳰֤ѿѤ.
      (ޤ, ѿ˳ͤͿƤ⥨顼
       ʤ, ʶ路ΤǤΤ褦ˤϤʤ)
       

    interface

      ɤʬ餺


    optional, present

      ץΤѿФ, Ϥ줿ɤ
      Ĵ٤뤿ˤ,

         ʸ optional äƤ.
	 present(optional °äѿ)

      Ȥ. ϤƤ present()Ͽ
      ϤƤʤеˤʤ.


    pointer, target, allocate, nullfy

      - pointer    ʸѤ. ǻꤵ줿ѿ
		   ܥå󥯤Τ褦¾ѿꤹΤѤ.
		   (ǤΤ pointer ѿ target ѿǤ.
		    Ҥ allocate ˤäѸߤѿȤ뤳ȤǤ)

      - target	   ʸѤ.
		   ǻꤵ줿ѿ pointer ǻꤹ뤳ȤǤ.

      - allocate   pointer ѿ allocate(ѿ) Ȥ뤳Ȥ
		   ѸߤʼͳѿȤ뤳ȤǤ.

      - nullfy	   ѿ˷礵줿 pointer ѿη
		   ΤѤ.
		   (allocate Ƿ礵줿Τ deallocate ǲ)

      pointer ѿ target ѿ˷礹ˤ

        p => t

      Ȥ.


    logical

      integer, real Τ褦, ѿѤΤ,
      ǻꤵ줿ΤϡѿפȸƤФ.
      Ǽǡ .true.  .false. Τɤ餫Ǥ.
      Υǡ .and., .or. ʤɤȤä黻Ҥˤä
      ɾ.


    character

      ʸѿݤѤ.

        character(LEN=20) :: value

      Ȥ 20 ʸʬʸѿ value Ǥ.
      ʤ, 5ʸܤ8ʸܤФˤ

        value(5:8)

      Ȥ.

      
    parameter

      ʸѤ, ꤹ, ͤϸꤵ,
      ץѹǤʤʤ. , κݤˤ

        integer, parameter :: n = 10

      ȸͤƤɬפ.
      
      ʤߤ

        parameter [::] (n=10)

      Ȼꤹ뤳ȤǤ뤬, 侩Ƥʤ.

    trim(<ʸ>)

      <ʸ> αüζʸ֤.
      
      


 gtview Ĵ٤

    gtview

      : gtview/gtview.f90
		     
      ===ܺپϤ===
       gtool, dcl, dc_trace ɤ߹
   
	   use gtool
	   use dcl, only: DclSetParm
	   use dc_trace, only: setdebug

   	 - gtool
	   gtool4 Υ桼󥿡ե ⥸塼
	   (¾Υ⥸塼ɤ߹ߤ򤪤ʤΤ, Τ̵)

	   ѥ, ../src/  GTOOL.mod ߤ
	   

	 - dcl
	   dcl-f90 Υ⥸塼1 dcl.f90 ɤ߹.
	   dcl.f90 Ϥ¾Υ⥸塼ɤ߹⥸塼

	   - DclSetParm
	     dcl.f90 ɤ߹Ǥ dcl_parm.f90 ˤ
	     ֥롼
	       - DclSetInteger, DclSetReal, DclSetLogical, DclSetChar
	     Ѳǽˤʤ.

	   ѥ, /usr/lib/dcl-5.2-ifc7/include  DCL.mod ߤ

	 - dc_trace
	   gtool4  dc_trace.f90

	   - setdebug ؿ
	     : ǥХå⡼ɤǤꤹ.
		   Ūˤ dc_trace ⥸塼
		   ѿ dbg  0 (Ϥʾ) 
		   ꤹ.
		   (ǥեȤ -1)
		   dbg  save °ĤƤ뤿,
		   ö, setdebug ޥɤǤǤ
		   dbg ¸.

		   ʲư륵֥롼λо줹
		   begensub, endsub, messages ʤɤϤ dbg
		    0 ʾǤ, ºݤֹ dbg
		   ؤνϤԤ.
		   (Ƥ dbg == 0 Ȥʤ뤿, 顼ɸ
		    ؤȽϤ)

		    
		   ʤ, Ϥʤ dbg  0 ,
		   setdebug(3) ʤɤȤ, dbg  3 ꤵ.

		   κݤ, setdebug ˤʤäƤݤ
		   ֹ dbg ˽Ϥ.
		   
	     ư: Ϥʤȳեֹ 0
		   (ʤɸ) إ顼åϤ.

		   Ϥ, fort.<> Υե˥顼񤭽Ф.

	   ѥ, ../src/  DC_TRACE.mod ߤ

      
       ʲΤ褦ʸѿ

	    character(STRING):: argument, optname, optvalue
	    character(STRING):: var_stack = ""
	    character(STRING):: figure_title = ""
	    character(STRING):: slice_spec = ""

	 ʤ, STRING ʸĹɽ, 
	 dc_types ǻꤵƤ (STRING = 500), 
	 gtview  gtool  dc_string  dc_types Ȥ߹ޤƤ.


       ʲΤ褦˹¤ѿ

	    type(GT_OBJECT):: it
	    type(GT_FIGURE):: fig
	    type(GT_FRAME):: frame
	    type(GT_DEVICE):: dev

	 ʤ, type(¤η) Ǥ.
	 ¤ηǤ GT_OBJECT  gtool4  gtgraph_types.f90 
	 ꤵƤ,  gtview  gtool  gtgraph_types 
	 ɤ߹ޤƤ.

	    - GT_FIGURE

	      ޤ̤ΰ٤ѿ.

	        - ѿ  animate (˥᡼ɽ뤫ɤ)
		- ѿ  projection  (ˡط)
		- ¿ѿ  stdlon  ()
			    stdlat  ()
			    rotate  (ž)

			    aspect  (ڥ)
			    fill    ()
			    shift   (?)
			    ceil    (?)

               ʤ, GT_FIGURE Ǥ
	       
	       - GT_AXIS, GT_CONTOURS, GT_VECTORS, GT_LINE Ȥ
	         Ѥ¤ѿ⤤ĤƤΤ,
		 ʲǤ⤹.
		    Ĥޤ, GT_FIGURE  gtgraph_types 
		      , GT_OBJECT, GT_DEVICE, GT_FRAME ʳ
		      Ƥޤ.

	    - GT_AXIS

	      ΰ٤ѿ

	        - ѿ  vertical  (ľɤȤ)
			    drawn     (褵줿ɤȤե饰)

			    logscale  (褹뤫ɤ)
			              [̤?]
			    negative  (դˤ뤫ɤ)

		- ѿ  index     (??)
		- ¿ѿ  lower     (β)
			    upper     (ξ)

		- ʸѿ  saved     (˥֤ɤȤե饰)
			    title     (ޤΥȥ)
			    units     (Ƥ˵Ҥñ)

		- GT_VARIABLE  var    (netCDF ե뤫ǡɤߤ
				       Υǥå)

	    - GT_CONTOURS

	      Τ

	        - ѿ  shade    (ɤ櫓β)
			    contours (β)
			    animate  (˥᡼β)

		- ѿ  icycle   (1ܤˤĤͥ٥ο)
			    tones    (ȡѥ [̤])

		- ¿ѿ  levels   (ͤ)
			    crange   (˴ؤƥ󥸻?)
			    srange   (ɤ˴ؤƥ󥸻?)
			    
			    sint     (ɤδֳֻ)
			    cint     (δֳֻ)
			    base     (?)

			    skiplevels  (?)

		- ʸѿ  map	     (ɤϿ򤹤뤫)

		- GT_VARIABLE  var    (netCDF ե뤫ǡɤߤ
				       Υǥå)

	    - GT_VECTORS

	      ٥ȥΤ

	        - ѿ  animate  (˥᡼β)
		- ѿ  hskip    (٥ȥ񤭽Фֳ (ʿ))
			    vskip    (٥ȥ񤭽Фֳ (ľ))
		- ʸѿ  map	     (ɤϿ򤹤뤫)

		- GT_VARIABLE  var1   (netCDF ե뤫ǡɤߤ
				       Υǥå)
			       var2   (netCDF ե뤫ǡɤߤ
				       Υǥå)

	    - GT_LINE

	      Τ

	        - ѿ  animate  (˥᡼β)
		- ѿ  index    (?)
			    type     (Υ (/, , etc.))
			    mark     (ˤĤޡ)

		- GT_VARIABLE  var    (netCDF ե뤫ǡɤߤ
				       Υǥå)
		
	    - GT_FRAME

	      Ȥ

	        - ѿ  first_figure  (ɽ줿ɤɽե饰)
		- ʸѿ  title	  (ޤΥȥ)
		
		- GT_FIGUREݥ
			    figs(:)       (ºݤ褵޷)
		
            - GT_DEVICE		

	      Τ

	        - ѿ  ws_id    (ơ ID ά.
				      ps ե˻Ȥ
				      wsn=** ץ󤫤Ѥ)
	    

	    - GT_OBJECT

	      嵭 GT_**** Ѥư̤깽¤ѿ򤪤ʤ.
	      Ǹ next Ȥ(ݥ󥿡)ѿ GT_OBJECT Ȥη
	      ¤ѿȤƤ.
	      

	    - GT_VARIABLE

	      GT_AXIS, GT_CONTOURS, GT_VECTORS, GT_LINE ѤƤ
	      ¤.
	      src/gtdata_types.f90 ⥸塼Ƥ,
	      src/gtgraph_types.f90  use Ƥ.

	      ƤΤϰʲΤ

	        - ѿ  mapid   (maptab Υǥå.
		                     ܤ gt_map 򻲾ȤΤ)
	      	      
			    
       ѿ i 

	   integer:: i

	   
       ѿ
	   
	   logical:: it_built = .FALSE.
	   logical:: save_mode = .FALSE.
	   logical:: disp_mode = .TRUE.
	   logical:: double_mode = .FALSE.
	   logical:: err

	   
       ʤ continue

	 gtool4 Ǥ, ѿȥץ
	 ڤ˻ȤƤ褦.

	 (ºݤΤȤ, ưʤ.
	  , goto ʸιԤΥ٥ŽȤ̤
	  뤬, gtool4 Ǥ goto ʸϻȤʤ.)

	 


       ¤ѿ frame, fig, it ν

	   call Open(frame)
	   call Open(fig)
	   call Open(it)

	 Open  F90 Υե륪ץѤ OPEN ǤϤʤ.
	 src/gtgraph_generic Ƥ륵֥롼Ǥ.
	 (src/gtview  src/gtool  src/gtgraph_generic)
	 , open  interface open ̾ʤΤ
	 ºݤˤ

	     GtObjOpen(<GT_OBJECTѿ>)
	       - gtobjctopen.f90 	    
	     GtDevOpen(<GT_DEVICEѿ>)
	       - gtdev.f90 
	     GtFrameOpen(<GT_FRAMEѿ>)
	       - gtframe.f90 
	     GtFigOpen(<GT_FIGUREѿ>)
	       - gtfig.f90 
	    
	 Τɤ줫, μϤ줿ѿˤäƷ,
	 ƤӽФ.

	 Υ֥롼ˤƤ, ι¤Τ
	 ѿ.
	 Ūˤ

	   - ѿ

	     nullify ѤƳ

	   - , ʸ, , ¿ѿ

	     ͤ
	 
	 ܤ doc/proc-open-gtvar.htm


       οʬ롼

	   arg_loop: do, i = 1, GtArgCount()

	 GtArgCount()  (argument) ο볰ؿ.
	  gtview  gtool  gt_args ˤ interface
	 Ƥ, Τ src/gtargcount.f90 ˤ.
	 (gtargcount.f90 ϥѥ뤵, Ǹˤ libgtool4.a
	  Ȥ߹ޤ.)

	 - GtArgCount()

	   - ⥸塼 gt_argtable (src/gt_argtable.f90)
	     ֥롼 BuildArgTable,  argind_count ƤӽФ

	 - subroutine BuildArgTable

	   θĿ, ȤѤ
	   ֥롼.

	    ư

	      - θĿμ
	      
		nargmax = SysdepArgCount()

		- SysdepArgCount()

		  src/sysdep.f90  interface ,
		  Τ

		    src/sysdeparg-common.f90
		    src/sysdeparg-dcl.f90
		    src/sysdeparg-hitachi.f90
		    src/sysdeparg.m4

		  ˤ. (ɤ줬ƤӽФΤ Config.mk 
		  SYSDEPARG ˤ.)

		    SYSDEPARG=dcl        sysdeparg-dcl.f90
		    SYSDEPARG=common     sysdeparg-common.f90
		    SYSDEPARG=hitachi    sysdeparg-hitachi.f90

                 - *-dcl εư

		   dcl  osqarn ֥롼
		   (dcl-5.2/src/math1/oslib/osqarn.f.iargc) ƤӽФ.
		   osqarn ϤȤ iargc ƤӽФƤ.
		   
		    , deb ѥå饤󥹥ȡ뤹
		      libdcl52f** Ǥ osqarn Ͼ 0 
		      ֤ʤ, dcl 򥽡饤󥹥ȡ
		      ΤǤʤ¤ϤȤäƤϤʤ.

		 - *-common εư

		   Ȥ߹ߴؿ iargc Ѥ
		   η̤֤. ѤдĶ˰¸
		   ̵, SysdepArgCount Ѥ뤳ȤǤ.
		   (, Intel Fortran Compiler Ǥϥѥ
		    -Vaxlib Ĥ, iargc  getarg ؿȤ
		    褦ˤʤȤޤʤΤ)

		 - *-hitachi εư

		   Ūˤ common ξƱͤ,
		   Ωѥϰο + 1 ֤,
		   ʬ褦ˤʤäƤ.


	      - դ localtab 礭

	        nargmax Ȥ allocatable °
		localtab  nargmax ʬ˸.

	      - θĿʬ롼פ, Ȥ

		  do, i = 1, nargmax
		    call SysdepArgGet(i, value)
                    if (i == 1 .and. value(1:5) == '-Wl,-') cycle
                    if (value(1:1) == '-' .and. index(value, ':') > 1) cycle
                    narg = narg + 1
                    localtab(narg) = i
                  enddo

		SysdepArgGet  SysdepArgCount Ʊͤ,
		gtview  gtool  gt_args  sysydep ˤ
		interface , Τ
		src/sysdeparg**.f90 ˤ.
		ɤΤȤȤ߹ߥ֥롼 getarg 
		ƤӽФƤ.
		(, sysdeparg-common.f90 ǤϤؤʥ顼
		 ֤ʤ褦˾եƤ)

		2 Ĥ if ʸˤäƤĤ㳰(?)
		褦ˤʤäƤ.

	      -  (ʲΤΤ֤)

		 argind_count []  -- θĿ
		 argind_table(1:argind_count) []
					-- οʬ
					   (Ȥ, (1,2,3,)äƴ)
		
       

              call GtArgGet(i, argument)

	 - GtArgGet(i, argument)

	   i ܤΰ argument ˼Ф֥롼.
	   
	    gtview  gtool  gt_args ˤ interface
	   Ƥ, Τ src/gtargget.f90 ˤ.
	   (gtargget.f90 ϥѥ뤵, Ǹˤ libgtool4.a
	    Ȥ߹ޤ.)
	   gtargget.f90 ˤ GtArgGetC  GtArgGetV Τ,
	   ºݤ˰ФƤΤ GtArgGetC 
	   (֤ GtArgGetV Ϻ?)

	    GtArgGet(i, argument) εư

	      - ⥸塼 gt_argtable (src/gt_argtable.f90)
		֥롼 BuildArgTable,  argind_count, argind_table
		ƤӽФưοƤӽФ.
		(餯ϰγǧΤ)

	      - ⥸塼 sysdep & sysdeparg-common.f90 
		SysdepArgGet Ѥƥ⥸塼ȤФ,
		argument ֤.
		(SysdepArgGet ξܺ٤Ͼ嵭).

		
       ɾ, ʬ, 

	     if (GtOptionForm(argument, optname, optvalue)) then

	 嵭 GtOptionForm ˤä,

	   - Ϥ줿 gtview ΥץȤ
	   - ̾ optname , ͤ optvalue 

	 .

	 - GtOptionForm

	   gt_args ⥸塼˴ޤޤ볰ؿ
	   gtview  gtool  gt_args Ȥɤ߹.

	    GtOptionForm

	      Ū: Ρֽ񼰡פå,
		    ˤϤ򥪥ץ̾ͤˤ櫓.
		    Ĥޤ proj=30 ʤɤȤʤäƤΤ
		    projפȡ30פȤˤ櫓, ѿ.

               ֽ񼰡פΥå

		 - 1ʸܤϥե(-)Ǥ    
		   : -alternate
		 - 1ʸܤϥե(-)Ǥʤ,
		   - (=)ޤޤʤ	     
		   - (=)ޤޤ
		     - ʸ, ѻ(, ),
		       С(_), (:) ǹƤ
						     
		       
       γǼ

	 - ץ wsn ξ

	   ͤ gtdev_wsn_default (gtgraph_com Ƥ,
	   gtool Ȥ߹ޤƤ) .

	   ʤκݤ stoi (dc_string ⥸塼)
	   Ѥ, ʸѿѿѴƤ.

	    gtdev_wsn_default ꤵ줿ͤ,
	   gtview κǸ˸ƤӽФ

	     Open(dev)  (Τ, GTDevOpen)

	   Υ֥롼ǸƤӽФ.
	   
	   
	 - ץ -debug ޤ -D ξ

	   setdebug ֥롼 (dc_trace ⥸塼Ȥ߹ޤƤ)
	   ƤӽФ.
	   (ܺ٤ϸۤ)


	 - ץ -save ξ

	   ѿ save_mode  .TRUE. 
	   (ǥեȤ save_mode  .FALSE. ˤʤäƤ)


	 - ץ -batch ξ

	   ѿ save_mode  .TRUE. 
	   ѿ disp_mode  .FALSE. 
	   (ǥեȤ disp_mode  .TRUE. ˤʤäƤ)
	   

	 - ץ -vect ޤ -Ve ξ

	   ѿ double_mode  .TRUE. 
	   (ǥեȤ .FALSE.)


	 - ץ -smooth  -Gaw ξ

                call SWLSTX('LALT', .TRUE.)
                call SWLSTX('LWAIT', .FALSE.)

	   Ȥ褦, SWLSTX ֥롼ƤӽФ,
	   dcl ؿǤ LALT ()  LWAIT ()
	   򤽤줾 .TRUE. , .FALSE. ꤹ.

	   ,  gtview κǸ Display ݤ,
	   Υ֥롼 Display ǸƤӽФ
	   dcl 饤֥ǸƤӽФ, ̤ȯѿǤ.

	   === SWLSTX  ===
	   SWLSTX  dcl-5.2/src/grph1/swpack/swlget.f 
	   SWLGET ֥롼Ƥ.

	    SWLSTX  dcl ѿѹ뤿
	   ؿǤ.

	       1ܤѿ -- ѿ̾
	       2ܤѿ -- ѿ ()
	       
	   
            
		dcl-f90-unix 
		  dcl-f90-unix/src/f77/sw_interface.f90
           ===================

	   === LALT (dcl ؿ)  ===
	   LALT () κݤ΢̤褹뤫ɤ
	   ꤹ뤿δؿǤ.
	   
	      .TRUE. ʤ΢̤褹.
	      .FALSE.ʤ΢̤褷ʤ.
	      
	   ʤ, ά .FALSE. Ǥ.
	   
            
		dcl-f90-unix /ޥ˥奢
		  dcl-f90-unix/rc1_jp/parm/swpack/lalt.htm
           ===================

	   === LWAIT (dcl ؿ)  ===
	   LWAIT () , ڡΥߥ󥰤ǰߤ뤫
	   ɤꤹ뤿δؿǤ.

	      .TRUE.ʤߤ.
	      .FALSE.ʤߤʤ.
	      
	   ʤ, ά .TRUE. Ǥ.
	   
            
		dcl-f90-unix /ޥ˥奢
		  dcl-f90-unix/rc1_jp/parm/swpack/lwait.htm
           ===================


	   
	 - ץ -nowait (-Gw), -alternate (-Ga) ξ

              else if (optname == '-nowait' .or. optname == '-Gw') then
                  call SWLSTX('LWAIT', .FALSE.)
              else if (optname == '-alternate' .or. optname == '-Ga') then
                  call SWLSTX('LALT', .TRUE.)

           ξ SWLSTX Ѥ.

	   
	 - ץ title=***** ξ

                figure_title = optvalue

		
	 - ץ slice=****** ξ

                slice_spec = optvalue

 
	 - 嵭ΤŤǤʤ   
	   
	   ֥롼 Option ƤӽФ, it,
	   optname, optvalue á.

	    Option  gtgraph_generic  interface ˤ
	   Ƥ, Τ

	     - GtObjOption    ()
	     - GtFigOption    ()
	     - GtContOption   ()
	     - GtVectOption   ()
	     - GtLineOption   ()

	   Ȥä֥롼󷲤Ǥ.
	   ܤΰΥ (¤Τη)ˤäƵư
	   ֥롼󤬰ۤʤ.
	   , GT_OBJECT Υפáޤ뤿,
	   GtObjOption ƤӽФ.

	   GtObjOption  gtobjectopen.f90 Ƥ
	   ֥롼Ǥ. ()

	   ˤ, it%fig, it%cont, it%vect, it%line Τ줾
	   Τͤץ󤫤ɤ߹ޤ.

	   
	 - Option (Τ GtObjOption) η,
	   顼֤ä褿 (Ĥޤ err = .TRUE. ʤ)
	   GtFigOption  optname  optvalue .

	   η̥顼֤ä褿

	     option <ץ̾> ignored

	   Ȥåü֤.
	   

       ץǤʤ (Ĥޤ nc եǤ),
	 it_built Ǥ,
	 (Ĥޤ, ˰ gtool ѿɤ߹ޤƤ)

	 - Bind(fig, it) Ȥ,
	   fig <GT_FIGUREѿ>  it<GT_OBJECTѿ>Bindפ.
	   η, it ˳ǼƤ, fig ѿ
	   Ƥ it  fig ˰ܤ.
	   (it ȤѹǤϤʤ)
	   ˤäɬפʾ fig ˳Ǽ
	   Ȥˤʤ.

	    Bind  gtool ѿ  2 İʾɤ߹ޤ
	   ư褦Ǥ.
	   (-vect ꤵϤä)
	 
	    Bind ˴ؤƤϲ
	 
       ץǤʤ (Ĥޤ nc եǤ),
	 it_built Ǥ.
	 (Ĥޤ, ޤ٤ gtool ѿɤ߹ޤƤʤ.)

	 - double_mode ξ
	   (ĤޤꥪץȤ -vect ꤵ줿)
	   ʤ, -vect ϥ٥ȥɽκݤѤ륪ץǤ.

	   - var_stack ξ (֤ var_stack ϶)

	     var_stack = argument Ȥ,  (gtool ѿ) 
	     var_stack ˳Ǽ.

	   - var_stack Ǥʤ
	     (Ĥޤ, Υ롼פ argument  var_stack
	      Ƥ)

	     - Load(it, var_stack, argument, slice=slice_spec)
	       Ȥ, var_stack (1ܤ gtool ѿ) 
	       argument (2 ܤ gtool ѿ) 
	       slice (ץ slice=**** ) 
	       GTObjLoadC2 Ϥ,  2 Ĥ gtool ѿ
	       ˴ؤ slice ˱Ʋù,
	       it (Τ˸, it%vect) .

	       ʤ, GTObjLoadC2 ϵǽŪˤϴŪ
	       GTObjLoadC Ѥʤ.
	       ܺ٤ GTObjLoacC , 򻲾Ȥߤ.
	       
	     - var_stack = "" Ȥ, var_stack 򥯥ꥢ.
	     
	     - it_built = .TRUE. Ȥ, gtool ѿɤ߹
	       ե饰ΩƤ.
	       
	 - double_mode ξ
	   (ĤޤꥪץȤ -vect ꤵ̵)

	   - Load(it, argument, slice=slice_spec)
	     Ȥ, argument (gtool ѿ) 
	     slice (ץ slice=**** ) 
	     GTObjLoadC () Ϥ,  gtool ѿ
	     ˴ؤ slice ˱Ʋù,
	     it .

	      - դξ  ->  it%line
	      - ޤξ	->  it%cont
	      
	      - ޷ޤޤ gtool ѿä
		  -> 줾 (it%axis, it%line, etc.)
	   

       롼פνλ (ޤǤ, Ƥΰν򽪤)

       it_built == .false. ξ
	 (Ĥޤ, gtool ѿ٤ɤ߹ޤʤä)

	 - argument = ""
	 - Load(it, argument, slice="")
	   Ȥ. Ĥޤꤳη, gtool.ncפȤե뤬
	   Load .
	   (Load  argument ξˤ gtool.nc Ȥ̾
	    netCDF եɤ⤦Ȥ. ܤ
	     Load ξܺپ򸫤)
	 
       Bind(fig, it)  .
	 ˤä, Ǹɤ߹ޤ줿 gtool ѿ it 
	 fig Ϥ.

       figure_title (title=**** ) Ǥʤ
	 - fig%title = figure_title Ȥ.
	   ˤä褵ޤΥȥ뤬ץ title=****
	   ǻꤵ줿Τˤʤ.

        (-batch ץ󤬻ꤵ줿ˤϰʲϹԤʤ)

	 - Open(dev) ˤä, եåǥХ.
	   ֹȤƤ, gtview ꤷ, gtgraph_com ⥸塼
	    gtdev_wsn_default Ф.

	   ʤ, κݤ˼ºݤɤ߹ޤ륵֥롼
	   gtdev.f90  GTDevOpen Ǥ. ()

	 - Display(dev, fig)
	   Ȥ, fig <GT_FIGURE> ǥХ dev <GT_DEVICE> 
	   .

	   ˤä, ºݤ˲̤褵줿Τɽ.

	   ʤ, ºݤ˸ƤӽФ륵֥롼
	   GTFigDisplay (gtfigdisplay.90) Ǥ.
	   ܤϲ򻲾ȤƤ餤.

	   
        (-save, -batch ץ󤬤ĤƤ)

	 Save(fig) Ȥ, 蹽¤ fig  gtgraph.nc ¸.

	 ܺ٤ϺΤȤ

	 
       Close(dev) Ȥ dev Ĥ

      === gtview Ϥޤ===
      

         Option ư

	   ====ܺ٤Ϥ===
	   
	    GtObjOption ư

	      : gtobjectopen.f90

	       ǥХåѥå/

		 beginsub ֥롼Ѥ
		 (beginsub  dc_trace ⥸塼Ȥ߹ޤƤ),
		 ǥХå⡼ɤξ (Ūˤ, dc_trace 
		 ѿ dbg  0 ʾξǤ,
		 -debug ޤ -D ץ󤬥桼ˤäϤ,
		 setdebug ֥롼󤬵ư줿)
		 ˤ, ֥롼Ϥ줿ͤѤ,
		 ֹ dbg ˽Ϥ.

		 
	       ݥ cont, vect, line, fig ʤ餫
		 åȤ˷礷Ƥ
		 (Ĥޤоݤ¸ߤ)

		 - åν

		   message ֥롼
		   (dc_trace ⥸塼Ȥ߹ޤƤ)
		   Ѥ,
		   ǥХå⡼ɤǤʤ, ֹ dbg 
		   forwarding obj to ***
		   ȥåϤ.

		 - Option ֥롼Ѥ

		   줾, GtFigOption, GtContOption, GtVectOption
		   GtLineOption ƤӽФ,
		   obj%***, optname, value .

		   
	       ݥ cont, vect, line, fig ʤ
		 åȤˤ礷Ƥʤ
		   
		 ѿ err 򿿤ˤƽλ

		   
	    GtFigOption ư

	      : ⥸塼 gtfig 
	      : GT_FIGURE ѿ (inout), ץ̾(ʸ, in),
		    (ʸ, in), 顼ѿ()
	      : ޤ(ˡ䥢ڥ)˴ؤ
		    type(GT_FIGURE) :: fig ѿ
		    .
		    (⤷Ϥ줿ץ̾ FIGURE 
		     ط̵ err 򿿤ˤ֤).

      
              - ѿ˼ޤ

		-animate, -next

		   -next  slice_next ƤӽФƥ˥᡼
		     ɽ뤹뤿ѤΤ,
		     ŪѤ.
		     ץꤷƤ̵ʤΤ.

		   - -next ꤵ줿

		     - -animate ץĤ

		       - internal_next_slice (֥롼)
			 ư,

			   fig%contours, fig%line ˴ؤ

			     Option(fig%contours(i), "-next", value, err)
			     Option(fig%line(i), "-next", value, err)

			   Ȥ. ܤ GtContOption, GtLineOption
			   򻲾ȤΤ.

		     - -animate ץդƤʤ
		       - err = .TRUE. Ȥƥ顼֤ƽλ.


	      - ͤʸѿ˼ޤ

		title=<ʸ>
	      
	      - ͤѿ˼ޤ

		proj=<>, (-proj=<>)
		
	      - ͤ¿ѿ˼ޤ

		stdlon=<¿>, (-stdlon=<¿>, pjx=<¿>)
		stdlat=<¿>, (-stdlat=<¿>, pjy=<¿>)
		rotate=<¿>, (-rotate=<¿>, rot=<¿>)
		aspect=<¿>, (-aspect=<¿>, asp=<¿>)
		fill=<¿>,   (-fill=<¿>, fil=<¿>)
		shift=<¿>,  (-shift=<¿>, shf=<¿>)
		ceil=<¿>,   (-ceil=<¿>, cel=<¿>)



	    GtContOption ư

	      : ⥸塼 gtcontlib 
	      : GT_CONTOUR ѿ (inout), ץ̾(ʸ, in),
		    (ʸ, in), 顼ѿ()
	      : 俧ʬ˴ؤ,
		    type(GT_CONTOURS) :: cont ѿ
		    .
		    (⤷Ϥ줿ץ̾ COUNTOUR 
		     ط̵ err 򿿤ˤ֤).

              - ѿ˼ޤ

		-shade, -noshade, -nocont, -animate, -next, -exch

		   -next  slice_next ƤӽФƥ˥᡼
		     ɽ뤹뤿ѤΤ,
		     ŪѤ.
		     ץꤷƤ̵ʤΤ.

		   - -next ꤵ줿

		     - -animate ץĤ

		       - slice_next(cont%var, stat=stat)
			 Ȥ cont%var 
			 (⤷ slice ꤵ줿)
			 1ư.

			 ºݤˤ GtVarSliceNext (gtvarslicenext.f90)
			 ƤФƤΤǤ򻲾ȤΤ.

		       - message('cont next okay=%y stat=%d', &
		                   &  L=(/.not. err/), i=(/stat/))
                         , 顼äɤɽ
			 (ǥХåΤ)

		     - -animate ץդƤʤ
		       - err = .TRUE. Ȥƥ顼֤ƽλ.
				   

	      - ͤʸѿ˼ޤ

		map=***,
		(-map Ȥ, map = coast_world Ȥʤ)
	      
	      - ͤѿ˼ޤ

		icycle=***, lavel_cycle=***, 
		
	      - ͤ¿ѿ˼ޤ

		interfal=***, int=***, cint=***, sint=***

	      - ѿ˼ޤ

		levels=***,***,
		skiplevels=***,***,
		tone=***,***,
		tones=***,***,
		crange=***,***		    
		crg=***,***		    
		srange=***,***	(srg=***,***)
		srg=***,***		    
	      
              ʤ, ͤݤ˰۾ͤӽ,
	      ⤷ʣͤ˼ि,
	      Ĥ֥롼ѤƤ.
	      ñ˲⤹.

	       stoi(CHARA [, INT])

		 : dc_string ⥸塼
		       Τ atoi_scalar, stoi_scalar ؿǤ.
		 : ʸѿ
	         : η򤷤ʸʳΰˤ 0 ֤.
		       η򤷤ʸʤФΤޤ֤.
		       ( "," äƤ, 
		        ʸΤߤ֤)

		        atoi_scalar  2 Ĥΰ,
			  ⤷ 1 ĤΰǤʤʤ
			  ( 0 ֤Ȥ), 2 Ĥ
			  ֤ͤ.

	       stod(CHARA)

		 : dc_string ⥸塼
		       Τ atod_scalar, stod_scalar ؿǤ.
		 : ʸѿ
	         : ¿η򤷤ʸϤ줿餽Τޤ֤
		         ʤ, ¿ˤ֤.
		       ͤηǤʤʤ, 0 ֤.
		       ( "," äƤ, 
		        ʸΤߤ֤)

		        ޤΤȤ, atod_scalar, stod_scalar
			  ˰㤤̵.
			  餯ϳȯäΤǤ.

	       get_array(ARRAY, CHARA)

		 : dc_string ⥸塼
		       interface Ƥ, Τϲ.
		 : , ʸ
		 : CHARA (㤨, -1.0,20,3.0e10)Ȥäʸ
		        "," ʬ, ֤.

		 ܺ: η, ʸη˱,
		       6 ĤΥ֥롼 get_array .

                   ʸη
		     
	  η          ¿(ñ)  ¿()
                                               
           
	     ̤ʸѿ str2ip     str2rp        str2dp
           
	     type(VSTRING) strv2ip    strv2rp       strv2dp
	     ι¤                            
           

	       ¤ VSTRING
		 : dcstring_base ⥸塼
		 񤹤ѿ: <ʸѿ (500ʸ)> x1

               ¤ GT_VARIABLE
		  gtdata_type ⥸塼
		 񤹤ѿ: mapid <ѿ> x1

		 
	   

	    GtVectOption ư

	      : ⥸塼 gtvectlib 
	      : GT_VECTORS ѿ (inout), ץ̾(ʸ, in),
		    (ʸ, in), 顼ѿ()
	      : ٥ȥ(?)˴ؤ
		    type(GT_VECTORS) :: vect ѿ
		    .
		    (⤷Ϥ줿ץ̾ VECTORS 
		     ط̵ err 򿿤ˤ֤).

      
              - ѿ˼ޤ

		-animate, -next, -exch

		   -next  slice_next ƤӽФƥ˥᡼
		     ɽ뤹뤿ѤΤ,
		     ŪѤ.
		     ץꤷƤ̵ʤΤ.

		   - -next ꤵ줿

		     - -animate ץĤ

		       - slice_next(vect%var1, stat=stat),
			 slice_next(vect%var2, stat=stat)
			 
			 Ȥ vect%var1, vect%var2 
			 (⤷ slice ꤵ줿)
			 1ư.

			 ºݤˤ GtVarSliceNext (gtvarslicenext.f90)
			 ƤФƤΤǤ򻲾ȤΤ.

		       - message('vectors next okay=%y stat=%d', &
		                   &  L=(/.not. err/), i=(/stat/))
                         , 顼äɤɽ
			 (ǥХåΤ)

		     - -animate ץդƤʤ
		       - err = .TRUE. Ȥƥ顼֤ƽλ.
				   

	      - ͤʸѿ˼ޤ

		map=***,
		(-map Ȥ, map = coast_world Ȥʤ)
	      
	      - ͤѿ˼ޤ

		hskip=<>, (hs=<>)
		vskip=<>, (vs=<>)
		skip=<>,  (sk=<>)
		
	      - ͤ¿ѿ˼ޤ

		̵



	    GtLineOption ư

	      : ⥸塼 gtlinelib 
	      : GT_LINE ѿ (inout), ץ̾(ʸ, in),
		    (ʸ, in), 顼ѿ()
	      : դ˴ؤ
		    type(GT_LINE) :: line ѿ
		    .
		    (⤷Ϥ줿ץ̾ GT_LINE 
		     ط̵ err 򿿤ˤ֤).

               GtOptionLineIndex

		 GtLineOption λϤ GtOptionLineIndex 
		 ƤӽФ, Υ顼˴ؤޤ,
		 line%index () .

		  GtOptionLineIndex  gt_args ⥸塼
		 Ƥ.

		  GtOptionLineIndex Ǽޤ

		    - ͤѿ˼ޤ

		      color=<>	(, colour=<>)
		      thickness=<>	(, linewidth=<>)
		      index=<>	(, lineindex=<>)

		       index  color  thickness ȤƱ.
		      
		      
               GtLineOption ȤǼ
      
		- ѿ˼ޤ

		  -animate, -next

		   -next  slice_next ƤӽФƥ˥᡼
		     ɽ뤹뤿ѤΤ,
		     ŪѤ.
		     ץꤷƤ̵ʤΤ.

		   - -next ꤵ줿

		     - -animate ץĤ

		       - slice_next(line%var, stat=stat)
			 Ȥ line%var 
			 (⤷ slice ꤵ줿)
			 1ư.

			 ºݤˤ GtVarSliceNext (gtvarslicenext.f90)
			 ƤФƤΤǤ򻲾ȤΤ.

		       - message('line next okay=%y stat=%d', &
		                   &  L=(/.not. err/), i=(/stat/))
                         , 顼äɤɽ
			 (ǥХåΤ)

		     - -animate ץդƤʤ
		       - err = .TRUE. Ȥƥ顼֤ƽλ.
				   

		- ͤʸѿ˼ޤ

		  mark=<ʸ1>
	      
		- ͤѿ˼ޤ

		  type=<>     , 
		
		  mark=<>
		
		- ͤ¿ѿ˼ޤ

		  ̵

		- ѿ˼ޤ

		  range=<¿>,<¿>

	   ==== Option βϤޤ ===	   
		  
	  Bind
	 
	    : gtgraph_generic ⥸塼
	    : ºݤ˸ƤӽФ륵֥롼 7 Ĥ⤢Τ
		  åȤˤʤäƤΤҲ𤹤.
		  
	          <1> <GT_OBJECTѿ>  <GT_OBJECTѿ>
		  <2> <GT_FIGUREѿ>  <GT_OBJECTѿ>
					 <GT_AXISѿ>
					 <GT_CONTOURSѿ>
					 <GT_VECTORSѿ>
					 <GT_LINEѿ>
		  <3> <GT_FRAMEѿ>  <GT_FIGUREѿ>

	    : 1 Ĥΰ 2 Ĥΰ.

         === Bind ξܺپϤ ===
	 
	  GtFigBindObject(fig, obj) ư

	    : gtfigputobject.f90
	    : <GT_FIGURE>ѿ, <GT_OBJECT>ѿ
	    : obj ˳Ǽ, line, vect, cont, fig 
		  fig  line, vect, cont (, ڤ fig Τ)
		   Bind .

		  äƴñ˽񤯤,

		    fig%line => obj%line	  
		    fig%vect => obj%vect
		    fig%cont => obj%cont
		    fig      => obj%fig

                  Τ褦ˤ, obj  fig ξѿƤ
		  obj  fig ˰ܤ.
		  (Ͼ嵭Τ褦ˤݥ󥿤ϤǤϤʤ.
		   ܺ٤ϰʲβ̤Υ֥롼򻲾ȤΤ)

		  ˤäɬפʾƤ obj 
		  fig ˰ܤ뤳Ȥˤʤ. 

		  
	  GtFigBindLine(fig, line) ư

	    : gtlinelib.f90
	    : <GT_FIGURE>ѿ [], <GT_LINE>ѿ[]
	    : line  fig%line Ϥ.
		  (line  ݥ󥿤Ž⤢)

		  
	    - Ūư

	      fig%h_axis => line%h_axis
	      fig%v_axis => line%v_axis

	      fig%title = (line%var , get_attr Ѥ 'long_name'
	                   ǼФʸ)

			  get_attr ˴ؤƤϲ

	      fig%animate = line%animate  ()

	      fig%line = (fig%line  line Τäʥݥ)


	      

	  GtFigBindVect(fig, vect) ư

	    : gtvectlib.f90
	    : <GT_FIGURE>ѿ, <GT_VECTORS>ѿ
	    : vect  fig%vect Ϥ.
		  (vect  ݥ󥿤Ž⤢)

	    - Ūư

	      fig%h_axis => vect%h_axis
	      fig%v_axis => vect%v_axis

	      fig%title = (vect%var1 , get_attr Ѥ 'long_name'
			   ڤ 'units' ǼФʸ)

	      fig%aspect = (vect%var1 , get_attr Ѥ
			    'gt_graph_aspect_ratio' ǼФʸ)
	 
	      fig%animate = vect%animate  ()

	      fig%vect = (fig%vect  vect Τäʥݥ)



	  GtFigBindCont(fig, cont) ư

	    : gtcontlib.f90
	    : <GT_FIGURE>ѿ, <GT_CONTORS>ѿ
	    : cont  fig%cont Ϥ.
		  (cont  ݥ󥿤Ž⤢)

	    - Ūư

	      fig%h_axis => cont%h_axis
	      fig%v_axis => cont%v_axis

	      fig%title = (cont%var , get_attr Ѥ 'long_name'
			   ڤ 'units' ǼФʸ)

	      fig%aspect = (cont%var , get_attr Ѥ
			    'gt_graph_aspect_ratio' ǼФʸ)
	 
	      fig%animate = cont%animate  ()

	      fig%cont = (fig%cont  cont Τäʥݥ)


	     get_attr(var, name, value, default)  (gtdata_generic ¢)

	       : gtdata_generic ⥸塼
	       : 1. var    <GT_VARIABLE> [in] {mapid }
		     2. name   <ʸѿ>    [in] {Ф٤°̾} 
		     3. value  <>	     [out]{°}
		          interface ˤ, ͡ʷѿ
			    Ȥ뤳ȤǤ褦ˤʤäƤ.
			    ܤϥ򻲾ȤΤ
		     4. default	<>       [in]{ǥեȤ}
		          η value Ʊˤʤ

	       : ̤ gtvargetattr.f90, gtvargetattrsc.f90
		     ˳ǼƤ.
	       
	       : doc/proc-attr.htm#Get_Attr
	       

 	     GTVarGetAttr**(var, name, value, default)

	       : gtvargetattr.f90 ޤ gtvargetattrsc.f90
	       : 1. var    <GT_VARIABLE> [in] {mapid }
		     2. name   <ʸѿ>    [in] {Ф٤°̾} 
		     3. value  <>	     [out]{°}
		          ֥롼ʣѰդ뤳Ȥ
			    ͡ʷѿ
			    Ȥ뤳ȤǤ褦ˤʤäƤ.
			    , ưϤɤѤʤ
			    ǤϤäڤ.
		     4. default	<>       [in]{ǥեȤ}
		          η value Ʊˤʤ

	       : եID
	               antab(table(maptab(var%mapid)%vid)%cid)%fileid
		     Υե뤫, ѿID
		       antab(table(maptab(var%mapid)%vid)%cid)%varid
		     ѿ°Τ, °̾ name °
		      value ֤.

		     ʤ, ⲼؤΥ֥롼 netCDF
		     ե뤫ޤȤ֤ͤäʤä
		     default  value ֤.

	             ===ܺ٤Ϥ===
		     - beginsub
		     - var_class(var, class, cid) Ȥ,
		       table(maptab(var%mapid)%vid)%class 
		       table(maptab(var%mapid)%vid)%cid Ф.
		     - class == vtb_class_netcdf ξ
		       get_attr(an_variable(cid), name, value, default, stat)
		       Ȥ. ʤ,  get_attr  an_generic 
		       ޤޤΤѤ. (ܤϲ)
		     - class == vtb_class_memory ξ
		       get_attr(mem_variable(cid), name, value, err)
		       Ȥ. (ܺ٤)
		       ʤξ,  get_attr  an_generic 
		       ޤޤΤѤ. (ܤϲ)
		     - value ˤ get_attr ˤäƵäƤͤ
		       ƤΤ, ƥץ֤.
		     - endsub
		     ==================


	     get_attr(var, name, value, default, stat)  (an_generic ¢)

	       : an_generic ⥸塼
	       : 1. var    <GT_VARIABLE> [in] {mapid }
		     2. name   <ʸѿ>    [in] {Ф٤°̾}
		     3. value  <>	     [out]{°}
		          interface ˤ, ͡ʷѿ
			    Ȥ뤳ȤǤ褦ˤʤäƤ.
			    ܤϥ򻲾ȤΤ
		     4. default	<>       [in] {ǥեȤ}
		          η value Ʊˤʤ
		     5. stat   <ѿ>    [out]{ơ}

	       : ̤ anattrgetchar.f90, anattrgetint.f90,
		     anattrgetdouble.f90, anattrgetreal.f90,
		     anattrgettype.m4 ˳ǼƤ.
	       
	       : doc/proc-attr.htm#Get_Attr
	       


 	     ANAttrGetChar(var, name, value, default, stat)

	       : anattrgetchar.f90
	       : 1. var    <GT_VARIABLE> [in] {mapid }
		     2. name   <ʸѿ>    [in] {Ф٤°̾} 
		     3. value  <ʸѿ>    [out]{°}
		     4. default	<ʸѿ>   [in] {ǥեȤ}
		     5. stat	<ѿ>   [out]{ơ}

		         ¾ˤ͡ʷ value б
			   ANAttrGet**** Ȥ֥롼󤬤뤬,
			    ANAttrGetChar 
			   ƤӽФƤ뤿, ǤϤ
			   Ū֥롼Ǥ
			   ANAttrGetChar 夲.

		          (äƷɤΤȤ, ɤΤ褦ʷ value
			   ͿƤ, ʲΤ褦ưȻפä
			   館ɤ.)

	       : եID
	               antab(table(maptab(var%mapid)%vid)%cid)%fileid
		     Υե뤫, ѿID
		       antab(table(maptab(var%mapid)%vid)%cid)%varid
		     ѿ°Τ, °̾ name °
		      value ֤.

		     (°Ƥ㤨ʸǤʤ, ¿Ǥä
		      ˤ, Υ֥롼Ŭʸѿ
		      Ѵ, ֤)

		     ( netcdf_f77 Υ饤֥ѤƤ뤬,
		      Υ饤֥ˤäƤޤȤͤʤ,
		      default Τޤ޿ƥץ֤뤳Ȥˤʤ)
		     
	             ===ܺ٤Ϥ===
		     - beginsub
		     - stat = vtable_lookup(var, ent) ,
		       antab(table(maptab(var%mapid)%vid)%cid) 
		       ǼեID fileid ѿID varid
		        ent ȤƼ
		     - name  1 ʸܤ+פʤ, ʬ
		       .
		     - netcdf_f77 饤֥ nf_inq_att Ѥ,
		       nf_inq_att(ent%fileid, varid, name, &
		                         &  xtype=xtype, len=attrlen)
		       Ȥ, °̾ name °η xtype ˼.
		       ޤ, °˳ǼƤͤο attrlen 
		       .
		     - ʹߤ xtype (°η) ˤäʬ
		       - xtype == NF_CHAR .and. attrlen <= 64
			 - nf_get_att_text(ent%fileid, varid, &
			                        & name(iname:), buffer)
			   Ȥ buffer °Ȥ.
			 - Ǹ value = buffer(1: attrlen) Ȥ
			   value ͤƿƥץ֤.
			   
		       - xtype == NF_CHAR ( .and. attrlen > 64 )
		         - allocate(cbuf(attrlen)) 
			 - nf_get_att_text(ent%fileid, varid, &
			                     & name(iname:), cbuf(1))
			   Ȥ cbuf(1) °Ȥ
			 - cbuf(1) ʸĹ˹碌ƾù
			   value Ϥ, ƥץ֤.
			   (ܺ٤ϳ䰦)

		       - xtype == NF_DOUBLE .or xtype == NF_FLOAT
			 - allocate(dbuf(attrlen))
			 - nf_get_att_double(ent%fileid, varid, &
			                         & name(iname:), dbuf)
			 - value = toChar(dbuf) ȤƼ¿ѿ
			   ʸѿѴ value ƿƤ֤.
		       - xtype 嵭ʳξ
			 (xtype == NF_BYTE .or. xtype == NF_SHORT .or. &
			                           & xtype == NF_INT)
			 - allocate(ibuf(attrlen))   (ibuf ѿ)
			 - nf_get_att_int(ent%fileid, varid, &
			                        &  name(iname:), ibuf)
			 - value = toChar(ibuf) ȤƼ¿ѿ
			   ʸѿѴ value ƿƤ֤.
			   
		          xtype μ˴ؤƤ
			    http://dennou-t.gfd-dennou.org/arch/netcdf/netcdf-jman/guidef/netCDF_ja75.html
			    򻲾ȤΤ.
			    
		     - [顼] 嵭Ǵؿ nf_get_att 
				    nf_get_att_*** λѻ˥顼
				    ֤äƤ,
				    value = default Ȥ
				    default ͤƥץ֤.
		     ==================

         === Bind ξܺپϤޤ ===

	 
	  Load
	 
	    : gtgraph_generic ⥸塼
	    : 
		  a. 1. obj     <GT_OBJECT> [out] {֥}
		     2. varname <ʸѿ>  [in]  {gtool ѿ}
		     3. slice	<ʸѿ>  [in]  {ϰ¥ץ}

		  b. 1. obj     <GT_OBJECT> [out] {֥}
		     2. vnam1	<ʸѿ>  [in]  {gtool ѿ}
		     3. vnam2	<ʸѿ>  [in]  {gtool ѿ}
		     4. slice	<ʸѿ>  [in]  {ϰ¥ץ}

		  c. 1. obj     <GT_OBJECT>  [out] {֥}
		     2. var1	<GT_VARIABLE>[in]  {mapid }
		     3. var2	<GT_VARIABLE>[in]  {mapid }

		  d. 1. obj     <GT_OBJECT>  [out] {֥}
		     2. var	<GT_VARIABLE>[in]  {mapid }

		  e. 1. frame   <GT_FRAME>   [out] {ե졼ѹ¤}
		     2. var	<GT_VARIABLE>[in]  {mapid }

		  f. 1. fig	<GT_FIGURE>  [out] {ѹ¤}
		     2. var	<GT_VARIABLE>[in]  {mapid }

		  g. 1. cont	<GT_CONTOURS>[out] {ѹ¤}
		     2. var	<GT_VARIABLE>[in]  {mapid }

		  h. 1. vect	<GT_VECTORS> [out] {٥ȥѹ¤}
		     2. var	<GT_VARIABLE>[in]  {mapid }

		  i. 1. line	<GT_LINE>    [out] {ѹ¤}
		     2. var	<GT_VARIABLE>[in]  {mapid }

		  j. 1. axis	<GT_AXIS>    [out] {ɸѹ¤}
		     2. varname	<ʸѿ>   [in]  {gtool ѿ}

		  k. 1. axis	<GT_AXIS>    [out] {ɸѹ¤}
		     2. var	<GT_VARIABLE>[in]  {mapid }

	    : Ϥ줿 gtool ѿ (ޤϴ netCDF ե뤫
		  ǡɤ߹˼Ƥ
		  maptab Υǥå var <GT_VARIABLEѿ>)
		  ˴ؤ obj  (frame, fig, cont, vect,
		  line, axis) .

		  ʤ, Ϥ gtool ѿξˤ slice Ȥ
		  ʸѿȤϤ뤬, 
		  ǡϰϤ¤륪ץǤ.

		  (ܤϰʲ򻲾Ȥߤ)

		    		   
         === Load ξܺپϤ ===

	  GtObjLoadC(obj, varname, slice_spec) ư

	    : gtobjectopen.f90
	    : 1. obj        <GT_OBJECT> [out] 
	                 {¾ι¤ GT_**** 礹륪֥}
		  2. varname    <ʸѿ>  [in]
		         {gtool ѿ.
			  㤨, test.nc@u,t=10:20,lat=100:230}
		  3. slice_spec <ʸѿ>  [in]
		         {㤨, ץ slice=lon=0 ǻꤵ줿
			  ˤ, lon=0פΤ褦ʸ
			  ˤ.}

	    : 1. gtoolѿ varname 
		       - ե̾
		       - ѿ̾
		       - ϰ¾
		     򻲹ͤˤ,
		       a. netCDF ե򳫤, ΥեID,
			  ѿID ξΥ⥸塼
			  save °ѿ()˳Ǽ.
			  (ؤ netcdf_f77 饤֥Ѥ)
		       b. slice Ǥѿ()ξ
			  ù.
			  
		  2. ɬפʾ obj ˳Ǽ֤.
		     (ʤ, 嵭ǳǼƤ obj 
		      ǤϤʤ, obj Ϥξ
		      ФŪݻƤ.
		      () obj%cont%var )
		     
		  
		  ===ܺ٤Ϥ===
		  - beginsub
		  - Open(var, varname) (Τ GtVarOpen) ˤ
		    gtoolѿǤ varname Ŭʬ򤷤
		    оݤȤʤ netCDF ե򳫤,
		    ξ maptab (gt_map ⥸塼),
		    table (gt_vartable ⥸塼),
		    antab (an_vartable ⥸塼)
		    ˤ櫓ƳǼ.
		    , ǼФ
		    maptab Υǥå mapid 
		    var%mapid ȤƼ
		  - slice_spec ʸƤˤ,
		    slice(var, slice_spec, err) Ȥ, ѿ var
		     slice_spec ˹碌¤.
		    (ܺ٤ϲ Slice )
		  - Load(obj, var) Ȥ,
		    ºݤˤ GTObjLoadVar () ƤӽФ,
		    ѿ var Τξ
		    obj ˳Ǽ

		     () ѿ var 2ʾ˰¸.
		     
			  obj%cont Τξ
			  (줿) Ǽ.
			  ɸ˴ؤ
			  obj%cont%h_axis, obj%cont%v_axis 
			  ꤵơ׳Ǽ
			  
		     () ѿ var 1˰¸.
		     
			  obj%line Τξ
			  (줿) Ǽ.
			  ɸ˴ؤ
			  obj%cont%h_axis, obj%cont%v_axis 
			  ꤵơ׳Ǽ
			  
		     () ѿ var ǡΤΤǤϤʤ,
			  ȤΤξǼ.
			  
			  줾, ˹碌,
			  obj%frame, obj%fig, obj%cont, obj%vect,
			  obj%line 蹽¤ξ
			  .
			  
		  - endsub
		  ==================
		  
	     Open

	       : gtdata_generic ⥸塼
	       : I.  1. var    <GT_VARIABLE> [in] {mapid }
			 2. url    <ʸѿ>    [in]
		            {gtool ѿ.
			      㤨, test.nc@u,t=10:20,lat=100:230}
			 3. writable <ѿ>  [in] {񤭹ߤβ}
			 4. err	    <ѿ>   [out]{顼ơ}

	             II. 1. var        <GT_VARIABLE> [out] {mapid }
			 2. source_var <GT_VARIABLE> [in] {mapid }
			 3. dimord     <ѿ>    [in] {ֹ}
			 4. count_compact <ѿ> [in] {???}
			 3. err	       <ѿ>    [out]{ơ}
			 
	       : I ξϰʲ, GtVarOpen 򻲾ȤΤ.
		     II ξ GTVarOpenByDimOrd ƤӽФ.
		     ˴ؤƤ doc/proc-open-gtvar.htm ȤΤ.

	       : doc/proc-open-gtvar.htm 

	       
             GtVarOpen(var, url, writable, err)

	       : gtvaropen.f90
	       : 1. var    <GT_VARIABLE> [inout] {mapid }
		     2. url    <ʸѿ>    [in]
		         {gtool ѿ.
			  㤨, test.nc@u,t=10:20,lat=100:230}
		     3. writable <ѿ>  [in] {񤭹ߤβ}
		     4. err	 <ѿ>  [out]{顼ơ}
		     
	       : 1. netcdf_f77 饤֥ˤä,
		        url Ρ@פΡ֥ե̾פˤ
			netCDF ե򳫤, Ρ֥եIDפ.
			ˡ@פΤΡѿפ
			ѿIDפ.
			
		     2. 嵭Ǽ & μվ򲼵˳Ǽ
		     
		          (an_vartable ⥸塼)
			  - antab(:) <AN_VARIABLE>
			    ( netCDFեȤƤγ ID Ǽ)
			    - fileid [netCDF (ե) ID]
			    - varid  [netCDF ѿID]
			    - dimid  [netCDF ID]
			    - dimids(:) [ѿ¸ƼμID]
			    - attrid   [°ID (gtool Ǿ˺ä)]
			    
			  (gt_vartable ⥸塼)
			  - table(:) <VAR_TABLE_ENTRY>
			    - class  [ǡμ̤򼨤]
			    - cid    [antab ѥǥå]
			    - refcount [Ȳѿ]

			  (gt_map ⥸塼)
			  - maptab(:) <MAP_TABLE_ENTRY>
			    - vid    [table ѥǥå]
			    - ndims  [ѿ¸뼡ο]
			    - map(:) <GT_DIMMAP>
			      - dimno  [ֹ]
			      - url    [ѿ url]
			      - offset [start ͤФ륪եå]
			      - step   [Τɤ˿ʤΤɽ]
			      - allcount [Ĺ]
			      - start  [ǡ start ]
			      - count  [ǡ count ]
			      - stride [ǡ֤ΰư]
			  
		     3. ѿ⤵˸Ρ,t=1:10,lon=20:50
			˱, 嵭 maptab(:)%map(:) 
			ѿꤹ.

		     4. maptab ѤΥǥåǤ mapid 
			var%mapid ȤƼ, ƥץ֤.

	             5. ʤ, ǥХå⡼ɻˤϾ嵭ѿ
			ΰɸϤǤФ.
		     
			    

		     ===ܺ٤Ϥ===
		     - beginsub
		     - url_chop_iorange () 
		       url (gtoolѿ URL Ϳ) 
		       ϰϻ (lat=-10:10 ʤ) ʬʬΥ,
		       ϰϻʳ filevar ,
		       ϰϻʬ iorange ֤.
		     - StrHead () Ѥ,
		       filevar λϤ᤬memory:פξϥ顼
		       ֤(?).
		        ΤʤΤ
		     - ANVarOpen () Ѥ, filevar 
		       @פΡ֥ե̾פ netCDF ե
		       򳫤.
		       줿եID, 
		       @פΡѿ̾פѿID,
		       ѿ¸뼡μID 
		       an_variable ⥸塼 antab ɽ
		       (save ° antab(:)) ˳Ǽ,
		       Ǽΰ֤¤ an <AN_VARIABLE>
		        id (ѿ) ֤Ƥ餦.
		     - inquire Ѥ, antab(an%id)%varid ѿ
		       ¸뼡ο ndims ˼Ф.
		     - allocate(dimlen(max(1, ndims))) ,
		        dimlen 礭 ndims ˤ.
		     - inquire Ѥ, antab(an%id)%varid ѿ
		       ¸뤽줾μ
		       Ĺ dimlen ˳Ǽ.
		     - map_create () Ѥ,
		       antabɽǥå an%id,  ndims,
		       Ĺ dimlen  var .
		       
		       ̤Ȥ, an%id  vtb_class_netcdf 
		       gt_variable ⥸塼μɽ table(:) ˳Ǽ,
		       ndims, dimlen  gt_map ⥸塼
		       ޥåɽ maptab(:) ˳Ǽ.
		       var%mapid ˤ maptab(:) βܤ˾󤬳Ǽ
		       줿֤ä.
		       (table(:) ΤĤ˾󤬳Ǽ줿Ȥ
		         maptab(var%mapid)%vid ˳Ǽ)
			
		        κݤΰ, vtb_class_netcdf 
			  use gt_map  use gt_vartable Ȥ
			  gt_vartable ˤƤΤ,
			  ʲΤ褦Ƥ.
			  <==========================================>
			    VTB_CLASS_NETCDF = 2
			  <==========================================>
			  
		     - dimlen  deallocate
		     - limit(var, trim(iorange)) () ˤä,
		       ѿ var ΰ¸뼡Υǡ󤬳Ǽ줿
		       maptab(var%mapid)%map(:) <gt_dimmap> 
		        iorange ˱ƺꤹ.
		     - gtvar_dump(var) () ˤäƥǥХå⡼
		       ˤ var ξɸϤǤФ.
		     - endsub
		     ===================


	     url_split(fullname, file, var, attr, iorange)

	       : dc_url ⥸塼
		     dc_url ˤ interface Ƥ,
		     ΤƱ dc_url 

			url_split_c
			url_split_v

		     Ǥ.

	       - url_split_c(fullname, file, var, attr, iorange)

		 : 1. fullname <ʸѿ> [in]
		       2. file	   <ʸѿ> [out]
		       3. var	   <ʸѿ> [out]
		       4. attr	   <ʸѿ> [out]
		       5. iorange  <ʸѿ> [out]

		 : fullname Ϳ줿 gtoolѿʬ򤷤
		       file  iorange Ϥ.

		       㤨,

		         sample.nc@zeta,lat=-10:10

		       ξ

		         file    = sample.nc
			 var     = zeta
			 attr    = <>
			 iorange = lat=-10:10

		       ֤. ޤ, ⤷

		         sample.nc@psi:units

		       ʤ

		         file    = sample.nc
			 var     = psi
			 attr    = units
			 iorange = <>

	               ֤.
	       

	       - url_split_v(fullname, file, var, attr, iorange)

		 : 1. fullname <VSTRINGѿ> [in]
		       2. file	   <VSTRINGѿ> [out]
		       3. var	   <VSTRINGѿ> [out]
		       4. attr	   <VSTRINGѿ> [out]
		       5. iorange  <VSTRINGѿ> [out]

		 : 谷ѿηʸ VSTRING Ѥä
		       ưΤ url_split_c Ʊ.


	     url_merge_cccc(file, var, attr, iorange) [ؿ]

	         : dc_url ⥸塼
		 : 1. file	   <ʸѿ> [in]
		       2. var	   <ʸѿ> [in]
		       3. attr	   <ʸѿ> [in]
		       4. iorange  <ʸѿ> [in]

		 : 4 ĤѿѿȤ߹碌.
		       (Ƥ,  1 ĤϤʤ,
		        gtoolѿΰΤ˻Ȥ褦)
			

	     url_chop_iorange(fullname, iorange, remainder) [ؿ]

	         : dc_url ⥸塼
		 : 1. fullname <ʸѿ> [in]
		       2. iorange  <ʸѿ> [out]
		       3. remainder<ʸѿ> [out]

		 : fullname (gtoolѿ URL Ϳ) 
		       ϰϻ (lat=-10:10 ʤ) ʬ
		       ֤.

		       
	     StrHead(filevar, "memory:")

	       : dc_string ⥸塼
		     interface Ƥ,
		     ΤƱ⥸塼

			StrHead_SC
			StrHead_CC

		     Ǥ.

	       : 1. filevar <ʸѿ> or <VSTRINGѿ>
		     2. ʸѿ
		     
	       : 1ܤΰʸΤ, Ϥ
		     2ܤʸʸοʬ
		     2ܤʸȰפп
		     פʤе֤.

		     (1ܤΰ2ܤΰʸο
		      ʤ⵶)


             ANVarOpen(var, url, writable, err)

	       : anvaropen.f90
	       : <AN_VARIABLE>ѿ, ʸѿ, ѿ, ѿ

		      AN_VARIABLE
			- ѿ id Τߤ.
			   <======================>
			   type AN_VARIABLE
			        integer:: id
			   end type
			   <======================>

		      AN_VARIABLE_SEARCH
			- ѿ fileid, varid, dimid .
			   <======================>
			    type AN_VARIABLE_SEARCH
				 integer:: fileid
				 integer:: varid
				 integer:: dimid
			    end type
			   <======================>

			   
	       : 1. url Ρ@פʬƱե̾
			 netCDF ե netcdf_f77 饤֥
			ˤ곫.
		     2. ʲγID an_variable ⥸塼
			antabɽ (<AN_VARIABLE_ENTRY>  antab(:))
			 1 Ĥ˳Ǽ, Ĥ
			Ǽ줿Ȥ var%id (AN_VARIABLE)
			֤.
			 AN_VARIABLE_ENTRY ˴ؤƤϲ.
			
			-----------------------+----------------------
			netCDF ե      | antab(var%id)%fileid
			եID             |
			-----------------------+----------------------
			url Ρ@פ    |
			ʬƱ̾ | antab(var%id)%varid
			ѿѿID	       |
			-----------------------+----------------------	
			嵭ѿμID     |
			 ѿǤʤ| antab(var%id)%dimid
			   0 	       |
			-----------------------+----------------------
			ѿ¸뼡   |
			ID		       |
			 ѿȤ    | antab(var%id)%dimids(:)
			   ϤμID  | 
			   Ǽ	       |
			-----------------------+----------------------	
	       

	             ==== ܺ٤ϰʲ ====
		     
	             - beginsub ƤӽФ
		     - UrlSplit  url  filename  varname ʬ
		     - (⤷ filename ʤ, gtool.nc )
		     - ANFileOpen (ܺ٤ϰʲ)ƤӽФ,
		       filename Ȥ̾netCDF ե򳫤.
		       ʤ, e%fileid ˤϳե
		       ե뼱̻Ҥ֤ä.
		       + ե뤬ʤäˤ go to ʸ
			 ֥롼κǸޤǹԤäƽλ.
		     - netcdf_f77  nf_inq_varid Ѥ,
		       ե(ID) e%fileid  varname Ȥ̾
		       ѿѿID e%varid ֤Ƥ餦.
		       + varname Ƥʤʤ,
			 ǤϤʤ1ֻϤѿФ.
			 -- ꤫--
			 1. nf_inq_nvars ǥեѿοФ
			    ο֤ʲΥ롼פ.
			    1-1. nf_inq_varname  ե뤫
				 n  (n=롼פβ) ѿ̾
				 Ф.
			    1-2. ѿ̾򼡸̾Ȳꤷ,
				 nf_inq_dimid ǥե뤫餽μ
				 ID ФƤߤ.
			    1-3. ID Ф (Ĥޤ
				 ѿä)
				 cycle ǼΥ롼פ
				 Ǥʤ (ĤޤϤѿ
				 Ǥʤ) e%varid ˤѿID
				 ƥ롼פȴ.
			 -------------
		     - nf_inq_dimid ѿ varname μID Ф.
		       ѿξϼID  e%dimid ˽񤭹ޤ
		       뤬, ѿǤʤ e%dimid = 0 Ȥ.
		     - vtable_add ǹ¤ e (an_variable_search) 
		       fileid, varid, dimid  an_variable ⥸塼
		       antabɽ (<AN_VARIABLE_ENTRY>  antab(:))
		        1 Ĥ˳Ǽ, Ĥ
		       Ǽ줿Ȥ var%id (AN_VARIABLE)
		       ֤.
		         ( vtable_add  an_vartable ⥸塼
			     Ȥ߹ޤƤ. ܺ٤ϲ.)
		       ʤߤ, ǼȹԤ줿ɤȤ
		       ơ stat Ϥ.
		     - endsub
		     - StoreError
			   

		     
             ANFileOpen(fileid, filename, writable,
				  overwrite, stat, err)

	       : an_file ⥸塼
		     (ˤ netcdf_f77 ⥸塼δؿ
		      , NetCDF եɤ߽񤭤
		      ʤ֥롼󤬴ޤޤƤ.)
		     
	       : 1. fileid   <ѿ> [out]  {ե뼱̻}
		     2. filename <ʸѿ> [in]   {ե̾}
		     3. writable <ѿ> [in]   {񤭹߲Ĥǳ}
		     4. overwrite <ʸѿ>[in]   {񤭤뤫}
		     5. stat	   <ѿ> [out]  {ơ}
		     6. err	   <ѿ> [out]  {顼ɤ}

		      gtview  Load (GtObjLoadC)  Open (AnVarOpen)
			 AnFileOpen ȸƤӽФݤˤ

			    Open(var, varname) Ȥʤ뤿,
			    AnFileOpen ݤˤ [in] 
			    ͿΤ filename Τ.
			    (writable  overwrite ˤԤʤ)
		     
	       : filename Ϥ줿ե̾
		     netCDF ե򳫤, fileid ˤΥե뼱̻
		     ֤.
		     

	             ==== ܺ٤ϰʲ ====

		     - writable, overwrite ץ

		       + writable = .TRUE. ξ
			 ѿ writable_riquired  .TRUE. 
		       + overwrite = .TRUE. ξ
			 ѿ overwrite_required 
			 writable_riquired  .TRUE. 
		       
		     - beginsub

		     - (: 1 ĤΥץ 2 ٰʾ AnFileOpen     )
		       (     ƤӽФ, 2 İʾΥե뤬ɤ߹ޤ. )

		       1. ɤ߹եƱ̾Υե뤬
			  ɤ߹ޤ,
		       2. Υե뤬, ⤷Ϻ, 񤭹߲ǽ
			  ɤ߹ޤ,
		       ˤϥեɤ߹ߤ򤻤˽λ. (return )
		       (ܤϸҤܺپ򻲾)

		     - ݥ memop  save ° memo_head
		       (ݥ) ˳, memo_head κǸ
		       ꥹȤ˺󳫤եξ񤭹.

		     - URLʬݡ

		       URL (פ file:///home/morikawa/... 
		       file:f90/gtool4/... Τ褦ʻ)
		       Ρfile:///פfile:פڤ.

		     - nf_open

		       netcdf_f77  nf_open ؿѤ
		       Ϳ줿 filename Ȥ̾ΤĤ
		       netCDF ե򳫤.

		         nf_open Ϥ  : ե̾, ɤ߽񤭥⡼
			    	 ֤: ե뼱̻

		       + nf_open ˼Ԥ
			 (Ȥե뤬̵ʤɤޤ)

			 netcdf_f77  nf_create Ѥ
			 netCDF ե.

		     - ԤݤΥ

		       nf_open, nf_create ˼ԤƤޤä
		       ,  memo_head ˳Ǽǡ
		       äƤ.

		     - 顼

		       顼ˤ err ֤ʤ,
		       StoreError ֥롼Ƥ֤ʤꤷ
		       .

		     - endsub

		       
		        ɤ߹ޤ줿եΥǡˤĤ 

			  ֥롼 AnFileOpen Ǥ, ɤ߹
			  ƤΥե (1)ե̾, (2)ե뼱̻,
			  (3)񤭹߲ǽ, (4)ɤ߹ޤ줿, 
			  ʲΥݥ󥿤ˡ֥ꥹȹ¤פ¸Ƥ.

			     type(FILE_MEMO_ENTRY), save, pointer:: memo_head

			  ʤߤ FILE_MEMO_ENTRY ηϰʲ̤.
			  (an_file ⥸塼)

			     type FILE_MEMO_ENTRY
				 integer:: id
				 integer:: count
				 logical:: writable
				 character(len = string):: filename
				 type(FILE_MEMO_ENTRY), pointer:: next
			     end type

			  ޤ, ˥եɤ߹Ȥ
			  뤫ɤϤ.
			  (ɤ߹ʳ memo_used = .TRUE. )

				logical, save:: memo_used = .FALSE.
			     
		                     

		       
		     - ݥ memo_head, memop, prev ΰ

		       + Ϥƥե뤬ɤ߹ޤ줿
			 (memo_used == .FALSE.)

			  prev  nullify 
			  allocate(memo_head) Ȥ memo_head 
			    ̵̾ΰӤĤ.
			    (ǻϤ memo_head ϼΤ).
			  memop => memo_head 
			    ( , memop  save ʤ.)
			  memo_used = .TRUE. 

			 
		       + ˥ե뤬ɤ߹ޤ줿
			 (memo_used == .TRUE.)
		       
			  memop => memo_head 
			    ( memo_head  allocate(memo_head) 줿
			     Ϥ)
			  , nullify(prev)

		 <롼׳>
			  memop%filename  filename ʤɤĴ٤
			    nf_open 뤫ɤ. (嵭)
			  prev => memop   (̣)
			  memop => memop%next
			    ˤäơ֥ꥹȹ¤פǸȤ
			    ּΥꥹ(?)פذư.
			    ( ˤäƴŪ prev => memop%next
			        Ȥʤ.)
			  memop (Ĥä memop%next ˡְưפ)
			     associated(memop) Ȥƥå.
			    - ξ
		  Ĥޤ, ΥꥹȤ¸ߤ,
			      ⤦1٥롼פ.
			    - ξ
			      memop ̵ (Ĥޤ, ꥹȤκǸޤ
			      Ƥޤä) ˤϥ롼פȴ.
			  <롼׽λ>

			  allocate(memop) Ȥ, memop ̵¤̵̾ΰ
			    ˳դ.
			    (嵭Υ롼פȴФ,  memop
			     ˤϳդ褬ʤϤʤΤ)
			     
			      allocate 줿 memop ˤ
			       ܥ֥롼Ǥ AnFileOpen Ϥ줿
			       filename  writable_required ¾,
			       nf_open  nf_create ǵä褿
			       ե뼱̻Ҥ.
			       Ūˤ, memo_head κǸΥꥹȤ
			       ξƤ뤳ȤȤʤ.

			  prev%next => memop   (̣)
			 
			 
		                     

		

		      NF_NOERR, NF_WRITE, NF_NOWRITE, NF_CLOBBER,
			NF_CLOBBER, NF_EBADDIM 
			netcdf_f77 ѿ,
			<============================>
			   integer nf_noerr
			   parameter (nf_noerr = 0)
			<============================>
			   integer nf_write
			   parameter (nf_write = 1)
			<============================>
			   integer nf_nowrite
			   parameter (nf_nowrite = 0)
			<============================>
			   integer nf_noclobber
			   parameter (nf_noclobber = 4)
			       clobber ϡ־õפȤ̣
			<============================>
			   integer nf_clobber
			   parameter (nf_clobber = 0)
			<============================>
			   integer nf_ebaddim
			   parameter (nf_ebaddim = -46)
			<============================>
			Ǥ. (netcdf-3.5.0 )


             vtable_add(var, entry) result(result)

	       : an_vartable ⥸塼
	       : 1. var   <an_variable> [in]  {antab ɽΥǥå}
		     2. entry <an_variable_searchѿ> [in]
		           {antab(:) ˳ǼΥȥ}
		     3. result <ѿ>   [out] {񤭹߲Ĥǳ}

	       : (ޤϸҤƤطʡפ򸫤).
		     Ϥ줿¤ entry ˳Ǽ
			+ fileid (netCDF ե ID)
			+ varid  (netCDF ѿ ID)
			+ dimid  (netCDF  ID)
		      antab(:) ζƤ˳Ǽ.
		     Ʊ֤ˤ dimids(:) ˤѿ
		     (varid ؤѿΤ) ¸
		     μIDǼ.
		      ѿǤä
			ent%dimids(1) = dimid ȳǼ.
		     
		     Ǽ줿ΰ֤ var%id ֤.

		     ʤߤ result ˤ, ץΥơ
		     ( antab ˾󤬳Ǽ줿ɤ)
		     ֤.

	       ط: an_variable ⥸塼ˤ

	             type(an_variable_entry), save, &
		            &  target, allocatable:: antab(:)

		     󤬤,  antab ɽȸƤ.
		     Ǽϲ򻲾. 

		        <============================================>
			! --- an_vartable ⥸塼 antab ɽ ---
			type AN_VARIABLE_ENTRY
			     !
			     ! ID 
			     !   ѿ (an_variable ) 
			     !   (/fileid, varid, dimid/) Ʊꤵ롣
			     !   ѿ fileid ɬǤ롣
			     !  
			     integer:: fileid
			     integer:: varid
			     integer:: dimid
			     !
			     ! ɽ
			     !   ѿˤĤƤϼ󼡸ѿ
			     !   ˤĤƤϼʬˤȤäƤμ dimid
			     !   ΰ¸롣
			     integer, pointer:: dimids(:)
			     !
			     ! °ѥƥ졼
			     !
			     integer:: attrid
			end type
		        <============================================>
		     
	       ưξܺ: 
		     ===ܺ٤ϰʲ===			 
		     - save ° antab(:) ޤ allocate Ƥʤ
		       ֤ʤ, allocate , antab(:) 
		       fileid, varid, dimid, attrid  0 
		        (Ĥޤ) .
		     -  antab(:) ¾ξäƤ,
		       Ϥ줿ƤȤӤ,
		       äƤϤֹ var%id 
		       ֤ return
		     - ϤФֹ var%id Ϥ.
		       + ̵ɽĥ
			 - Ūˤ antab(:)%fileid  0 ʤ
			   Ϥȹͤ.
		     - Ϥ̵ܤ˳ĥ & 
		       ĥֻϤֹ var%id Ϥ.
		     - var%id ܤ entry Ǽ.
		     - internal_build_dimids(antab(var%id), result)
		       Ȥ, antab(var%id)%dimids(:) 
		       ѿ antab(var%id)%varid ¸
		       μIDǼ.
		       (ѿǤˤ dimids(1) = dimid )
		     - antab ˾ǼΤ˼Ԥ,
		       var%id ˤ -1 ֤.
		     ================

		     
             internal_build_dimids(ent, stat)

	       : an_vartable ⥸塼
	       : 1. ent  <an_variable_entryѿ> [inout]
		                 {antab(:) ˳ǼΥȥ}
		     2. stat <ѿ>   [out] {ơ}
	       : ent ˳Ǽ fileid, varid, dimid 
		     netcdf_f77 δؿѤ,
		     varid ѿ¸뼡μID 
		     ent%dimids(:) ˳Ǽ.
		      ѿǤä
			ent%dimids(1) = dimid ȳǼ.

		     ===ܺ٤ϰʲ===
		     - ent%varid  1 ʾǤ
		       + nf_inq_varndims Ѥ, varid ѿ¸
			  ndims ˼
			  varid ѿä ndims = 1 
			    ʤϤǤ.
		       + ent%dimid  0 Ǥʤ (Ĥޤѿ)
			 ndims  1 Ǥʤ, Ĥޤ
			 ʤ׼ľ,
			 ֥顼פ.
			       顼˴ؤƤϲ
		       + ndims == 0 ξ dimids  nullify 
			 return
		       + allocate(ent%dimids(ndims)) 
		       + nf_inq_vardimid(ent%fileid, ent%varid, ent%dimids)
			 ѿ varid ¸뼡ID  dimids 
			 Ǽ.
		       + dimid  0 Ǥʤ (Ĥޤѿ)
			 dimids(1) /= dimid ǤʤФ,
			 ֥顼פ.
			 
		     - ent%varid  0 Ǥ
		       + dimids(1) /= dimid  return
		       
		     - ֥顼	
			 varid = 0, dimids(1) = dimid Ȥ return
		     ================
		     

		     
		     
	     map_create(var, class, cid, ndims, allcount)

	       : gt_map ⥸塼
		     
	       : 1. var  <GT_VARIABLEѿ> [out]
					  {ޥåIDǼƤ빽¤}
		     2. class <ѿ> [in]   {}
			 gt_vartable ⥸塼ˤ,
			   ʲ 3 ĤѿΤŤ줫
			   ȤꤵƤ
			     <=======================================>
			      integer, parameter:: VTB_CLASS_UNUSED = 0
			      integer, parameter:: VTB_CLASS_MEMORY = 1
			      integer, parameter:: VTB_CLASS_NETCDF = 2
			     <=======================================>
		     3. cid   <ѿ> [in]
		                      {̻  antabɽǥå}
		     4. ndims <ѿ> [in]   {}
		     5. allcount <>[in] {Ĺ}

	       : 1. Ϥ줿 class, cid  gt_variable ⥸塼
			ɽ table(:)  1 Ĥ˳Ǽ.
		     2. gt_map ⥸塼Υޥåɽ maptab(:) 
			1Ĥ ndims, allcount Ǽ,
			maptab(mapid)map(:) ˤѿ¸
			γƾ󤬳Ǽ.
			(ä˳ƼμĹ󤬽)
		     3. var%mapid ˤ, ޥåɽΤɤ ndims, allcount
			ǼƤΤ򼨤.
			(Ūˤ maptab(:) ΤĤ ndims 
			 Ǽ뤫򼨤)
			ʤ, ɽ table(:) Τɤ˳Ǽ줿Ȥ
			 maptab(:)  maptab%vid ˳ǼΤ,
			var%mapid 狼äƤɤ.
			

		     ===ܺ٤ϰʲ===
		     - VarTableAdd (ܺ٤ϲ) ˤ class  cid 
		       gt_vartable ⥸塼 save °
		       table(:) <VAR_TABLE_ENTRY>
		       (ּɽפȸƤФ?) ,
		       table βܤ줿 vid ֤
		       餦.
		       ( save ° table Ϥޤ̤Υ֥롼
			   ƤФΤ.)
		       
		     - MapTabAdd (ܺ٤ϲ) ˤ VarTableAdd 
		       ֤ä褿 vid  gt_map ⥸塼
		       save ° maptan(:) <MAP_TABLE_ENTRY>
		       (֥ޥåɽפȸƤФ) ,
		       maptab βܤ줿 var%mapid
		       ֤Ƥ餦.

		     - map_allocate (gt_map ⥸塼ˤ
		       ֥롼) ˤ, map(:) <GT_DIMMAP>
		       ()  allocate(map(1:ndims)) ,
		       map γѿ.
		       
		     - save ° maptab <MAP_TABLE_ENTRY> 
		       maptab(ѿID)%ndims  ndims .
		     - maptab(ѿID)%map => map 
		       map(:)  <GT_DIMMAP> Ǥ.
		     - 1  ndims 롼פԤ, ʲԤ.
		       + ¤ map(i) ͤ.
			 dimno = i, allcount = allcount(i) [Ĺ],
			 count = allcount(i) [Ĺ],
			 offset = 0, start = 1, step = 1, stride = 1
		     ==============
		       

		      MAP_TABLE_ENTRY  (gt_map)
			- ѿID, ѿ˴ؤǼ
			   <======================>
			   type MAP_TABLE_ENTRY
			       integer:: vid     ! table Υǥå
			       integer:: ndims   ! ѿļο
			       type(GT_DIMMAP), pointer:: map(:)
				   ! ѿ¸뼡˴ؤ
				   ! GT_DIMMAP ˴ؤƤϲ
				   ! 礦 ndims 礭ˤʤ
			   end type
			   <======================>

		      GT_DIMMAP   (gt_map)
			- 񤭴ɽ (?)
			  <======================>
			  type GT_DIMMAP
		            ! ʤмѿμֹ, ¾ѿȻ
			    integer:: dimno
			    ! ѿ url
			    character(len=string):: url
			    ! start ͤФ륪եå
			    integer:: offset
			    ! 1  -1 ͤȤ뤳ȤԤ롣
			    integer:: step
			    ! ݤγʻֹ: start + count * stride <= allcount
			    ! ϼ줾μĹϤ.
			    integer:: allcount
			    ! ---- ƥ졼 ---
			    ! ϰϤ (start:start+count*stride:stride) Ǥ롣
			    ! ƥ졼 start 
			    integer:: start
			    ! ƥ졼 count 
			    integer:: count
			    ! ƥ졼 stride 
			    integer:: stride
			  end type
			  <======================>


	     VarTableAdd(vid, class, cid)

	       : gt_vartable ⥸塼

		     Υ⥸塼Ǥ save ° table(:)
		     <VAR_TABLE_ENTRY> (βǤ
		     ּɽפȸƤФƤ) Ƥ.
		      table(:) ˤ, ޤ VarTableAdd 
		     Ϥ줿 class, cid 󤬳Ǽ.
		     
		      <==================================>
		       type(VAR_TABLE_ENTRY), save, allocatable:: table(:)


		       type VAR_TABLE_ENTRY
			    integer:: class
			    integer:: cid
			    integer:: refcount
		       end type
		      <==================================>
		     
	       : 1. vid  <ѿ> [out]
	                  {table ΤĤ class, cid Ǽ줿}
		     2. class <ѿ> [in]   {}
			 ʲ 3 ĤѿΤŤ줫
			     <=======================================>
			      integer, parameter:: VTB_CLASS_UNUSED = 0
						 ! (ޤѤƤʤ)
			      integer, parameter:: VTB_CLASS_MEMORY = 1
						 ! (???)
			      integer, parameter:: VTB_CLASS_NETCDF = 2
						 ! (ѺѤ)
			     <=======================================>
		     3. cid   <ѿ> [in]
				   {̻  antab ɽǥå}

	       : Ϥ줿 class, cid  gt_vartable ⥸塼
		      save ° table(:) <VAR_TABLE_ENTRY>
		     (βǤϡּɽפȸƤФƤ)
		     , table βܤ줿
		     vid ֤.
		     ( save ° table Ϥޤ̤Υ֥롼
		         ƤФΤ.)

		     ===ܺ٤ϰʲ===			 
		     - save ° table ޤ allocate Ƥʤ
		       ֤ʤ, allocate .
		       , Ʊ⥸塼 entry_cleanup Ѥ
		       table <VAR_TABLE_ENTRY> γѿ
		       (class, cid, refcount) 
		     - table%class, table%cid ȺϤ줿
		       class  cid Ʊ (Ĥޤ, Ʊͤ class
		        ID ϤƤ)  table%refcount 
		       䤷, return .
		     - ̵ɽĥ
		       + Ūˤ table(:)%class Ƥ
			 VTB_CLASS_UNUSED ̵, ̵Ȥ.
		       + ɽ, 2 ܤ˳ĥ.
		       + ĥƿǤʬˤ
			  (entry_clean ) 
			 .
		     - table(:)  class  VTB_CLASS_UNUSED 
		       äƤ (Ĥޤ϶Ǥ) Τǰ
		       ϤΤΤ
		       
				table(n)%class = class
				table(n)%cid = cid
				table(n)%refcount = 1

		       Ȥ.
		     - ֤ vid , Ϥ줿 class  cid
		       ξ table βܤäƤ뤫
		       ֤.
		       + ʤ餫ͳ vid ͤʤ
			  vid = vid_invalid (= -1) 
			 , ֤.
		     ================			 
		       
		       
	     MapTabAdd(mapid, vid)

	       : gt_map ⥸塼

		     Υ⥸塼Ǥ save ° maptab(:)
		     <MAP_TABLE_ENTRY>
		     (βǤϡ֥ޥåɽפȸƤФƤ)
		     Ƥ.
		      MAP_TABLE_ENTRY ˴ؤƤϾ嵭.
		     
	             <===========================================>
		      type(MAP_TABLE_ENTRY), save, target, allocatable:: maptab(:)
		     <===========================================>
		     
	       : 1. mapid <ѿ> [out]
	                  {maptab ΤĤ vid ǼƤ뤫}
		     2. vid   <ѿ> [in]
		          {table (gt_variable save ) ΤĤ
			   class, cid ǼƤ뤫򼨤}
			   
	       : Ϥ줿 vid (gt_variable ⥸塼 table 
		     Τɤ cid [antabɽǥå]
		     줿򼨤)
		      gt_map  maptab ˳Ǽ, ɤ˳Ǽ줿
		      mapid ֤.
		     
	       
		     ===ܺ٤ϰʲ===
		     - maptab ϤƸƤӽФ줿ݤˤ,
		       maptab  maptab_init_size = 16 Ȥ
		       allocate ,  (ºݤˤ maptab 
		       ݥ map  nullify) .
		     - maptab(:) ˶ (ޤƤʤ)
		       Ф vid , 
		       (ΡֲܤפȤ)  mapid ֤.
		        Ϥɤ vid ͤɤ
			  ȽǤ. (ͤ vid_invarid = -1 
			  gt_variable ⥸塼Ƥ.)
		     - Ϥ maptab ̵Τʤ, maptab 
		       2 ܤ˳ĥ.
		       ĥʬ˴ؤƤϰ
		       򤪤ʤ.
		     - ĥ줿ֿȤ vid Ǽ
		       ΰ֤ mapid ֤.
		     ================

		     
             limit(var, string, err)
	       limit(var, dimord, start, count, stride, err)

	       : gtdata_generic ⥸塼
	       : I.  1. var    <GT_VARIABLE>ѿ [in] {mapid }
			 2. string <ʸѿ>	     [in] 
		          {ΰʸ. 㤨, t=1:100,lat=100:270}
			 3. err	   <ѿ>	     [out]{ơ}

	             II. 1. var    <GT_VARIABLE>ѿ [inout] {mapid }
			 2. dimord <ѿ>	     [in] {ֹ}
			 3. start  <ѿ>	     [in] {ϰ}
			 4. count  <ѿ>	     [in] {ư}
			 5. stride <ѿ>	     [in] {ΰư}
			 6. err	   <ѿ>	     [out]{ơ}

	       : ˱Ƹ̤㤦, 줾Υ֥롼
		     򻲾ȤΤ.

		      ===ܺ٤ϰʲ===
		      Ϥ줿˱, GTVarLimit  GTVarLimit_iiii
		      ƤӽФ. ξܺ٤ϲ򻲾.
		      ================


             GTVarLimit(var, string, err)

	       : gtvarlimit.f90
	       : 1. var    <GT_VARIABLE>ѿ  [in] {mapid }
		     2. string <ʸѿ>	  [in]
		          {ΰʸ. 㤨, t=1:100,lat=100:270}
		     3. err    <ѿ>	  [out]{顼ɤ}

	       : Ϥ줿 string
		     (㤨Сt=1000:5000,lat=100:230) 
		     ɤ߼äƼºݤμǡΤĤΥǡ
		     бΤȹ礷,
		     maptab(var%mapid)%map(:) 
		     μб
		     map(ֹ)%***** Υǡ񤭴.
		     (***** ˤ start, count, stride ʤɤ)

		     η, ޤǼǡƤΥǡбƤ
		     maptab(var%mapid)%map(ֹ) ,
		     string бǡȤб褦
		     maptab(var%mapid)%map(ֹ) ˽񤭴.

		     ʤ, ǥХå⡼ɻˤ gtvar_dump Ѥ
		     ѿΥơ̤ɽ.
		     
		     ===ܺ٤ϰʲ===
		     - beginsub
		     - gtvar_dump ()  var%mapid ǰФ
		       ѿΥץѥƥ.
		       (gtvar_dump θ̤򻲾ȤΤ)
		     - string ˥ޡ,פ, ʬΥ,
		       ʬΥơʸ limit_one ()
		       , maptab(var%mapid)%map (ѿ¸
		       ƼΥǡ) ꤹ.
		     - 嵭꤬̤꽪ä,
		       if (present(err)) err = .false. Ȥ.
		     - endsub
		     ================
		       
             limit_one(string)

	       : gtvarlimit.f90
		     (GTvarLimit  contains Ƥ륵֥롼)
	       : 1. string <ʸѿ>	  [in]
		                          {ΰʸ}.
			 string ˴ؤ
			   ᥤΥ롼Ǥ GTVarLimit
			   ˤäơt=1:100,lat=100:270פΤ褦
			   ʸʬ䤵, t=1:100,lat=100:270
			   ˤʤäƤϤʤΤǥޡ,פˤĤƤ
			   Υ֥롼Ǥϥʤ.
			   
		     *. var  <GT_VARIABLEѿ>  {mapid Ǽ}

	       : Ϥ줿 string (㤨Сt=1000:5000) 
		     ɤ߼äƼºݤμǡΤĤΥǡ
		     бΤȹ礷,
		     maptab(var%mapid)%map(:) 
		     μб
		     map(ֹ)%***** Υǡ񤭴.
		     (***** ˤ start, count, stride ʤɤ)

		     η, ޤǼǡƤΥǡбƤ
		     maptab(var%mapid)%map(ֹ) ,
		     string бǡȤб褦
		     maptab(var%mapid)%map(ֹ) ˽񤭴.
		     

		     ===ܺ٤ϰʲ===
		     - string ʤ return
		     - string λϤ4ʸIGN: (ѾʸƱ)
		       ξ
		       + 㤨 string ign:lat=100פä,
			 =פΡ100פ start <ѿ>
			 .
		       + dimname_to_dimord  var ȡign:lat=100
			 ΡlatפʬϤ,
			 var ˤȤäƤΡlatפμֹ ()
			  dimord ֤.
		       + gtvarlimit_iiii 
			 var, dimord, start, count(=1), stride(=1) Ϥ,
			  start, count(=1), stride(=1) ù,
			 maptab(var%mapid)%map(dimord) 
			 offset, step, allcount, start, count, stride
			 ͤ () .
		       + del_dim(var, dimord, myerr) ˤä
			 ѿ var 鼡ѿ dimord б뼡
			 ä.
			 (ºݤˤ maptab(var%mapid)%map(:) ,
			  dimord б map(dimord) ä,
			  maptab(var%mapid)%ndims ͤ 1 ľ)
		       
		     - 㤨 string lat=100פä,
		       =פΡlatפ var 
		       dimname_to_dimord Ϥ,
		       var ˤȤäƤΡlatפμֹ ()
		        dimord ֤.
		       + =פޤޤʤ return
		       + dimord <= 0 ξ return
		     - lat=100:270פΡ100:270פ string Ȥ,
		        string  dimord  region_spec Ϥ.
		       ƤΡ100:270פ dimord ΤĤ
		       뤫, start, count, stride ֤Ƥ餦.
		       (Ū˲֤뤫ϲ region_spec
		        򻲾ȤΤ)
		     - gtvarlimit_iiii 
		       var, dimord, start, count, stride Ϥ,
		        start, count, stride ù,
		       maptab(var%mapid)%map(dimord) 
		       offset, step, allcount, start, count, stride
		       ͤ () .
		     ================


             strieq

	       : dc_string ⥸塼
	       : function strieq_cc(string_a, string_b) result(result)
		     function strieq_sc(string_a, string_b) result(result)
		     ()
	       : string_a <ʸѿ or VSTRING>
		     string_b <ʸѿ> ɤȽǤ
		     п, ۤʤе֤.
		     (κ, ʸ, ʸΰ㤤̵뤵)
	       

             strieq_cc(string_a, string_b) result(result)

	       : dc_string ⥸塼
	       : 1. string_a <ʸѿ> [in] {Ӥʸ1}
		     2. string_b <ʸѿ> [in] {Ӥʸ2}
		     3. result	 <ѿ> [out]{}
			   
	       : string_a  string_b ɤȽǤ
		     п, ۤʤе֤.
		     (κ, ʸ, ʸΰ㤤̵뤵)

		     ===ܺ٤ϰʲ===
		     - string_a, string_b 򤽤줾 ToUpper
		       ֥롼ʸѴ
		     - ӱ黻ҡ==פӤȤ, η
		       (.ture. ⤷ .false.) Τޤ
		       result ˤʤä֤.

		        ֥롼 ToUpper Ʊ dc_string ⥸塼
			   interface Ƥ,
			  ºݤˤ dcl 饤֥ CUPPER ֥롼
			  ƤӽФƤ.
		     ================
		       

            [DCL]  SUBROUTINE CUPPER(CH)

	       : dcl  src/misc1/chglib/cupper.f
	       : 1. CH <ʸѿ> [inout] {Ѵʸ}
 
	       : ASCIIɤ 97  122 (Ĥޤ a  z)
		     ʸä "ASCII  - 32"
		     (Ĥޤ A  Z) Ѵ.

		      ASCII ɤ˴ؤƤ, ־󸻡פ
			ʸ, ˭ıѻʡפ򻲾ȤΤ


             strieq_sc(string_a, string_b) result(result)

	       : dc_string ⥸塼
	       : 1. string_a <VSTRINGѿ> [in] {Ӥʸ1}
		     2. string_b <ʸѿ> [in] {Ӥʸ2}
		     3. result	 <ѿ> [out]{}
			   
	       : string_a  string_b ɤȽǤ
		     п, ۤʤе֤.
		     (κ, ʸ, ʸΰ㤤̵뤵)
		     
		     ===ܺ٤ϰʲ===
		     - <VSTRINGѿ>  string_a 
		       string_a%body(1:string_a%len) Ȥ
		       ʸѿȤƼФ.
		     - string_a Фʸ string_b
		        strieq_cc Ϥ.
		     ================


             dimname_to_dimord(var, name) result(result)

	       : gtdata_generic ⥸塼
	       : integer function gtdim_name2ord(var, name) ()
	       : doc/proc-dimord.htm

		     
             gtdim_name2ord(var, name) result(result)

	       : gtdim_name2ord.f90
	       : 1. var    <GT_VARIABLE> [in] {mapid }
		     2. name   <ʸѿ>    [in] {̾.latפʤ}
		     3. result <ѿ>    [out]{ֹ}
			   
	       : ѿ var ˤȤäƤ name μֹ result ֤.
		     (Τ˸ antab(table(var%mapid)%cid)%dimids(:)
		      ΤĤ name Ȥ̾μǼƤ뤫,
		      Ȥ result ֤.)

		     ===ܺ٤ϰʲ===
		     - name ʤ return
		     - name  stoi ѿˤ result 
		     - result  0 Ǥʤʤ return
		       (name ˡlatפʤɤʸäƤ
		        result  0 ˤʤϤǤ)
		     - var_class  ޥåɽ maptab(:)  var%mapid ܤ
		       󤫤 class  cid (antab Υǥå) .
		     - class == vtb_class_netcdf Ǥ,
		       search_dim ()  an_variable(cid) 
		       name Ϥ,
		       antab(cid)%dimids(:) ΤĤ name Ȥ̾
		       ǼƤ뤫Ȥ result
		       ֤.
		     ================

		     
             search_dim

	       : an_generic ⥸塼
	       : integer function an_search_dim(var, dimname)
	       

             an_search_dim(var, name) result(result)

	       : ansearchdim.f90
	       : 1. var    <AN_VARIABLE> [in] {id }
		     2. name   <ʸѿ>    [in] {̾.latפʤ}
		     3. result <ѿ>    [out]{ֹ}
			   
	       : ѿ var ˤȤäƼ name Ĥμ
		     ˳ǼƤ뤫,
		     (פ antab(var%id)%dimids(:) ΤĤ
		      ǼƤ뤫),
		     Ȥ result ֤.
		      ѿ var ΤΤǤˤ
		        result ˤ 1 ֤.

		     ===ܺ٤ϰʲ===
		     - vtable_lookup  var Ϥ, antab(var%id) 
		        ent ֤Ƥ餦.
		     - netcdf_f77 饤֥ nf_inq_dimid 
		       ent%fileid, name Ϥ,  name Ȥ̾
		       μID  dimid ֤Ƥ餦.
		     - dimid  ent%dimid ,
		       Ĥޤѿ var Ǥä
		       result  1 Ϥ, return.
		     - ent%dimids(:) Ȥİĸ,
		       ent%dimids(i) == dimid Ȥʤ i 
		       result ֤ return.
		     ================


             del_dim(var, dimord, myerr)

	       : gtdata_generic ⥸塼
	       : subroutine gtvardeldim(var, dimord, err) ()
	       : doc/proc-limit.htm

		     
             gtvardeldim(var, dimord, err)

	       : gtvardeldim.f90
	       : 1. var    <GT_VARIABLE> [in] {mapid }
		     2. dimord <ѿ>    [in] {ֹ}
		     3. err    <ѿ>    [out]{顼ơ}
			   
	       : maptab(var%mapid)%map(:) Τ,
		     maptab(var%mapid)%map(dimord) ʬä.
		     maptab(var%mapid)%ndims  1 .

		     () dimord == 2  ndims 3 ξ

		       maptab(var%mapid)%map(1)    Τޤ
		       maptab(var%mapid)%map(2)    ä
		       maptab(var%mapid)%map(3)    map(2) 

		       Ȥʤä礭 (ndims)  2 ˤʤ,
		        map(2) ʬϾä map(3) .
		       

		     ===ܺ٤ϰʲ===
		     - ޤ err = .ture. ȤƤޤ.
		       (˽λǤˤ err = .false. Ȥ)
		     - beginsub
		     - dimord  1 꾮ϥ顼å
		       Ϥ return
		     - map_lookup(var, ndims=ndimsp) Ȥ, ѿ var
		       ¸뼡ο(ndims) ndimsp Ϥ
		     - ndimsp ξ, ޤ dimord > ndimsp ξ
		       顼å֤ return
		       
		     - allocate(map(ndimsp)) .
		     - map_lookup(var, map=map) Ȥ, var ¸
		       Ƽ˴ؤ map(:) ˼
		     - tmpmap = map(dimord) Ȥ map(dimord) ξ
		       tmpmap <gt_dimmapѿ> ˼.
		     - map(dimord: ndimsp-1) = map(dimord+1: ndimsp)
		       Ȥ, map(dimord) ʬ򤽤ʬ
		       .

		          Х?? 

			   dimord == ndimsp Ǥä, 嵭Ϥɤʤ
			   ??

		     - map(ndimsp) = tmpmap Ȥ, ۤ tmpmap 
		        map(dimord)  map(:) ΰָ
		       Ȥ߹.
		     - map_set(var, map, stat) Ȥ, Ȥߴ
		       map(:)  maptab(var%mapid)%map(:) .
		     - deallocate(map)
		     - map_set_ndims(var, ndims = ndimsp - 1, stat=stat)
		       Ȥ, maptab(var%mapid)%ndims ľ.
		       (ˤä, ¼Ūˤ map(:)  map 
		        礭ľ뤳Ȥˤʤ.
			Τ map(:) ΰֺǸ, Ĥޤ
			ۤ map(dimord) ʬǤ.)
		     ================

	     map_set(var, map, stat)

	       : gt_map ⥸塼
	       : 1. var    <GT_VARIABLE>   [in] {mapid }
		     2. map    <gt_dimmap> [in]
		                 {ѿ var ¸Ƽ
				  ؤޤ
				  (οϼοб)}
		     3. stat   <ѿ>    [out]{ơ}
			   
	       : Ϥ줿 map(:) 
		     maptab(var%mapid)%map(1:size(map)) 
		     .

		     
	     map_set_ndims(var, ndims, stat)

	       : gt_map ⥸塼
	       : 1. var    <GT_VARIABLE> [in] {mapid }
		     2. ndims  <ѿ>    [in] 
				{ѿ var ¸뼡ο}
		     3. stat   <ѿ>    [out]{ơ}
			   
	       : Ϥ줿 ndims  maptab(var%mapid)%ndims 
		     ꤹ.

		     
             region_spec(dimord, string, start, count, stride)

	       : gtvarlimit.f90
	       : 1. dimord <ѿ>	  [in] {ֹ}
		     2. string <ʸѿ>	  [in]
		         {ϰϻʸ. ˳Υץǡ=פ
			  ϼƤΤǡ10:100פΤ褦
			  ʸˤʤäƤϤǤ}
		     3. start  <ѿ>	  [out] {ϰ}
		     4. count  <ѿ>	  [out] {ư}
		     5. stride <ѿ>	  [out] {ΰư}

	       : string ˤ錄줿 10:100 ʤɤοŪ(?)
		     ϰϤ, ǡΡ֤ĤΥǡ?
		     ֤֤.
		     ֤Τ
		       - start  : ĤΥǡ鳫Ϥ뤫
		       - count  : start ƤʬΥǡ֤
		       - stride : ǡ򤤤ФǼ뤫
				  (ǥեȤ 1 , ǡФ
				   1Ĥļ)
		     ʤ, Ϳ줿ͤԤäǡȰפȤ
		     ¤ʤ櫓, Ŭ.
		     (㻲)
		     

	             ()
	              оݤȤʤ뼡Υǡ
		          0, 50, 100, 150, 200, 250, 300, 350, 400, 450;

		         string == 90      (1Ĥξ  ͼθ)
			   - start = 3, count = 1, stride = 1
			     (: 100, λ: 100, å: 50)
			     
			 string == 160:340 (2Ĥξ
			                       : ͤȤ
					         λ: ͤȤ)
			   - start = 4, count = 5, stride = 1
			     (: 150, λ: 350, å: 50)
			     
			 string == -20:1000  (ϰϤۤƤ
			                         ϰϤȤ
						   ޤǽ̾)
			   - start = 1, count = 10, stride = 1
			     (: 0, λ: 450, å: 50)
			     
			 string == 100:400:2 (3Ĥξ
					         3 ܤϤΤޤ
						   stride )
			   - start = 3, count = 9, stride = 2
			     (: 100, λ: 400, å: 100)
			   
			 string == 100:400:^2 (3ܤˡ^פĤ
			                         
					         Τޤ stride 
						   [Ʊ])
			   - start = 3, count = 9, stride = 2
			     (: 100, λ: 400, å: 100)
			   
			 string == 300:50  (1ܤ2ܤ꾮
					       stride 椬դ)
			   - start = 7, count = 6, stride = -1
			     (: 100, λ: 400, å: 100)
			   

		     ===ܺ٤ϰʲ===
		     - <ѿ> colon  string Υ:פ
		       ֤
		     - string ˥̵ä,
		       ʸŪ˳ǼƤ var(:)
		       (礭 3) 
		         val(1) = string(1:0), val(2) = val(1), val(3) =""
		       .
		     - string ˥󤬤
		       ʬ䤷 string  val(:) .
		     - ⤷ val(3) Ǥˤ val(3) = "^1"
		     - val(1) βù
		       + val(1) 1ʸܤ^פǤˤ,
			 Ρ^פ start 
		       + var(1)  val(2) ƱǤˤ,
			 value_to_index  dimord  val(1) 
			 Ϥ, val(1) ǡΤĤ
			 б뤫򼨤¿,  nint (ͼθ)
			  start .
		       + 嵭ʳξ,
			 value_to_index  dimord  val(1) 
			 Ϥ, val(1) ǡΤĤ
			 б뤫򼨤¿,  floor
			 (ʲǺ)  start .
		     - val(2) βù
		       + var(1)  val(2) ƱǤˤ,
			 finish  start ͤ.
		       + val(2) 1ʸܤ^פǤˤ,
			 Ρ^פ finish 
		       + 嵭ʳξ,
			 value_to_index  dimord  val(2) 
			 Ϥ, val(2) ǡΤĤ
			 б뤫򼨤¿,  ceiling
			 (ʾǺǾ)  finish .
		     - ǡȤȤ
		       + dimrange  var, dimord Ϥ, ǡο
			 dimhi, dimlo  1 ˼.
		       + start = min(max(dimlo, start), dimhi) Ȥ,
			 start  dimlo, dimhi ˼.
		       + finish = min(max(dimlo, finish), dimhi) Ȥ,
			 finish  dimlo, dimhi ˼.
		     - abs(finish - start) + 1 Ȥ finish  start
		       κͤ 1 ä count Ϥ.
		     - val(3) βù
		       + val(3) 1ʸܤ^פǤˤ,
			 Ρ^פ, stoi ѿ
			 Ѵ stride 
		       + 嵭ʳξ,
			 val(3) stoi Ѵ stride 
		       + stride = sign(stride, finish - start) ,
		         finish - start η̤Ȥʤ뤫Ȥʤ뤫
			 ,  stride ݤ,
			 stride ֤.
		     ===============



             value_to_index(dimord, value) result(result)

	       : gtvarlimit.f90
	       : 1. dimord <ѿ>  [in] {ֹ}
		     2. value  <ʸѿ>  [in] {ͤη򤷤ʸ}
		     3. result <¿ѿ>  [out]
		          {value  dimord μǡΤܤ
			   бƤ뤫򼨤¿}

	       : Ϳ줿 value 
		     ѿ var (ƥ롼) μֹ dimord 
		     ѿλĥǡΤܤбΤ
		     result ֤.

		     1: value=120,
			  dimord б뼡ǡ
			    = 0, 50, 100, 150, 200, 250;

			  Ф: 100
			  result = 3.4  (¿)
			           (= 3 + (120 - 100)/(150 - 100))
		     
		     1: value=100,
			  dimord б뼡ǡ
			    = 0, 50, 100, 150, 200, 250;

			  Ф: 50
			  result = 3.0  (¿)
				   (= 2 + (100 - 50)/(100 - 50))
			  

		     ===ܺ٤ϰʲ===
		     - open (ΤϤ餯 GTVarOpenByDimOrd 
		       doc/proc-open-gtvar.htm ) 
		       var, dimord Ϳ, dimord μѿˤ
		       axisvar .
		       פ, ѿ var (㤨 u Ȥ)  dimord ܤ
		        (㤨 lat) ѿ mapid  axisvar%mapid
		       ֤Ƥ餦.
		       (ºݤˤϿ axisvar 櫓.
		        (ܤϲ GTVarOpenByDimOrd))
		     - ֥롼 Get Ѥ, axisvar ѿͤ
		       ¿ݥ axisval ɤ߹.
		     - axisvar  close 
		     - associated(axisval) ξ (Ĥޤ, ʤ餫
		       ͳˤ Get Ԥ) result = -1.0
		       Ȥ return
		     - axisval(:) Υ 1 ä resuld= 1.0
		       Ȥ return
		     - stod(value) Ȥʸ value ¿
		       Ѵ ¿ѿ val (ƥ롼 val(:)
		       Ȥ̤줿.) .
		     - axisval  size 롼.
		       (ʲǤϥ롼פβ i ɽ)
		       + ٤礦 axisval(i+1)  axisval(i) Ʊ
			 real(i) + 0.5 ֤ return
		          餯ϥ쥮顼ξν
		       + i+(val - axisval(i))/(axisval(i+1)-axisval(i))
			  result , result  i+1 ⾮
			  return.
			  ˤ, val ˺Ǥ᤯, val ⾮
			     (ΤǤϤʤ, ) 
			    Ф.
			    result ֤Τۤ
			    i+(val - axisval(i))/(axisval(i+1)-axisval(i))
			    Ǥ.
		     ================

		     

             GTVarLimit_iiii(var, dimord, start, count, stride, err)

	       : gtvarlimit.f90
	       : 1. var    <GT_VARIABLE>ѿ  [in] {mapid }
		     2. dimord <ѿ>	  [in] {ֹ}
		     3. start  <ѿ>	  [in] {ϰ}
		     4. count  <ѿ>	  [in] {ư}
		     5. stride <ѿ>	  [in] {ΰư}
		     6. err    <ѿ>	  [out]{ơ}

	       : Ϥ줿 start, count, stride ù,
		     maptab(var%mapid)%map(dimord) 
		     offset, step, allcount, start, count, stride
		     ͤ () .

		     ===ܺ٤ϰʲ===
		     - beginsub
		     - 顼å
		       + dimord  0 ʲʤХ顼
		       + stride  0 ǤäʤХ顼
		       + ndims (ѿ¸뼡ο)  0 ʲʤХ顼
			 - ndims  map_lookup(var, ndims=ndims) ȤƼ
		       + dimord  ndims 礭Х顼
		       + lowerlim < dimlo ޤ upperlim > dimhi
			 ǤХ顼
			 - ()
			   ֥롼 dimrange (gt_map ¢. ) 
			    var, dimord Ϥ,
			   ѿ var μֹ dimord ˤ뼡
			   Ĺ dimhi , 1  dimlo Ϥ.
			   (̤θ򤹤, dimord μźֹϰ
			     dimlo, dimhi ˤ錄)

			    start  (start + (count - 1) * stride) ,
			    礭 upperlim,  lowerlim .
			    
			       Х 
			        print *, "upperlim = ", upperlim,  &
				&                    " < dimhi =", dimhi
						        <פǤ
			    
			       Х 

			    ! (/lowerlim, upperlim/) ʻҤϰ (߽)
			    lowerlim = min(start, start + (count - 1) * stride)
			    upperlim = max(start, start + (count - 1) * stride)

			        Ǥʤ餫
				.
				stride  dcl ˤɤϤ뤫Ƥ
				ǥХåͽ.
				
		       + allocate(map(ndims))  ,
			 call map_lookup(var, map=map)
			 Ȥ, gt_map ⥸塼
			 maptab(var%mapid)%map(:)  map(:) ˼.
			 (map(:) ι¤ type(gt_dimmap)Ǥ.
			  map(:) ˤ, ѿ¸Ƽξ
			  ǼƤ. ä˼Ĺ map(ID)%allcount,
			  map(ID)%count )

		       + Ϥ줿 start, count, stride ù,
			 map(:) γ (offset, step, allcount, start,
			 count, stride)
			 ͤ () .
			    ܺ٤Ϥޤۤ

		       + map_set(var, map, stat) , map(:) Ƥ
			 maptab(var%mapid)%map(:) ᤹.

		       + stat 򸫤, 顼ʤХå֤.
				
		     ================


             dimrange  (gt_map ¢)

	       : gt_map ⥸塼
	       : subroutine dimrange_by_dimno(var, dimno, dimlo, dimhi)
	      

             dimrange_by_dimno(var, dimno, dimlo, dimhi)

	       : gt_map ⥸塼
	       : 1. var    <GT_VARIABLEѿ>  [in] {mapid }
		     2. dimno  <ѿ>	  [in] {ֹ}
		     3. dimlo  <ѿ>	  [out]
				{źֹκǾ}
		     4. dimhi  <ѿ>	  [out]
				{źֹκ}
	       : ѿ var μֹ dimno ˤ뼡ѿ
		     Ĺ dimhi , 1  dimlo ֤.

		     ===ܺ٤Ϥ===
		     - open (ΤϤ餯 GTVarOpenByDimOrd 
		       doc/proc-open-gtvar.htm ) 
		       var, dimno Ϳ, dimno μѿˤ
		       dimvar .
		     - map_lookup  dimver  vid (table(:) Υǥå)
		       .
		     - dimrange (gt_map ¢ǤϤʤ, gtdata_internal ¢,
		       ܤϲ)
		        vid Ϥ, vid ()ѿ  źֹ
		       Ǿ, , dimlo, dimhi .
		     - dimver  close
		     ==================


             dimrange  (gtdata_internal ¢)

	       : gtdata_internal ⥸塼
	       : subroutine dimrange_direct(vid, dimlo, dimhi)
	      

             dimrange_direct(vid, dimlo, dimhi)

	       : gt_map ⥸塼
	       : 1. vid    <ѿ>  [in]
			  {table(:) Υǥå. ʤ, vid 
			   Ǥ뤳ȤꤵƤ.}
		     2. dimlo  <ѿ>	  [out]
				{źֹκǾ}
		     3. dimhi  <ѿ>	  [out]
				{źֹκ}
				
	       : antab(table(vid)%cid)%fileid, %dimid 
		     netcdf_f77 饤֥Ϥ, μĹ
		     dimhi , dimlo ˤ 1 .

		     ===ܺ٤Ϥ===
		     - VarTableLookup  vid Ϥ, class  cid 
		       .
		     - class == vtb_class_netcdf Ǥ,
		       ֥롼 an_inquire  an_variable(cid) 
		       Ϥ, dimlen (Ĺ)  dimhi ȤƼ.
		       ޤ, dimlo ˤ 1 Ϥ.
		        an_inquire  netcdf_f77 饤֥
			  ưƼĹƤ.
		     - class ʳʸǤäˤϥ顼
		       ֤.
		     ==================
		     
		     
             gtvar_dump(var)

	       : gt_map ⥸塼
	       : 1. var    <GT_VARIABLE>ѿ  [in] {mapid }
	       : ǥХå⡼ɻ, ʲ˳Ǽ
		     Ϥ.
			  maptab(var%mapid)
			  table(maptab(var%mapid)%vid)
			  antab(table(maptab(var%mapid)%vid)%cid)

		     Ϸ̤ϰʲǤ.

			[gt_variable 3: ndims=1, map.size=1]
			[dim1 dimno=1 ofs=0 step=1 all=32 start=1  &
					&    count=32 stride=1 url=]
			[vartable 2: class=netcdf cid=2 ref=1]
			[AN_VARIABLE(file=4, var=2, dim=2)]

		     ֤˲бƤ뤫Ƥߤ.

		     /*** maptab ˳ǼΤ ***/
		     [gt_variable 3	imap (= var%mapid)
		     : ndims=1		maptab(imap)%ndims
		     , map.size=1]	size(maptab(imap)%map)

		     [dim1		idim (= maptab(var%mapid)%map(:)
							      )
		     dimno=1		maptab(imap)%map(idim)%dimno
		     ofs=0		maptab(imap)%map(idim)%offset
		     step=1		maptab(imap)%map(idim)%step 
		     all=32		maptab(imap)%map(idim)%allcount
		     start=1		maptab(imap)%map(idim)%start
		     count=32		maptab(imap)%map(idim)%count 
		     stride=1		maptab(imap)%map(idim)%stride
		     url=]		maptab(imap)%map(idim)%url

		     /*** table ˳ǼΤ ***/
		     [vartable 2	vid  (= maptab(imap)%vid)
		     : class=netcdf	table(vid)%class
		     cid=2		table(vid)%cid
		     ref=1]		table(vid)%refcount

		     /*** antab ˳ǼΤ ***/
		     [AN_VARIABLE(file=4 antab(table(vid)%cid)%fileid
		     , var=2		 antab(table(vid)%cid)%varid
		     , dim=2)]		 antab(table(vid)%cid)%dimid

		     
		     ===ܺ٤ϰʲ===
		     - ؿ debug()  .false. ξˤ return ǽλ.

		       debug()  dc_trace ⥸塼˴ޤޤ
		       logical function  dc_trace  save °
		       ѿ dbg  0 ʾʤ .true. ֤.
		       dbg ϥǥեȤǤ -1 , Ʊ dc_trace
		       ˤ륵֥롼 setdebug ˤä
		       ꤵ. 
		       (setdebug ϥޥɥץ -debug  -D
		        ꤵ뤳ȤˤäƼ¹Ԥ)
			
		     - imap = var%mapid 
		     - imap  1 ʲ⤷ maptab Υ
		       礭, 顼֤ƽλ
		     - map(imap)%map ¸ߤʤ,
		       ˳ǼϢѿ
		       + map(imap)%map ¸ߤʤʤ,
			 maptab(imap)%ndims Ϥ
		     - vartable_dump () 
		       maptab(imap)%vid ˴ؤϤ.

             vartable_dump(vid)

	       : gt_vartable ⥸塼
	       : 1. vid    <ѿ>  [in] {ɽΥǥå}
	       : ǥХå⡼ɻ, table(:) 
		     maptab(var%mapid)%vid ܤ˳Ǽ
		     ,  antab(:) 
		     table(maptab(var%mapid)%vid)%cid ܤ˳Ǽ
		     Ϥ.
		     
		     ===ܺ٤ϰʲ===
		     - ɽ table  allocate Ƥʤ
		       return
		     - vid  0 ʲ, table Υ礭
		       return
		     - table(vid)%class ʸȽ̤,
		       Ŭʸ class .
		       
		          table(vid)%class  |   class
			  ------------------+---------------------------
			  vtb_class_netcdf  |  netcdf
			  vtb_class_memory  |  memory
			  <¾ʸ>  |  <¾ʸ> Τޤ

		     - vid, table(vid)%cid, table(vid)%refcount
		       .
		     - table(vid)%class == vtb_class_netcdf ʤ,
		       tostring(an_variable(table(vid)%cid)) Ȥ
		       an_variable ⥸塼 antab(:) 
		       table(vid)%cid ܤȤϤ.
		       
		      
             toString   (interface)

	       : an_generic ⥸塼
	       : function ANVarToString(var) result(result)
		      
	    
             ANVarToString(var) result(result)

	       : anvartostring.f90
	       : 1. var <AN_VARIABLEѿ> [in] {antabɽǥå}
		     2. result   [out]  {}
	       : vtable_lookup(var, ent) () ,
		     ֤ä褿 ent%fileid, ent%varid, ent%dimid 

		          AN_VARIABLE(file=1, var=2, dim=3)

		     Τ褦ʽ񼰤ˤ result ֤.
			  

             vtable_lookup(var, entry) result(result)

	       : an_vartable ⥸塼
	       : 1. var <AN_VARIABLEѿ> [in] {antabɽǥå}
		     2. entry <AN_VARIABLE_ENTRYѿ> [out]
			                           {antabɽ}
		     2. result   [out]  {ơ}
	       : entry = antab(var%id) .
		     顼Υơ result ֤.


	     slice

	       : gtdata_generic ⥸塼
	       : I.  1. var        <GT_VARIABLE> [inout] {mapid }
			 2. compatible <GT_VARIABLE> [in]    {mapid }

	             II. 1. var        <GT_VARIABLE> [inout] {mapid }
			 2. slicespec  <ʸѿ>    [in]
			     {lat=100פlon=^2פʤɤʸ }
			 3. err	       <ѿ>    [out]   {ơ}
			 
	            III. 1. var        <GT_VARIABLE> [inout] {mapid }
			 2. dimord     <ѿ>    [in]  {ֹ}
			 3. start      <ѿ>    [in]  {ֹ}
			 4. count      <ѿ>    [in]  {}
			 5. stride     <ѿ>    [in]  {}
			 
	       : I. GTVarSliceAuto ƤӽФ
		     II.  GTVarSliceC ƤӽФ
		     III. GTVarSlice ƤӽФ

		      ºݤΤȤ GTVarSliceAuto ˤƤ
			GTVarSliceC ˤƤ, ǽŪˤ
			GTVarSlice ƤӽФƤΤǤ.

	       : doc/proc-slice.htm 

	       
             GTVarSlice(var, dimord, start, count, stride)

	       : gtvarslice.f90
	       : 1. var        <GT_VARIABLE> [in]  {mapid }
		     2. dimord     <ѿ>    [in]  {ֹ}
		     3. start      <ѿ>    [in]  {ֹ}
		     4. count      <ѿ>    [in]  {}
		     5. stride     <ѿ>    [in]  {}
		     
	       : Ϥ줿 start, count, stride ,
		     ŬŬͤ˽
		     maptab(var%mapid)%map(dimord) ȿǤ.
		     (ưΤ gtoolѿ θդ
		      ϰϸˤ̤Ȥۤ
		      ѤʤĤ褦ˤߤ)

		     ===ܺ٤Ϥ===
		     - beginsub
		     - gtvar_dump (嵭)
		     - map_lookup(var, vid=vid, ndims=nd)  (嵭)
		     - vid ʤ StoreError ǥ顼
		     - query_growable(vid, growable_dimension)
		       ˤѿ var (vid  maptab(var%mapid)%vid 
		       ȤʤΤ)  (netCDF ǸȤ) ̵Ĺ
		       μĤɤ growable_dimension
		       <ѿ> ֤.
		       (Ĥʤ .true. ʤʤ .false.)
		     - [顼] nd == 0 ʤХå꽪λ
		     - allocate(map(nd))   (嵭)
		     - map_lookup(var, map=map)   (嵭)
		     - [顼] dimord <= 0 .or. dimord > size(map)
		                    ʤ deallocate(map) ƽλ
		     - growable_dimension == .false. ξˤ
		       maxindex = map(dimord)%allcount Ȥ.
		     - start ϤƤ
		       - start < 0 ξ
			 map(dimord)%start = max(1, maxindex + 1 + start)
			 Ȥ. (ɤäưܻؤƤΤ)
		       - growable_dimension == .true. ξ
			 map(dimord)%start = max(1, start)
			 Ȥ.
			 פ, start ͤ˱Ƴϰ֤
			 ڤͤ.
			 (ƤϤưˤʤΤǤ)
		       - ¾ξ
			 map(dimord)%start = min(maxindex, max(1, start))
			 Ȥ. ⤷ start  maxindex 礭
			 ˤ maxindex ޤǾ.

		     - stride ϤƤ
		       map(dimord)%stride = stride Ȥ.
		       ʤ, stride == 0 Ϥ줿ˤ
		       map(dimord)%stride = 1 Ȥ.

		     - count ϤƤ
		       map(dimord)%count = abs(count) Ȥ.
		       ʤ count ξ count == 0 Ϥ줿ˤ
		       map(dimord)%count = 1 Ȥ.

		     - growable_dimension == .false. ξ
		       maxindex, start, stride ,
		       Ū count ꤹ.

		     - map_set(var, map, stat) Ȥ
		       ޤǤꤷ map ºݤ
		       maptab(var%mapid)%map .
		     - endsub
		     ==================



             query_growable(vid, result)

	       : gtdata_internal.f90
	       : 1. vid        <ѿ> [in] {table Υǥå}
		     2. result     <ѿ> [out]
		         {ѿ vid ̵ĹμĤɤ}
		     
	       : ѿ vid ̵ĹμĤɤ
		     result ֤.

		     ===ܺ٤Ϥ===
		     - vartablelookup(vid, class, cid) 
		       vid  class, cid .
		     - inquire(an_variable(cid), growable=result)
		       Ȥ, ѿ cid (ѿ vid Ʊ) 
		       ̵ĹμĤΤĴ٤.
		       η̤ result .

		         inquire  an_generic ⥸塼
			  interface ƤΤ,
			  ξ˸ƤӽФΤ ANVarInquire
			  (anverinquire.f90) Ǥ.
			  ANVarInquire  growable Ĵ٤ݤˤ
			  netcdf_f77 饤֥ nf_inq_unlimdim
			  (netCDF ե⤫̵Ĺμ
			   ѿIDؿ)
			  Ѥ, ID cid ¸뼡ѿID
			  ȹ礷Ĵ٤.
		     ==================



             GTVarSliceC(var, string, err)

	       : gtvarslice.f90
	       : 1. var        <GT_VARIABLE> [in]  {mapid }
		     2. string     <ʸѿ>    [in]  {ֹ}
		     3. err	   <ѿ>    [out] {ơ}
		     
	       : Ūˤ GTVarLimit (嵭) ưƱ.
		     ۤʤΤ, GTVarSliceC Υ֥롼
		     limit_one ƤӽФ֥롼,
		     gtvarlimit_iiii (嵭)  gtvarslice (嵭)
		     ѤäƤ뤳ȤǤ.
		     (GTVarLimit  limit_one  gtvarlimit_iiii 
		      ƤӽФ, map(dimord) ѿꤷƤ)
		     

	  GTObjLoadVar(obj, var)

	    : gtobjectopen.f90
	    : 1. obj  <GT_OBJECT>   [out]
	               {¾ι¤ GT_**** 礹륪֥}
		  2. var  <GT_VARIABLE> [in]  {mapid }

	    : doc/gt_object.htm ΡLoad
	    
	    : ѿ var ɤ߼äΤξ
		  obj ˳Ǽ֤.

		  㤨, spmodel ʤɤǺ nc ե
		  ѿ zeta (lon, lat, t˰¸) var ȤƤ
		  ʤ, Τξ (줿)
		   obj%cont <GT_CONTOURSѿ> .
		  (, ɸ obj%cont%h_axis,
		   obj%cont%v_axis (ξȤ <GT_AXISѿ>)
		   ˳Ǽ)
		  
		     () ѿ var 2ʾ˰¸.
		     
			  obj%cont Τξ
			  (줿) Ǽ.
			  ɸ˴ؤ
			  obj%cont%h_axis, obj%cont%v_axis 
			  ꤵơ׳Ǽ
			  
		     () ѿ var 1˰¸.
		     
			  obj%line Τξ
			  (줿) Ǽ.
			  ɸ˴ؤ
			  obj%cont%h_axis, obj%cont%v_axis 
			  ꤵơ׳Ǽ
			  
		     () ѿ var ǡΤΤǤϤʤ,
			  ȤΤξǼ.
			  (nc եѿ "gt_structure_class"
			   °Ĥ)
			  
			  줾, ˹碌,
			  obj%frame, obj%fig, obj%cont, obj%vect,
			  obj%line 蹽¤ξ
			  .
			  
		  ===ܺ٤Ϥ===
		  - beginsub
		  - Clear(obj) Ȥ obj Ƥ򥯥ꥢ
		  - get_attr(var, "gt_structure_class", &
		                          & var_class, default="data")
		    Ȥ, ѿ var °̾ gt_structure_class
		    Ƥ var_class ˼Ф.
		    (get_attr ˴ؤƤϾ嵭򻲾ȤΤ.
		     ʤ,  get_attr  gtdata_generic ¢
		     ΤǤ.)

		      gt_structure_class ̤ spmodel ʤɤ
		       줿 nc եˤ̵°եǤ.
		       °, frame  fig, cont Ȥä
		       ǡڤФ줿 nc ե
		       ¸ߤΤǤ.
		       (gtview  -save ץͿƽ褿
		        gtgraph.nc ˤϤ°¸ߤ.)
			
		  - ʲ var_class ˤʬ
		    - var_class == "frame"
		      - allocate(obj%frame)
		      - Open(obj%frame)
		      - Load(obj%frame, var)
		    - var_class == "figure"
		      - allocate(obj%fig)
		      - Open(obj%fig)
		      - Load(obj%fig, var)
		    - var_class == "contours"
		      - allocate(obj%cont)
		      - Load(obj%cont, var)
		    - var_class == "vectors"
		      - allocate(obj%vect)
		      - Load(obj%vect, var)
		    - var_class == "line"
		      - allocate(obj%line)
		      - Load(obj%line, var)
		    - var_class == "axis"
		      - allocate(obj%axis)
		      - Load(obj%line, var)
		      
		    - 嵭ʳξ
		       ̤ gtool_history Ѥƺ줿
			 nc եʤФ줬򤵤ϤǤ.

		      - inquire(var, rank=ndims) Ȥ,
			var ¸ֽषƤʤ׼
			ndims .
			 ֽפȤϼĹ1פˤʤäƤ
			   Ȥؤ.
			   㤨, sample.nc@t=100 ʤɤȻꤵ줿
			   ˤϼtפϡֽव줿פȤʤ.
			   ޤ gtool4 ǤϤΡֽפ֥ѥȡ
			   ɽƤ뤳Ȥ⤢

			   ܤ inquire μΤǤ
			   GTVarInquire () 򻲾ȤΤ
			   
		      - ndims == 1 ξ
			 - allocate(obj%line)
			 - call Open(obj%line, var)
			    Open μΤ GTLineOpen (gtlinelib.f90)
			   Ǥ ().
			   ˤ, obj%line Τ
			   󤬽ƳǼ.
		      - ndims >= 2 ξ
			 - allocate(obj%cont)
			 - call Open(obj%cont, var)
			    Open μΤ GTContOpen (gtcontlib.f90)
			   Ǥ ().
			   ˤ, obj%cont Τ
			   󤬽ƳǼ.
		      - ndims 嵭ʳξ
			 - StoreError
		      
		  - endsub		  
		  ==================


             GTVarInquire(var, growable, rank, alldims, allcount, &
	                                     & size, xtype, name, url)

	       : gtvarinquire.f90
	       : 1. var        <GT_VARIABLE> [in]  {mapid }
		     2. growable   <ѿ>	 [out]
		          {ѿ var ̵ĹμĤɤ}
		     3. rank	   <ѿ>	 [out]
		          {(ѥȲ줿)ʤ,
			   ο ()}
		     4. alldims	   <ѿ>	 [out] {}
		     5. allcount   <ѿ>	 [out] {}
		     6. size	   <ѿ>	 [out] {}
		     7. xtype	   <ʸѿ>	 [out] {}
		     8. name	   <ʸѿ>	 [out] {}
		     9. url	   <ʸѿ>	 [out] {}
		     
	       : ѿ var ͡ʾ֤.
		     ֤, Ϥ줿ѿ˰¸.
		     (ܺ٤ϲ)

	             ===ܺ٤Ϥ===
		     - growable ˴ؤ
		       - 
			 inquire(an_variable(cid), growable=growable)
			  (Τ ANVarInquire(anverinquire.f90))
			 ؤΥ֥롼󤫤 growable 
			 
		     - rank ˴ؤ
		       - map_lookup(var, map=map) Ȥ
		         maptab(var%mapid)%map(:) ƤӽФ,
			  rank = count(map(1:nd)%count > 1)
			 Ȥ뤳Ȥ,
			   maptab(var%mapid)%map(:)%count Τ,
			 1礭פΤο rank .
			 (count == 1 ΤΤϺϥȤʤ)
		     ==================



             GTLineOpen(result, var)

	       : gtlinelib.f90
	       : 1. result  <GT_LINE>     [out]
	                  {Υ֥롼ǽ
			   Τι¤.
			   ι¤ΤϺɸξޤ}
		     2. var     <GT_VARIABLE> [in]   {mapid }
		     
	       : ΤγͤνԤ.
		     Ʊ˺ɸ⤪ʤ, 
		     ȤԤäƤޤ.
		     (ɤΤ褦ʾ󤫤꤬ԤΤ
		      GTAxisOpen . ʤ, GTAxisOpen Ϥ
		      ֥롼Ǥ GOpen ȤƸƤӽФ.)

	             ===ܺ٤Ϥ===
		     - beginsub
		     - Open(result%var, var, 0) .

		       η, ѿ var ʣ, 
		       ʣ줿Τ result%var ֤.
		       ʤ, var%mapid  result%var%mapid ϰۤʤ.

		         - var  result%var Ʊ

			     maptab(var%mapid)%map
			     maptab(var%mapid)%ndims
			     table(maptab(var%mapid)%vid)%class
			     antab(table(maptab(var%mapid)%vid)%cid)%fileid
			     antab(table(maptab(var%mapid)%vid)%cid)%varid
			     antab(table(maptab(var%mapid)%vid)%cid)%dimid

		         - var  result%var ǰۤʤ

			     var%mapid
			     maptab(var%mapid)%vid
			     table(maptab(var%mapid)%vid)%cid
			     table(maptab(var%mapid)%vid)%refcount
			     
		       ʤ,  Open Ǽºݤ˸ƤӽФΤ
		       GTVarOpenByDimOrd (gtvaropenbydimord.f90, 
		       doc/proc-open-gtvar.htm )
		       Ǥ.

		          Х?? 

			   ޥ˥奢䥽ΥȤǤ
			     ord == 0 ξѿΤٳ
			       ϻȥ󥿤ä
			       ʤǤ롣
			   ȵҤƤ뤬, ºݤˤ
			   table(vid)%refcount äȤȤ
			   ʤ, 嵭Τ褦 var ̤ʣ
			   ֤, Ȥư򤷤Ƥ.

		     - allocate(result%h_axis, result%v_axis) 
		     - GOpen(result%v_axis, var, 0)
		       Ȥƽļѿ var  (dimno == 0 ʤΤ)
		       Ȥꤹ. ꤵ줿
		       result%v_axis ˳Ǽ.

		       ʤ,  GOpen ˤºݤ˸ƤФΤ
		       GTAxisOpen (gtaxis.f90, doc/gt_axis.htm )
		       Ǥ. ()

		          Х?? 

			   GTAxisOpen  5 ܤΰѿȤ,
			   ϼľʿɸȤʤ.
			   Ĥ嵭ǤϤΤ褦ꤷƤʤ.
			   Ĥ褤Τ?

		     - ļƱͤ
		       GOpen(result%h_axis, var, 1)
		       ȤƲѿ var μѿ 1 ˤ뼡
		       Ȥꤹ. ꤵ줿
		       result%h_axis ˳Ǽ.

		     - GT_LINEѿ˴ޤޤ, ʲѿ.
		         result%index = 1
			 result%type = 1
			 result%mark = 0
			 result%animate = .false.

	             - endsub
		     ==================

		     
             GTAxisOpen(this, base_var, dimno, vertical)

	       : gtaxis.f90
	       : 1. this     <GT_AXIS>     [out]
	                 {Υ֥롼ǿꤵɸι¤}
		     2. base_var <GT_VARIABLE> [in]   {mapid }
		     3. dimno    <ѿ>    [in]   {ֹ}
		     4. vartical <ѿ>    [in]
		          {ʤбľ, ʤпʿ}

               : doc/gt_axis.htm
			  
	       : ΤκɸԤ.
		     󸻤ϰʲ.
		       - ƥץफϤʲΰ
			 - base_var   (ѿ)
			 - dimno      (ֹ)
			 - vartical   (ļ)
		       - nc ե°
			 - gt_graph_range
			 - toporogy
			 - modulo
			 - long_name
			 - units (unit)
			 - gt_graph_logscale
			 - positive
		       - ǡ
			 ѿ base_var μѿ dimno μѿ
			 ǡ

	             ===ܺ٤Ϥ===
		     - beginsub
		     - Open(this%var, base_var, dimno)
		       Ȥѿ base_var μֹ dimno 
		       ѿ this%var ֤.
		       (dimno == 0 ξˤ var ƱƤ
		        var ʣ,  this%var ֤.
			ܤ, ºݤ˸ƤФ륵֥롼
			GTVarOpenByDimOrd (gtvaropenbydimord.f90, 
		        doc/proc-open-gtvar.htm ) 򻲾ȤΤ)
		     - ľʿ vartical 
		       this%vertical = vertical Ȥ this ѿ
		       Ϥ.
		     - ξ岼侩ͤꤹ.
		       - get(this%var, values) Ȥѿ this%var
		         ͤ¿ݥ values(:) ˼.
		       - get_attr(this%var, "gt_graph_range", range)
			 Ȥ, this%var °̾ "gt_graph_range"
			 Ȥ¿ݥ range(:) ˼.
			 - get_attr  range 줿
			   (Ĥޤ, ѿ "gt_graph_range" °
			    äƤ) 
		           - size(range) .lt. 2 ξˤϥ顼֤
			   - size(range) .lt. 2 Ǥʤˤ,
			     this%lower=range(1) ; this%upper=range(2)
			     Ȥ.
			     
		         - get_attr  range ʤ
			   (Ĥޤ, ѿ "gt_graph_range" °
			    äƤʤ) 
			    
			   -  get_attr(this%var, "topology", topology)
			      "topology" °Ƥߤ.
			     - topology == "circular" Ǥ
			       - get_attr(this%var, "modulo", modulo, 0.0 )
				 Ȥ "modulo" °.
				 (ǥեͤȤ 0.0 ѰդƤ)
			       - modulo == 0.0 ξ
				 顼֤ƽλ.
			       - Ǥʤ,
				 this%lower = minval(values)
				 this%upper = minval(values) + modulo
				 Ȥ.
				 ʤ, minval κǾͤ
				 ФؿǤ.

				    Х?? 

				     ץ nc ե test2d.nc
				     Ǹ줿, ° topology
				      circular äƤ,
				     modulo ̵ˤϥ顼ˤʤ.
				     Ȥꤢ顼ˤ
				     values ͤϰϤ褦ˤ
				     ɤ褦ʵ.
			       
			     - topology == "circular" Ǥʤ,
			       ǡϰϤ.
			       - this%upper = maxval(values)
				 ʤ, maxval κͤ
				 ФؿǤ.
			       - this%lower = minval(values)
		       - deallocate(values)

		     - get_attr(this%var, 'long_name', this%title)
		       Ȥ, ° "long_name" κݤ
		       ȥȤ this%title ˼.

		     - get_attr(this%var, 'units', this%units)
		       Ȥ, ° "units" κݤ
		       ȥβդñ̤Ȥ this%units
		       ˼.
		       ʤ, "units" °̵ "unit" °
		       õ, ʤˤ
		       this%units = "units missing" .
		           
		     - this%logscale =  &
		         & attr_true(this%var, "gt_graph_logscale")
		       Ȥ, "gt_graph_logscale" °.
		       °ȤѿǤ, 
		        this%logscale .

		          Х?? 

			   ºݤ nc ե򤤤ä
			   gt_graph_logscale 򿿤ˤƤߤ,
			   ޤ椫.
			   ΤְäƤ?
			   DCL θƤӽФְäƤ?

		     - get_attr(this%var, "positive", positive)
		       Ȥ "positive" °ȤФ.
		       , this%negative = (positive == "down")
		       Ȥѿ negative ˿.
		       , ɸҤä֤ɤȤ
		       ե饰Ǥ.

		           Х 

			    -save °¸ gtgraph.nc ե
			    ʤɤ, "positive" °Ȥ "true" 
			    "false"(?) ꤵ褦,
			    ºݤˤϾ嵭Τ褦 "down" ̵
			    ϵդˤϤʤʤ.
			    
		           Х (̤) 

			    , ּդˤפȤΤ
			    ߤ gtview ǤľܥץȤ
			    ꤹ뤳ȤϤǤʤ餷.
			    ɬפʤлꤹɬפ뤬?

		     - this%drawn = .FALSE.
		       Ȥ, 2ɻߤ뤿Υե饰ꤹ.
		       (ޤ褷ƤʤΤ, .FALSE. )

		     - this%saved = ""
		       Ȥ, 2ť֤ɻߤ뤿Υե饰ꤹ.
		       (ޤ֤ƤʤΤ, ʸ)

		     - endsub
	             ==================


             GTVarOpenByDimOrd(var, source_var, dimord, &
	                                &  count_compact, err)

	       : gtvaropenbydimord.f90
	       : 1. var        <GT_VARIABLE> [out]
	                   {ѿ source_var μֹ dimord
			    ˤѿ var}
		     2. source_var <GT_VARIABLE> [in] {mapid}
		     3. dimord	   <ѿ>    [in] {ֹ}
		     4. count_compact <ѿ> [in]
		                         {༡뤫ݤ}
		     5. err <ѿ>           [out]{顼ơ}
		     
	       : ѿ source_var μֹ dimord ˤ
		     ѿ var 򿷤˺,  var ֤.
		     (dimord == 0 ξˤ source_var ʣǤ
		      var , ֤.)

	             ===ܺ٤Ϥ===
		     - beginsub
		     - dimord == 0 ξ
		       - map_dup(var, source_var) Ȥ,
			 source_var Ʊ var ʣ.

		         - var  source_var Ʊ

			     maptab(var%mapid)%map
			     maptab(var%mapid)%ndims
			     table(maptab(var%mapid)%vid)%class
			     antab(table(maptab(var%mapid)%vid)%cid)%fileid
			     antab(table(maptab(var%mapid)%vid)%cid)%varid
			     antab(table(maptab(var%mapid)%vid)%cid)%dimid

		         - var  source_var ǰۤʤ

			     var%mapid
			     maptab(var%mapid)%vid
			     table(maptab(var%mapid)%vid)%cid
			     table(maptab(var%mapid)%vid)%refcount
			 
		       - return
		       
		     - dimord /= 0 ξ
		       - map_lookup ؿ var 򳫤, dimord 
			 ɤμбΤ, Ȥ.
			  κݤ count_compact  .true.  .false.
			    ˤäƼֹΤȤ꤫Ѳ.
			    (.false. ʤ, व줿̵뤵)
		       - map_create ǤμѤο var .
		       - maptab(source_var%mapid)map(dimord)%****
			  maptab(var%mapid)map(dimord)%**** .
			 (ºݤˤ, map_set ؿ).
			 
		     - endsub
		     ===================


             GTContOpen(result, var)

	       : gtcontlib.f90
	       : 1. result  <GT_CONTOURS> [out]
	                  {Υ֥롼ǽ
			   Τι¤.
			   ι¤ΤϺɸξޤ}
		     2. var     <GT_VARIABLE> [in]   {mapid }
		     
	       : ΤγͤνԤ.
		     Ʊ˺ɸ⤪ʤ, 
		     ȤԤäƤޤ.
		     (ɤΤ褦ʾ󤫤꤬ԤΤ
		      GTAxisOpen . ʤ, GTAxisOpen Ϥ
		      ֥롼Ǥ GOpen ȤƸƤӽФ.)

	             ===ܺ٤Ϥ===
		     - beginsub
		     - Open(result%var, var, 0) .

		       η, ѿ var ʣ, 
		       ʣ줿Τ result%var ֤.
		       ʤ, var%mapid  result%var%mapid ϰۤʤ.

		         - var  result%var Ʊ

			     maptab(var%mapid)%map
			     maptab(var%mapid)%ndims
			     table(maptab(var%mapid)%vid)%class
			     antab(table(maptab(var%mapid)%vid)%cid)%fileid
			     antab(table(maptab(var%mapid)%vid)%cid)%varid
			     antab(table(maptab(var%mapid)%vid)%cid)%dimid

		         - var  result%var ǰۤʤ

			     var%mapid
			     maptab(var%mapid)%vid
			     table(maptab(var%mapid)%vid)%cid
			     table(maptab(var%mapid)%vid)%refcount
			     
		       ʤ,  Open Ǽºݤ˸ƤӽФΤ
		       GTVarOpenByDimOrd (gtvaropenbydimord.f90, 
		       doc/proc-open-gtvar.htm )
		       Ǥ.

                     - GT_CONTOURS ѿ˴ޤޤ, ʲѿ
		       .
		       
			 result%contours = .TRUE.
			 result%shade = .FALSE.
			 result%animate = .FALSE.

		     - allocate(result%h_axis, result%v_axis)
		       Ȥ, ɸΤι¤Τΰ
		        
		     - GOpen(result%h_axis, var, 1)
		       ȤƲѿ var μѿ 1 ˤ뼡
		       Ȥꤹ. ꤵ줿
		       result%h_axis ˳Ǽ.

		       ʤ,  GOpen ˤºݤ˸ƤФΤ
		       GTAxisOpen (gtaxis.f90, doc/gt_axis.htm )
		       Ǥ. ()

		     - Ʊͤ
		       GOpen(result%v_axis, var, 2)
		       ȤƲѿ var μѿ 2 ˤ뼡
		       Ȥꤹ. ꤵ줿
		       result%v_axis ˳Ǽ.

		          Х?? 

			   GTAxisOpen  5 ܤΰѿȤ,
			   ϼľʿɸȤʤ.
			   Ĥ嵭ǤϤΤ褦ꤷƤʤ.
			   Ĥ褤Τ?

		     - GT_LINEѿ˴ޤޤ, ʲѿ.
		         result%cint = 0.0
			 result%sint = 0.0
			 result%base = 0.0
			 result%icycle = 0
			 result%map = ""
			 nullify(result%srange, result%crange)
			 nullify(result%levels, result%skiplevels, &
			                               & result%tones)
	             - endsub
		     ==================

         === Load ξܺپϤޤ ===


	  GTDevOpen(dev, ws_id, err)
	 
	    : gtdev.f90
	    : 1. dev   <GT_DEVICE> [out]
	                    {ϥǥХ¤.
		             ѿ ws_id Τߤ}
		  2. ws_id <ѿ>  [in]  {ֹ}
		  3. err   <ѿ>  [in]  {顼ץ}

            : ΤΥեåǥХ򳫤.
		  ֹϤ ws_id , ⤷
		  gtgraph_com ⥸塼 gtdev_wsn_default
		  Ф.

		  եåǥХŸˤ dcl 饤֥꤬
		  Ѥ.

	          ===ܺ٤Ϥ===
		  - ѿ wsn , wsn = gtdev_wsn_default Ȥ,
		    gtgraph_com ⥸塼 ѿǤ gtdev_wsn_default
		    .
		    (gtdev_wsn_default  gtview ľܻꤵ.)

		       Х?? 

		        Τ褦ľܻꤹˡϤɤʤΤ?
			֥롼ˤľϤ
			ɤʤ?

	          - ws_id ϤƤ, wsn = ws_id
		  
		  - opened_wsn  0 ǤʤΤʤХ顼֤.
		    , ˥ǥХƤȤ
		    ⤦ĥǥХƤޤʤ褦ˤ
		    Ȼפ.

		  - wsn == 0 ξ

		    - wsn = DclSelectDevice()

		      ȤƻѲǽʥեåǥХɽ,
		      ǥХֹ򥳥󥽡뤫.
		      , 򤵤줿եåǥХֹ
		       wsn ֤.

		       DCL F90 󥿡եޥ˥奢 (󸻻)
			 ֥եåؿע֥ǥХ
			     DclSelectDevice 
			     
		    - gtdev_wsn_default = wsn Ȥ, gtdev_wsn_default
		      ˤȿ

		  - wsn == 3 ξ
		    dbg_scratch(.true.) Ȥ, dc_trace ⥸塼
		    dbg_scratch Ƥ.

		    dbg_scratch Ǥֹ 98 ΥǥХ򳫤ʤ
		    Ƥ뤬, ܺ٤ɤʬ餺.

		  - debug()  (Ĥޤ, setdebug ʤɤ dc_trace
		    ⥸塼 dbg ѿ 0 ʾˤʤäƤ) .

		    - glistx('MSGUNIT', dbg)  

		      ˤä, åϤֹ椬
		      dbg (̤ 0 ɸ) ꤵ.

		       glistx ˴ؤƤϲ
		    
		      === MSGUNIT  ===
		      MSGUNIT ϥåϤֹ
		      Ѥ.
		      
		         
			     dcl-f90-unix /ޥ˥奢
			       dcl-f90-unix/rc1_jp/parm/global/msgunit.htm
		      ===================

		  - debug() ξ.

		    - glistx('MSGLEV', 2) 

		      ˤä, ɸϤˤϥ顼å
		      ɽ.

		      === glistx  ===
		      glistx  dcl δؿΰĤ, dcl ѿ
		      () ѹ뤿ΤΤǤ.

		          1ܤΰ -- ѿ̾
			  2ܤΰ -- ѿ

		      פ˷̤Ȥ, "MSGLEV" Ȥѿ
		      "2" ꤵ.
		       MSGLEV ˴ؤƤϲ
			  
		         
			     dcl-f90-unix 
			       dcl-f90-unix/src/f77/sys_interface.f90

			   (ΤȤϼºݤ˥
			    ɤʤФʤʤ)
		      ===================
		      
		      === MSGLEV  ===
		      MSGLEV ϽϤå٥
		      Ѥ.
		      0 ʲʤ餹٤ƤΥ٥ΥåϤ.
		      1 ʤٹ, 顼åϤ.
		      2 ʾʤ饨顼åϤ.
		      
		         
			     dcl-f90-unix /ޥ˥奢
			       dcl-f90-unix/rc1_jp/parm/global/msglev.htm
		      ===================
		      

		  - DclOpenGraphics(wsn) Ȥ,
		    եåǥХ򥪡ץ󤹤.
		    ǥХֹ wsn ǻꤵ줿ΤȤʤ.

		       DCL F90 󥿡եޥ˥奢 (󸻻)
			 ֥եåؿע֥ǥХ
			     DclOpenGraphics 

		  - dev%ws_id = wsn
		    Ȥ dev <GT_DEVICE> ֹ椬.
		    ϼºݤ褹ݤ, ֤ɤΥǥХǽϤ뤫
		    Ȥ󸻤Ȥʤ.
		  
		  - opened_wsn = wsn
		    , ֹ wsn ǥեåǥХ
		    줿Ȥ򼨤ե饰, ⤦٥ǥХ
		    ʤ褦ˤ뤿ΤΤǤ.
		  ==================
		  

	  GTFigDisplay(dev, fig)
	 
	    : gtfigdisplay.f90
	    : 1. dev   <GT_DEVICE> [inout]
	                    {ϥǥХ¤.
		             ѿ ws_id Τߤ}
		  2. fig   <GT_FIGURE> [inout]  {ѹ¤}

            : fig 褹.
		  ºݤˤ GtFrameDisplay 褹.
		  
		  Υ֥롼 fig  dummy_frame 
		  Bind ,  GtFrameDisplay ϤȤ
		  ǽʤ.

	          === ܺ٤Ϥ ===
		  - beginsub
		  - Open(dummy_frame) Ȥ, dummy_frame 
		    . ʤºݤ˸ƤӽФ
		    ֥롼 GTFrameOpen (gtframe.f90) Ǥ.
		    
		    ʤ, dummy_frame  <GT_FRAMEѿ>Ǥ.

		  - Bind(dummy_frame, fig) Ȥ,
		    fig  dummy_frame Ϥ.
		    ܺ٤ϼºݤ˸ƤӽФ GTFrameBindFig ()
		    򻲾ȤΤ.

		  - Display(dev, dummy_frame) Ȥ,
		    dummy_frame ǥХ dev ˽ () .

		    ºݤˤϤ Display ֥롼ˤ
		    褬ʤ.
		    
		    ܺ٤ GTFrameDisplay (gtframe.f90) ȤΤ.
		  ====================		  


	  GTFrameBindFig(frame, fig)
	 
	    : gtframe.f90
	    : 1. frame <GT_FRAME>  [out]
	               {κݤ (Υڡɽ
		        ɥɽ) Τι¤
			GT_FIGURE 񤹤}
		  2. fig   <GT_FIGURE> [in]  {ѹ¤}

            : fig Ȥ frame Ϥ.
		  ( frame  fig ϤƤƤ, 
		    fig äƤ)

	          === ܺ٤Ϥ ===
		  - ޤ frame%figs  allocate Ƥʤ
		    (Ĥޤޤ٤ GTFrameBindFig ƤФƤʤ
		     )

		    - allocate(frame%figs(1))
		    - frame%figs(1) = fig
		    - frame%title = fig%title

		    Ȥ, fig ξƤ frame Ϥ.

		  - ˰ GTFrameBindFig ƤФƤ

		    - frame%figs(:) ΥĹ,
		       figs .

		    - title ˴ؤƤ
		      frame%title = trim(frame%title) // '/' // fig%title
		      Ȥ, åǶڤ򤤤
		      ä.
		  =======================

	  GTFrameDisplay(dev, frame)
	 
	    : gtframe.f90
	    : 1. dev   <GT_DEVICE>  [inout]
		  2. frame <GT_FRAME>   [inout]
	               {κݤ (Υڡɽ
		        ɥɽ) Τι¤
			GT_FIGURE 񤹤}

            : ѹ¤ frame%figs(:) (˳Ǽǡ) 
		  dcl 饤֥ˤäƲ̤褹.

		  dev ϥ顼ˤΤѤ, ºݤ˽Ϥ
		  ǥХˤϱƶʤ.
		  (ϤǥХ GtDevOpen  DclOpenGraphics(wsn)
		   ˤäƻꤵƤ, Υ֥롼
		   Ѥ dcl 饤֥, 
		   DclOpenGraphics ǻꤵ줿ǥХ˽Ϥ򤪤ʤ)

		  Υ֥롼 (˥᡼ޤ) 
		  ᥤ롼Ǥ.

	          === ܺ٤Ϥ ===
		  - DclSetParm('GRAPH:lfull', .TRUE.)
		    Ȥ, dcl ؿ lfull () 
		    ˤ.

		    === DclSetParm ===
		    DclSetParm  dcl ؿꤹ
		    ֥롼Ǥ.
		    嵭Τ褦Ѥ lfull Ȥؿͤ
		    .TRUE. ꤵ.

		    ("GRAPH" εҤΰ̣ϡĤޤ)
		    ==================

		    === lfull ===
		    lfull  dcl  sgpack ѤƤؿ,
		    SGFRM (2.4.2 Ỳ) ꤹơ
		    ӥ塼ݡȤǽϰϤäѤˤȤ뤫ɤ
		    ꤹ.

		        .TRUE.ΤȤäѤˤȤ
			.FALSE.ΤȤˤȤ

		     
			 dcl-f90-unix /ޥ˥奢
			   dcl-f90-unix/rc1_jp/parm/sgpack/lfull.htm
		    ================
		    
		  - DclSetFrameMargin(left=0.0, right=0.0, &
		                           & bottom=0.05, top=0.08)
		    Ȥ, ȤΥޡꤹ.

		       DCL F90 󥿡եޥ˥奢 (󸻻)
			 ֥եåؿע֥쥤ȡ
			     DclSetFrameMargin 

		       Х?? 

			?? 㤢, fill Ȥ ceil ץä
			ɤȿǤΡ?

		  - DclSetAspectRatio(x=1.0, y=0.6)
		    ȤƿޤΥڥꤹ.

		       DCL F90 󥿡եޥ˥奢 (󸻻)
			 ֥եåؿע֥쥤ȡ
			     DclSetAspectRatio 
			     
		  - title = GTStringQuoteForDcl(frame%title)
		    Ȥ, 3 ʸ, |, _, "פб
		    ɤ dcl ѿ ISUP, ISUB,
		    IRST ͤѹ.

		    frame%title ȤϴŪѹ줺 title 
		    .
		    (, title Ĺ 30 ʤΤ, ʾĹ
		     ʸ31ʸʹߤڤΤƤ)

		  - DclSetParmEX('GRAPH:INDEX',3)
		    Ȥ, 1٥ܤΥޡʸ
		    ʡޡΥ饤󥤥ǥꤹ (???)

		    === index ===
		    index  dcl  sgpack ѤƤؿ,
		    1٥ܤΥޡʸȥʡޡ
		    Υ饤󥤥ǥꤹ.  (???)
		    
		     1

		     
			 dcl-f90-unix /ޥ˥奢
			   dcl-f90-unix/rc1_jp/parm/sgpack/index.htm
		    ================

		    === 饤󥤥ǥ ===
		     DCL F90 󥿡եޥ˥奢 (󸻻)
		         ֥եåؿע֥饤
			     ֥饤: 饤󥤥ǥ 
		    ========================
		    
		  - DclSetParmEX('GRAPH:LCORNER',.false.)
		    Ȥ, ʡޡʤ褦ꤹ.

		    === lcorner ===
		    lcorner  dcl  sgpack ѤƤؿ,
		    ʡޡɤꤹ.
		    
		       .TRUE.ʤ饳ʡޡ.
		       .FALSE.ʤʤ.

		     .TRUE.
		    
		     
			 dcl-f90-unix /ޥ˥奢
			   dcl-f90-unix/rc1_jp/parm/sgpack/lcorner.htm
		    ================

		  - DclSetFrameTitle(title=trim(title), side='t', &
		     & x_position=0.0, y_position=0.0, height=0.03, num=1)

		    Ȥ, ȥԤ.
		    嵭Τ褦˻ꤹȰʲΤ褦˵Ҥ

		      ȥʸ:       title Ƥʸ
		      ȥ񤯾:   Top ()
		      ޡʸ: ʤ
		      ʸι⤵:	    0.03
		      ʣʸ񤯾,
		      ܤʸ󤬻ꤵ뤫:  1

		    ܤϰʲΥޥ˥奢򻲾ȤΤ

		       DCL F90 󥿡եޥ˥奢 (󸻻)
			 ֥եåؿע֥쥤ȡ
			     DclSetFrameTitle 
		    
		  - DclSetFrameTitle(title='gtool4/Fortran90', side='b', &
                     & x_position=-1.0, y_position=-1.0, height=0.01, num=2)

		    Ȥ, ޤκ˾gtool4/Fortran90
		    Ƚ񤭽Ф褦ˤ.

		  - DclSetFrameTitle(title='date:#date page:#page', side='b', &
		     & x_position=+1.0, y_position=-1.0, height=0.01, num=3)

		    Ȥ, ޤαȲڡܤɽ褦
		    . 

		  - 롼 (frame%figs(:) 褷,
		            ˥᡼󤬽λޤ)

		    - DclNewFrame

		      Ȥ, ʥե졼(ڡ)ꤹ.
		    
		       DCL F90 󥿡եޥ˥奢 (󸻻)
			 ֥եåؿע֥ǥХ
			     DclNewFrame 

		    - frame%first_figure = .TRUE.
		      Ȥ, ޤ褷ƤʤȤ򼨤
		      ե饰ΩƤƤ.

		    - 롼 (frame%figs(:) 褷ޤ)

		      - Draw(frame%figs(i), parent=frame)
			(i ϥ롼פβ)

			ˤä frame%figs(:) ˤ
			Ѥγƹ¤ (contours  line ʤ)
			 dcl 饤֥ˤä褹.

			ºݤ˸ƤӽФ륵֥롼
			GTFigDraw (gtfig.f90) Ǥ. ܺ٤
			򻲾ȤΤ

		      - frame%first_figure = .FALSE.
			ꤷ, ˰褷Ȥɽ
			ե饰ΩƤ.

		    - 롼׽λ

		    - all_reached_eof = .TRUE.
		      ˥᡼󤬽λ,
		      (Τˤ, ˥᡼󤹤뼡ѿ
		       Ǹã),
		      Ȥ򼨤ե饰Ȥꤢ .TRUE. 
		      ꤹ.

		    - 롼

		       ˥᡼δ!! 
		    
		      (frame%figs(:) ι¤ѿ var ¸
		       , वƤ뼡 count  allcount
		       礭ʤޤ)

		      - Option(frame%figs(i), "-next", "", err)
			Ȥ, figs(:) ι¤ѿ var
			¸뼡, वƤ
			(ǥեȤʤл t,
			 slice ꤵƤʤФμѿ)
			map(༡ID)%start ͤ
			1 Ŀʤ.

			ܤ, GtFigOption ȤΤ.
			(ǽŪˤ GtVarSliceNext (gtvarslicenext.f90)
			 ˹ԤĤ)

			 Х?? 
			
			  ʤ, Ǥ stride ʬʤ
			  褤ϤʤΤ?

	              - if (.not. err) all_reached_eof = .FALSE.
			Ȥ, err ʤ,
			(Ĥޤ, ޤ˥᡼󤬲ǽʤ)
			all_reached_eof  .FALSE. ˻ꤹ.

			all_reached_eof == .FALSE. ʤ
			褬ʤ.

		    - 롼׽λ (̤ Option ǽ༡1Ŀʤ)

		  - if (all_reached_eof) exit
		    Ȥ, all_reached_eof ʤ
		    (˥᡼󤬺ǸޤǸäʤ),
		    롼פȴƽλ
		      
		  - 롼׽λ (Ƥ frame%figs(:), 
		                ˥᡼轪λ)
		    
	          ==========================


	  GTStringQuoteForDcl(str) result(result)
	 
	    : gtstringquotefordcl.f90
	    : 1. str    <ʸѿ>   [in]  {ʸ}
		  2. result <ʸѿ>   [out] {ʸ (= str)}

            :  124
	              (|פбƤ, źΥ⡼ɤλϤޤ
		       򼨤ʸʸֹ),
		    95
	              (_פбƤ, źΥ⡼ɤλϤޤ
		       򼨤ʸʸֹ),
		    34
	              ("פбƤ, դӲź⡼
		       ν򼨤ʸʸֹ)
		       
		  Ƥ dcl ѿ

		    ISUP, ISUB, IRST

		  ͤ򤽤줾

		    191,  190,  197

		  ѹ.
		  ֹ ASCII ɤǤϻѤƤʤ.

		  ʤ,  str ϤΤޤ result ֤.


	          === ܺ٤Ϥ ===
		  - lfirst (δؿ save °ѿ)
		    ξ (Ĥޤ, ٤⤳δؿƤФƤʤ)

		    - DclSetParm('GRAPH:ISUP', MY_SUPERSCRIPT)
		    - DclSetParm('GRAPH:ISUB', MY_SUBSCRIPT)
		    - DclSetParm('GRAPH:IRST', MY_RESETSCRIPT)

		      Ȥ, ʲΤ褦 dcl ؿꤹ.

		          ISUP = 191, ISUB = 190, IRST = 197
			  
		  - result = str Ȥ str 򤽤Τޤ result Ϥ.
	          ====================
		    


	  GTFigDraw(fig, parent)
	 
	    : gtfig.f90
	    : 1. fig    <GT_FIGURE>  [out] {ѹ¤}
	                ° out ˤʤäƤΤ,
			  ¼Ū˥֥롼ѤΤ
			  ѿǤ.
			  (° out Ǥƥץफͤ
			   Ѿ).

                        Х?? 

		          out °äƤǤΡ?
			   
		  2. parent <GT_FRAME>   [in]
	               {κݤ (Υڡɽ
		        ɥɽ) Τι¤
			GT_FIGURE 񤹤}
			 ¼Ūˤ parent ɤΤ褦
			   ̤ȯΤ.

            : ѹ¤ fig ˴ޤޤ빽¤η, 
		  dcl 饤֥Ѥ褹.

		  ºݤ褵Τ

		    -  (ɬ)	fig%h_axis   <GT_AXIS>
		    - ļ (ɬ)	fig%v_axis   <GT_AXIS>
		    - 		fig%contours <GT_CONTOURS>
		    - ٥ȥ	fig%vectors  <GT_VECTORS>
		    - 		fig%line     <GT_LINE>

		  Ǥ.

		  gtview ǥ֥롼 Option Ǽޤ줿
		  ץã ( fig Τ줾ι¤Τ
		  ˼ޤ줿) Ϥ GTFigDraw ǸƤӽФ
		  Draw ֥롼ȿǤ뤳Ȥˤʤ.

		   aspect ץϤΥ֥롼Τ
		     .
		     ceil, fill, shift ⤽ͽ, ߤ
		     ȥȤ, ޤưʤ.

	          === ܺ٤Ϥ ===
		  - [顼] fig%h_axis, fig%v_axis 
				 ʤˤ, StoreError 
				 顼Ϥƽλ.
				 
		  - parent%first_figure == .false. ξ

		    - DclNewFig ǿʿޤꤹ.
		       DCL F90 󥿡եޥ˥奢 (󸻻)
			 ֥եåؿע֥ǥХ
			     DclNewFig 

		  - fig%aspect == 0.0 ξ
		    (Ĥޤ, ץ aspect ꤷʤ)

		    - vx0 = gt_figure_vxmin; vx1 = gt_figure_vxmax
		    - vy0 = gt_figure_vymin; vy1 = gt_figure_vymax

		      Ȥ. gt_figure_v****  gtgraph_drawparam
		      ⥸塼Ƥ¿ѿ,
		      ʲΤ褦˻ꤵƤ.

		      Ĥޤ, ǥեȤͤѤ뤳Ȥˤʤ.

		        <==============================================>
		        ! ޳դ(X)
                        real :: gt_figure_vxmin=0.2, gt_figure_vxmax=0.8
			! ޳դ(Y)
			real :: gt_figure_vymin=0.2, gt_figure_vymax=0.5
		        <==============================================>

			
		  - fig%aspect /= 0.0 ξ
		    (Ĥޤ, ץ aspect ꤷ)

		    - frame_width  = gt_figure_vxmax - gt_figure_vxmin
		    - frame_height = gt_figure_vymax - gt_figure_vymin

		      Ȥ, ޤ, ⤵ frame_*** ѿϤƤ.

		    - frame_height * fig%aspect > frame_width 
		      Ǥ, Ĥޤꥪץꤵ줿 aspect
		      ͤǥեȤΥڥ礭.

		      - vx0 = gt_figure_vxmin; vx1 = gt_figure_vxmax
			Ȼꤹ. ĤޤѤʤ.

		      - vy0 =  (gt_figure_vymin + gt_figure_vymax)/2 &
			      - frame_width / fig%aspect/2
			vy1 =  (gt_figure_vymin + gt_figure_vymax)/2 &
			      + frame_width / fig%aspect/2

			Ȥ. Ĥޤ⤵ aspect ˱ƤĤ֤
			Ȥˤʤ. 

		    - ץꤵ줿 aspect ͤǥեȤ
		      ڥ⾮.

		      - vy0 = gt_figure_vymin; vy1 = gt_figure_vymax
			Ȼꤹ. Ĥޤ⤵Ѥʤ.

		      - vx0 =  (gt_figure_vxmin + gt_figure_vxmax)/2 &
		              - frame_height*fig%aspect/2
			vx1 =  (gt_figure_vxmin + gt_figure_vxmax)/2 &
			      + frame_height*fig%aspect/2

			Ȥ. Ĥޤ aspect ˱ƽ̤
			Ȥˤʤ.

	          -  ceil, fill, shift ˴ؤ  
		     (ХĤʤ)        

		    ¤,  ceil, fill, shift ȿǤ
		    äΤ, ȥȤƤ.
		    (ݹʹʤʬʤ).

		  - DCLSetViewPort(vx0, vx1, vy0, vy1)
		    Ȥ, ӥ塼ݡȤԤ.

		      ӥ塼ݡ  פ, 褵ֿޡ
				      ΤΤȹ⤵?
					
		     DCL F90 󥿡եޥ˥奢 (󸻻)
		       ֥եåؿעѴ
			   DclSetViewPort 

		  - fig%h_axis%drawn = .FALSE.
		    fig%v_axis%drawn = .FALSE.
		    Ȥ, ޤ褷ƤʤȤ򼨤
		    ե饰ΩƤ

		  - Draw(fig%h_axis, fig%v_axis, parent=fig)
		    Ȥƺɸ褹.

		    ºݤ˸ƤӽФΤ GTAxesDraw (gtaxis.f90)
		    Ǥ. ܺ٤ϲ.

		  - associated(fig%contours) ξ

		    - Τξ󤬤Ȥ,
			
			  do, i = 1, size(fig%contours)
			      call Draw(fig%contours(i), parent=fig)
			  enddo

		      Ȥ, Draw  (ɤޤ)褹.
		      (Ͽޤ褹).
		      ʤ, ºݤ˸ƤӽФΤ GTContDraw
		      (gtcontlib.f90) Ǥ.
		      ܤϲ.

		  - associated(fig%vectors) ξ

		    - ٥ȥΤξ󤬤Ȥ,
			
			  do, i = 1, size(fig%vectors)
			      call Draw(fig%vectors(i), parent=fig)
			  enddo

		      Ȥ, Draw ǥ٥ȥ褹.
		      (Ͽޤ褹).
		      ʤ, ºݤ˸ƤӽФΤ GTVectDraw
		      (gtvectlib.f90) Ǥ.
		      ܤϲ. (ޤɤƤʤ)
			
		  - associated(fig%line) ξ

		    - Τξ󤬤Ȥ,
			
			  do, i = 1, size(fig%line)
			      call Draw(fig%line(i), parent=fig)
			  enddo

		      Ȥ, Draw դ褹.
		      ʤ, ºݤ˸ƤӽФΤ GTLineDraw
		      (gtlinelib.f90) Ǥ.
		      ܤϲ. (ޤɤƤʤ)

		  - endsub
	          ====================
		    

	  GTAxesDraw(h_axis, v_axis, parent, set_space)
	 
	    : gtaxis.f90
	    : 1. h_axis    <GT_AXIS>  [inout] {}
		  2. v_axis    <GT_AXIS>  [inout] {ļ}
		  3. parent    <GT_FIGURE>[in]	  {ѹ¤}
		  4. set_space <ѿ> [in]    {???}

            : ļ, ξ dcl 饤֥Ѥ
		  褹.

		  ʤ, gtview Υץ proj, stdlon, stdlat,
		  rotate ͤϤΥ֥롼ǲᤵ.

		  ޤ, nc եμѿ° negative, topology
		  ⤳Υ֥롼ǲᤵ.

	          === ܺ٤Ϥ ===
		  - [顼] parent%h_axis, parent%v_axis
				 Ƥʤ¨ return
		  - set_space  set_space_mode Ϥ.

		  - message("gtaxesdraw: h(%r %r) v(%r %r)", &
                           & r=(/h_axis%lower, h_axis%upper, &
			   & v_axis%lower, v_axis%upper/))
		    h_axis%lower, h_axis%upper, v_axis%lower, v_axis%upper
		     (ǥХå⡼ɻˤ) ɽ.

		  - DclSetParm('LABEL_HEIGHT1', gt_axis_label_height1)
		    DclSetParm('TITLE_HEIGHT1', gt_axis_title_height1)

		    Ȥ, Υ٥ () ʸι⤵
		    (Ĥޤ礭) ꤹѿ LABEL_HEIGHT1 
		    0.02 , Υȥ (̾) ʸι⤵
		    ꤹѿ  TITLE_HEIGHT1  0.02 ꤹ.

		      (gt_axis_*****  2 Ĥ gtgraph_drawparam.f90 
		       Ȥ 0.02 ꤵƤ)

		     
			 dcl-f90-unix /ޥ˥奢
			   dcl-f90-unix/rc1_jp/parm/uzpack.htm

	          - DclSetWindow(h_axis%lower, h_axis%upper, &
				 v_axis%lower, v_axis%upper)
		    Ȥ, ɥԤ.

		       DCL F90 󥿡եޥ˥奢 (󸻻)
			 ֥եåؿעѴ
			     DclSetWindow 

		  - select case(parent%projection) .
		    ƿޤ˱ƼνѤ.

		    - case (1:4)

		      - DclSetParmEx('INV_X_AXIS', h_axis%negative )
			DclSetParmEx('INV_Y_AXIS', v_axis%negative )

			Ȥ, ˤ뤫ɤ,
			INV_X_AXIS, INV_Y_AXIS ꤹ.
			(.true. ʤеդˤ).

			ʤ, ΤȤ (2003/08/17), ץʤɤ
			h_axis%negative, v_axis%negative ꤹ
			ˡ̵. (ɬפʤ?)
			
			 
			     dcl-f90-unix /ޥ˥奢
			       dcl-f90-unix/rc1_jp/parm/uspack.htm

		      - DclFitScalingParm ˤä, ꤵ줿
			󤫤, Ŭʥ󥰤Ѵ
			ѥ᡼.  (???)
			    
		         DCL F90 󥿡եޥ˥奢 (󸻻)
			   ֥եåؿעֺɸ
			       DclFitScalingParm 

		      - DclSetTransNumber(parent%projection)
			, Ѵؿֹ projection (ץ -proj
			ꤷ) ꤹ

		         DCL F90 󥿡եޥ˥奢 (󸻻)
			   ֥եåؿעѴ
			       DclSetTransNumber 

		      - local_draw_normal_axes
			Ȥ, ְŪʡ׺ɸ򵭽Ҥ.
			(dcl ΤޤɸѤ)

			, h_axis%drawn, v_axis%drawn  .true.
			ꤵ.

			ܤ, ʲ local_draw_normal_axes 
			ȤΤ.

			
		    - case (5:6)

		      - radius = min( gt_figure_vxmax-gt_figure_vxmin, &
                                    & gt_figure_vymax-gt_figure_vymin) &
				    & / 2 / h_axis%upper
		        Ȥ, radius ꤹ.
			ºݤ˿ͤ򤤤Ƥߤ
			  radius = (0.6 - 0.3) / 2 / h_axis%upper
			Ȥˤʤ.

		      - DCLSetSimilarity(radius, 0.0, 0.0)
			ȤѴΥ󥰥ե
			radius ,  x = 0.0, y = 0.0 
			ꤹ.

		         DCL F90 󥿡եޥ˥奢 (󸻻)
			   ֥եåؿעѴ
			       DclSetSimilarity 

		      - DCLSetTransNumber(parent%projection)
			, Ѵؿֹ projection (ץ -proj
			ꤷ) ꤹ.


		    - case (10:15)

		      - DCLSetTransNumber(parent%projection)
			, Ѵؿֹ projection (ץ -proj
			ꤷ) ꤹ.

		      - DCLSetMapContactPoint(parent%stdlon, &
		                   & parent%stdlat, parent%rotate)
				   
			Ȥ, ̤Ρפΰ٤
			parent%stdlat (ץ stdlat=*** ),
			٤ parent%stdlon (ץ stdlon=*** )
			Ȥ,
			ˤ, ϿƤʤ
			 parent%rotate (ץ rotate=*** )
			ꤹ.
			
		         DCL F90 󥿡եޥ˥奢 (󸻻)
			   ֥եåؿעϿޡ
			       DclSetMapContactPoint 

		      - DCLSetParm('MAP:LGLOBE', .true.)
			Ȥ, UMSTRF(?) Ѵѥ᡼ꤹȤ,
			褦ꤹ.

		         DCL F90 󥿡եޥ˥奢 (󸻻)
			   ֥ѥḁ̊ꥹȡעumpack
			       UM:LGLOBE 
			       
		      - DCLFitMapParm
			Ȥ, ϿƤѴؿΥѥ᥿
			Ŭڤ˷.

		         DCL F90 󥿡եޥ˥奢 (󸻻)
			   ֥եåؿעϿޡ
			       DclFitMapParm 
			
		    - case (20:23)

		      - DCLSetParm('GRAPH:stlat1', 45.0)
		      - DCLSetParm('GRAPH:stlat2', 30.0)

			Ȥ,  ???
			(Υޥ˥奢ˤ, 񤤤Ƥʤɡ?)
		      
		         DCL F90 󥿡եޥ˥奢 (󸻻)
			   ֥ѥḁ̊ꥹȡעsgpack
			       SG:STLAT1, SG:STLAT2 

		      - DCLSetTransNumber(parent%projection)
			, Ѵؿֹ projection (ץ -proj
			ꤷ) ꤹ.

		      - DCLSetMapContactPoint(parent%stdlon, &
		                   & parent%stdlat, parent%rotate)
				   
			Ȥ, ̤Ρפΰ٤
			ץ stdlat=*** ), ٤ ץ
			stdlon=*** ͤȤ,
			ˤ, ϿƤʤ
			򥪥ץ rotate=*** ͤꤹ.

		      - DCLSetParm('MAP:LGLOBE', .true.)
			Ȥ, UMSTRF(?) Ѵѥ᡼ꤹȤ,
			褦ꤹ.
			
		      - DCLFitMapParm
			Ȥ, ϿƤѴؿΥѥ᥿
			Ŭڤ˷.

			
		    - case (30:33)

		      - DCLSetTransNumber(parent%projection)
			, Ѵؿֹ projection (ץ -proj
			ꤷ) ꤹ.

		      - DCLSetMapContactPoint(parent%stdlon, &
		                   & parent%stdlat, parent%rotate)
				   
			Ȥ, ̤Ρפΰ٤
			ץ stdlat=*** ), ٤ ץ
			stdlon=*** ͤȤ,
			ˤ, ϿƤʤ
			򥪥ץ rotate=*** ͤꤹ.
			
		      - DCLSetParm('MAP:LGLOBE', .true.)
			Ȥ, UMSTRF(?) Ѵѥ᡼ꤹȤ,
			褦ꤹ.
			
		      - DCLFitMapParm
			Ȥ, ϿƤѴؿΥѥ᥿
			Ŭڤ˷.

			
		    - 嵭ʳֹ

		      - DCLSetTransNumber(1)
			, Ѵؿֹ 1 (פ, ǥե)
			ꤹ.

		      - local_draw_normal_axes
			Ȥ, ְŪʡ׺ɸ򵭽Ҥ.
			(dcl ΤޤɸѤ)
		      
		      
		  - select case λ

		  - DclSetTransFunction()
		    Ȥ, Ѵؿꤹ.
		  
		     DCL F90 󥿡եޥ˥奢 (󸻻)
			֥եåؿעѴ
			    DclSetTransFunction 

			    
		  - set_space_mode ξ

		    - get(h_axis%var, value) Ȥ, ʿμѿ
		      var Υǡͤ¿ݥ value(:)
		      ˼.

		    - get_attr(h_axis%var, "topology", topology)
		      Ȥ, var  "topology" °ͤ topology
		      ѿ˼.

		    - topology °ͤʬ
		    
		      - topology == "circular" ξ

			- DclSetXGrid((/value,h_axis%upper/))
			  ȤƼ¿ݥ value(:) + h_axis%upper
			  Ȥ DclSetXGrid Ϥ,
			  ʻγʻ X ɸ򤽤ͤꤹ.

			    (;) value = (/ 1.1, 2.2 /)
				   h_axis%upper = 10.0
				   ʤ, (/value,h_axis%upper/) 
				   (/ 1.1, 2.2, 10.0/) Ǥ.
				   
			   DCL F90 󥿡եޥ˥奢 (󸻻)
			     ֥եåؿע֥åɡ
			         DclSetXGrid 

		      - topology /= "circular" ξ

			- call DclSetXGrid(value)
			  ȤƼ¿ݥ value(:)
			  Ȥ DclSetXGrid Ϥ,
			  ʻγʻ X ɸ򤽤ͤꤹ.

		    - value(:) ̤ͤդ뤿 deallocate(value)

		    - get(v_axis%var, value)
		      get_attr(v_axis%var, "topology", topology)
		      Ȥ, v_axis%var Υǡͤ"topology"
		      °ͤ


		    - Ƥ, topology °ͤʬ
		    
		      - topology == "circular" ξ

			- DclSetYGrid((/value,v_axis%upper/))
			  ȤƼ¿ݥ value(:) + v_axis%upper
			  Ȥ DclSetYGrid Ϥ,
			  ʻγʻ Y ɸ򤽤ͤꤹ.

			   DCL F90 󥿡եޥ˥奢 (󸻻)
			     ֥եåؿע֥åɡ
			         DclSetYGrid 
				 
		      - topology /= "circular" ξ

			- call DclSetYGrid(value)
			  ȤƼ¿ݥ value(:)
			  Ȥ DclSetXGrid Ϥ,
			  ʻγʻ Y ɸ򤽤ͤꤹ.
		      
		    - value(:) Ϥ⤦ɬפʤΤ deallocate(value)

		  - set_space_mode ξ˹Ԥưλ

		  
		  - select case(parent%projection) 
		    ƿޤ˱ưѲ.

		    - case(5)  [˺ɸ]

		      - llnintsave=DCLGetLogical('GRAPH:LLNINT')
			Ȥ, ֤Υե饰Ǥ dcl 
			LLNINT ѿͤ llnintsave ˼.
			(ʤߤ, LLNINT νͤ .false.)

		         DCL F90 󥿡եޥ˥奢 (󸻻)
			   ֥ѥḁ̊ꥹȡעsgpack
			       SG:LLNINT׻

		      - index=DCLGetInteger('AXIS:INDEXT2')
			Ȥ, ɸʬ
			饤󥤥ǥꤹ dcl ѿ
			INDEXT2 ѿ index ˼.
			(ʤߤ INDEXT2 ΥǥեȤ 3)

		         DCL F90 󥿡եޥ˥奢 (󸻻)
			   ֥ѥḁ̊ꥹȡעuzpack
			       UZ:INDEXT2׻

		         DCL F90 󥿡եޥ˥奢 (󸻻)
		           ֥եåؿע֥饤
			       ֥饤: 饤󥤥ǥ 

		      - DCLSetParm('GRAPH:LLNINT',.true.)
			Ȥ LLNINT  .true. .

		      - DCLDrawLine((/h_axis%lower,h_axis%lower/),&
                                  & (/v_axis%lower,v_axis%upper/),&
			          & type=1,index=index)

			Ȥ, 桼ɸϤǽļ.

			 DCL F90 󥿡եޥ˥奢 (󸻻)
			   ֥եåؿע֥饤
			       DclDrawLine 

		      - call DCLDrawLine((/h_axis%upper,h_axis%upper/),&
                                       & (/v_axis%lower,v_axis%upper/),&
				       & type=1,index=index)

			Ȥ, 桼ɸϤǲ.

		      - DCLSetParm('GRAPH:LLNINT',llnintsave)
			Ȥ, ۤ .true. Ѳ LLNINT 
			᤹ͤ.

			
		    - case(10:15, 20:23, 30:33)

		      - DCLDrawLimb()
			Ȥ, Ͽޤζ () .

			 DCL F90 󥿡եޥ˥奢 (󸻻)
			   ֥եåؿעϿޡ
			       DclDrawLimb 

		  - return
	          =======================


	  local_draw_normal_axes
	 
	    : gtaxis.f90 (GTAxesDraw ֥롼)
	    : 1. ʤ  (ƥץѿľѤ)

            : dcl 饤֥ѤơְŪʡ׺ɸ
		  Ҥ.  axis%drawn  .true. ˤʤäƤ
		  ˴ؤƤϵҤʤ.

		  򵭽Ҹ, Ҥ axis%drawn  .true.
		  ꤹ.

	          === ܺ٤Ϥ ===
		  - ե饰 h_axis%drawn, v_axi%drawn Ǥ
		  
		    - xtitle = GTStringQuoteForDcl(h_axis%title)
		      ytitle = GTStringQuoteForDcl(v_axis%title)
		      xunits = GTStringQuoteForDcl(h_axis%units)
		      yunits = GTStringQuoteForDcl(v_axis%units)

		      Ȥ, h_axis  v_axis ˳ǼƤ
		      title  units 򤳤 GTAxesDraw 
		      ѿ Ϥ.

		    - DclSetTitle( &
		        & vchar(xtitle, len(xtitle)), &
			& vchar(ytitle, len(ytitle)), &
			& vchar(xunits, len(xunits)), &
			& vchar(yunits, len(yunits)))

		      ǺɸΥȥꤹ.
		      
		         DCL F90 󥿡եޥ˥奢 (󸻻)
			   ֥եåؿעֺɸ
			       DclSetTitle 

		      ʤ, vchar(xtitle, len(xtitle)) Ȥ줿,
		      xtitle  len(xtitle) ܤʸޤǤ֤.
		      Ĥޤ, xtitle(1:len(xtitle))  DclSetTitle
		      Ϥ뤳Ȥˤʤ.

		    - DclSetParm('AXIS:INNER', -1)
		      Ȥ򳰸ǤĤ褦ꤹ.
			       
		         DCL F90 󥿡եޥ˥奢 (󸻻)
			   ֥ѥḁ̊ꥹȡעuzpack
			       UZ:INNER 

		    - DclDrawScaledAxis()
		      Ȥ, dcl ˤޤɸƤ餦.

		       Х?? 

		        , 㤨 axis%logscale ˤʤä
			Ƥ, Ǻɸ񤱤ʤ󤸤
			ʤ?

			
		  - ե饰 v_axi%drawn Ǥ

		    - ytitle = GTStringQuoteForDcl(v_axis%title)
		    - yunits = GTStringQuoteForDcl(v_axis%units)

		      Ȥ v_axis ˳ǼƤ title 
		      unit 򤳤 GTAxesDraw 
		      ѿ Ϥ.

		    - DclSetTitle("", vchar(ytitle, len(ytitle)), &
			& "", vchar(yunits, len(yunits)))

		       y ɸΤ, ȥꤹ.
		      
		    - DclDrawScaledAxis(side="rl")
		      Ȥ, dcl ˤޤɸƤ餦.
		      ɸΰ֤ "rl" (Ĥޤ, §Ūˤϱ,
		      줬ʤ麸) ꤹ.


		  - ե饰 h_axi%drawn Ǥ

		    - xtitle = GTStringQuoteForDcl(h_axis%title)
		    - xunits = GTStringQuoteForDcl(h_axis%units)

		      Ȥ h_axis ˳ǼƤ title 
		      unit 򤳤 GTAxesDraw 
		      ѿ Ϥ.

		    - DclSetTitle(vchar(xtitle, len(xtitle)), "", &
			& vchar(xunits, len(xunits)), "")

		       y ɸΤ, ȥꤹ.
		      
		    - DclDrawScaledAxis(side="tb")
		      Ȥ, dcl ˤޤɸƤ餦.
		      ɸΰ֤ "tb" (Ĥޤ, §ŪˤϾ,
		      줬ʤ鲼) ꤹ.

		      
		  - h_axis%drawn = .TRUE. ; v_axis%drawn = .TRUE.
		    Ȥ, ˼򵭽ҤȤե饰
		    ΩƤ.

		  - return
		  ====================


	  GTContDraw(cont, parent)
	 
	    : gtcontlib.f90
	    : 1. cont    <GT_CONTOURS> [inout] {ѹ¤}
		  2. parent  <GT_FIGURE>   [in]	   {ѹ¤}

            : cont%var Υǡ, ޤ
		  ˿ɤꤷ.
		  (ƱϿޤԤ).

		  κݤ˼ netCDF °

		    - topology (: circular)
		       3600֤ɽ.

		  κݤ˲ᤵ륪ץ

		    - -shade, -noshade, -nocont
		    - srange=*, sint=*, interval=*    (ɤ)
		    - icycle=*, levels=*, crange=*, cint=*, interval=*,
		      skiplevels=*                    ()
		    - -map, map=*


	          === ܺ٤Ϥ ===
		  - beginsub
		  - Draw(cont%h_axis, cont%v_axis, parent, set_space=.TRUE.)
		    Ȥ, 桼֤ꤹ뤿˺ɸ (???)
		    
		  - Get(cont%var, buffer) Ȥ, Ȥ
		    ѿ var Υǡͤ2¿ݥ buffer
		    ˼.
		     ѿ var ΰ¸뼡, ˤޤǤ 2 
		       वƤϤǤ.
		       
		  - get_attr(cont%h_axis%var, "topology", topology) 

		    - topology == "circular" ξˤϰʲư򤹤

		      - allocate(buffer1(size(buffer,1)+1,size(buffer,2)))
			Ȥ, 1 ܤμΥ1礭.

		      - buffer1(1:size(buffer,1),:) = buffer
		        buffer1(size(buffer,1)+1,:) = buffer(1,:)
			Ȥ, 礭ݤ˽褿Ȥˤ,
			 1 ܤͤ

		      - deallocate(buffer)
			allocate(buffer(size(buffer1,1),size(buffer1,2)))
			Ȥ, buffer Υ1礭
			ľ.

		      - buffer = buffer1; deallocate(buffer1)
			buffer1  buffer Ϥ.
			
		  - get_attr(cont%v_axis%var, "topology", topology) 

		    - topology == "circular" ξˤϰʲư򤹤

		      - ŪˤϾ嵭Ʊ褦ư.
			, 礭Τ 1 ܤǤʤ,
			2 

		  - cont%shade , (ʤ, -shade ץ
		    -nocont ץ󤬤ĤƤ)

		    - set_shade_levels , ɤʬ٥Ԥ.
		      ץ srange, sint ͤϤΥ֥롼
		      ǲᤵ.

		    - DclShadeContour(buffer)
		      , 2ޤѥɤʬ.

		         DCL F90 󥿡եޥ˥奢 (󸻻)
			   ֥եåؿע֤̤櫓
			       DclShadeContour 

		    - draw_tonescale, ȡ󥹥Ŭ
		      . (ܺ٤Ϥޤ).

		    - 
		      
		  - cont%contours , (ʤ, -nocont ץ
		    ĤƤʤ)

		    - make_label_format(fmt, hi=maxval(buffer), &
		                                & lo=minval(buffer))
		      Ȥ, buffer (ѿ var 2ǡ) 
		      κ, Ǿͤ hi, lo Ȥ
		      make_label_format (GTContDraw ֥롼)
		      Ϥ, դ٥ν񼰤
		      fmt <ʸѿ> ֤Ƥ餦.

		      񼰤μ
		          fmt = "D"
			      = "(f5.0,tl1,' ')"
			      = "(f6.0,tl1,' ')"
			      = "(f7.0,tl1,' ')"
		       4 ĤǤ.

		      ܤϥ֥롼Υ.
		      ʤ, ΥǡCHVAL Ǥ褦
		      񼰻ͤͿ롣פȤäɽ뤬,
		       CHVAL ˴ؤƤϰʲ URL 򻲾Ȥ.

		        http://www.gfd-dennou.org/arch/dcl/dcl-f77doc/doc-new/misc1/node43.html
		 
		    - DclSetContourLabelFormat(fmt)

		      ˤĤ٥եޥåȤꤹ.
		      (֤)

		    - set_contour_levels()

		      Ԥ.
		      Υ֥롼, Υץ
		      ᤬ʤ, dcl 饤֥Ѥ
		      ꤬Ԥ.

		        - icycle
			- levels
			- crange
			- cint
			- skiplevels

		    - DclSetParmEX('CONTOUR:RSIZET',&
                           & gt_contour_contour_msg_height)
	              Ȥơ (䰦)

		    - DclDrawContour(buffer)
		      Ȥ褹 (֤)

		      
		  - deallocate(buffer) Ȥ, ǡͤ

		  - cont%map /= "" Ǥ
		    (ʤ, -map ꤫, map=**** Ȥä
		     ꤬ʤ줿)

		    - DclDrawMap(cont%map) Ͽޤ

		    - cont%h_axis%upper > 180.0 Ǥ,
		      ɥ򥻥åȤʤƺƤ
		      DclDrawMap(cont%map) Ͽޤ褹.

		      (ʤ, ϿޤΤȤ
		       ڤƤޤ)

		    - GTAxesDrawGrid(cont%h_axis, cont%v_axis, parent)
		      Ȥư, .

		      ʤ, , Τ
		      proj λ꤬ 1015, 2023, 3033 ξΤ
		      Ǥ.

		      ܤ GTAxesDrawGrid (gtaxis.f90) 򻲾ȤΤ

		    - endsub
		  ====================
		  

	  set_shade_levels
	 
	    : gtcontlib.f90 (GTContDraw ֥롼)
	    : 1. ʤ  (ƥץѿľѤ)

            : DclSetShadeLevel ɤʬ٥ꤹ.

		  ץ srange, sint ϤΥ֥롼
		  ᤵ.
		  (Τ, ɤʬ levels ᤹ͽ
		   , ޤ̤)
	    
	          === ܺ٤Ϥ ===
		  - lfirst = .TRUE. 
		  - lfirst == .TURE. ξ (ǤꤷƤ뤱)
		    - GLLSTX('LEPSL', .TRUE.)
		      Ȥ dcl ѿ LEPSL
		      (¿ͤӤȤ, ޤ᤿ȽǤ򤹤뤫
		       ɤꤹѿ. .TRUE. ʤ
		       ޤ᤿ȽǤ򤹤.)
		       .TRUE. ꤹ.
		      
		       DCL F90 󥿡եޥ˥奢 (󸻻)
			 ֥ѥḁ̊ꥹȡעglobal
			     GL:LEPSLe 
	            - lfirst = .FALSE. Ȥ.

		  - cont%srange  allocate Ƥ
		    (Ĥޤ, srange=1000,2000 ʤɤΥץͿ
		     )

		    - DclSetShadeLevel(cont%srange(1), cont%srange(2),&
		                                            & cont%sint)
		      Ȥ,

		        - ̤ʬ٥κͤ cont%srange(1)
			  (Ĥޤ, srange ץͿ줿ͤ
			  1. [] srange=960,1100 ʤ 960) ,

			- ̤ʬ٥κǾͤ cont%srange(2)
			  (Ĥޤ, srange ץͿ줿ͤ
			   2. [] srange=960,1100 ʤ 1100) ,

			- ɤλ cont%sint (Ĥޤ,
			  sint ץͿ줿)
			  Ϳ.

		           DCL F90 󥿡եޥ˥奢 (󸻻)
			     ֥եåؿע֤̤櫓
			         DclSetShadeLevel 
		      
		    -  levels ץɤʬѤ 
		       (ߤϥȥ)	       

		      levels ɤʬб褦Ȥ
		      ɤ񤤤Ƥ뤬, ߤϥȥȤƤ.

		  - cont%srange  allocate Ƥʤ
		    (Ĥޤ, srange=1000,2000 ʤɤΥץ̵)
		     
		    - DclSetShadeLevel(buffer, cont%sint)
		      Ȥ, ɤʬǡȤ buffer ,
		      ɤλȤ cont%sint Ϳ.
		  - cont%srange ˤʬλ
		  ====================
		  

	  draw_tonescale
	 
	    : gtcontlib.f90 (GTContDraw ֥롼)
	    : 1. ʤ  (ƥץѿľѤ)

            : ȡ󥹥롼Ĥ餷.
		  Ǥ gtview ޥɤϤץ
		  ϻѤƤʤ.

		  gtgraph_drawparam ⥸塼ΤĤ
		  ѿѤƤ.

		  ΤȤϡּưŪޤκ٤ʤȤ
		  ɤˤƤƤ륵֥롼פä
		  Ȥǳ䰦.
	        
	          === ܺ٤Ϥ ===
		  - itr = DCLGetTransNumber()
		    Ѵؿֹ򻲾Ȥ.
		    (פ, ۤ DclSetTransNumber ꤷ proj
		     ץͤƤӼФ.)

		         DCL F90 󥿡եޥ˥奢 (󸻻)
			   ֥եåؿעѴ
			       DclGetTransNumber 
		    
		  - DCLGetViewPort(vxmin,vxmax,vymin,vymax)
		    , ӥ塼ݡȤͤ򻲾Ȥ.
		    
		     DCL F90 󥿡եޥ˥奢 (󸻻)
			֥եåؿעѴ
			    DclGetViewPort 

		  - select case (itr) Ȥƿޤˤʬ

		    - case(1:4)

		      - DCLGetWindow(uxmin,uxmax,uymin,uymax)
			Ȥ, ɥͤ򻲾Ȥ

		         DCL F90 󥿡եޥ˥奢 (󸻻)
			   ֥եåؿעѴ
			       DclGetWindow 

		    - case(5:6)

		      - DCLGetSimilarity(radi,vxoff,vyoff)
			Ȥ, Ѵͤ򻲾Ȥ.

		         DCL F90 󥿡եޥ˥奢 (󸻻)
			   ֥եåؿעѴ
			       DclGetSimilarity 

		    - case(10:33)
	       
		      - DCLGetMapProjectionAngle(longitude, &
		                                  & latitude,rotation)
			Ȥ, ϿƤƳѤ򻲾Ȥ.

		  - end select

		  - UZPGET('ROFFXB',roffxb)
		    Ȥ, ɸΥ٥εΥ ROFFXB
		    (DCL ѿ)  roffxb ˼.

		  - nton = DCLGetShadeLevelNumber()
		    Ȥƥȡ٥ nton ˼

		  - itonl = min(gt_contour_tonescale_labelnum,nton+1)
		    Ȥ, gt_contour_tonescale_labelnum
		    (gtgraph_drawparam ⥸塼ˤ, ǥեȤ
		     ͤ, 6)
		     nton+1 ξ itonl Ϥ

		  - DCLSetViewPort( &
                     gt_contour_tonescale_vyloc, &
                     gt_contour_tonescale_vxloc + &
		        gt_contour_tonescale_vxwidth, &
                     gt_contour_tonescale_vyloc, &
                     gt_contour_tonescale_vyloc + &
		        gt_contour_tonescale_vywidth )

		    Ȥ, ӥ塼ݡȤ.
		    줿ͤƤ gtgraph_drawparam
		    ⥸塼ͤ, ǥեȤͤФ,

		    DCLSetViewPort(0.04, 0.27, 0.04, 0.06)

		    Ȥʤ.

		  - DCLSetWindow( 1.0, real(nton+1), 0.0, 1.0 )
		    Ȥ, ɥꤹ.

		  - DCLSetTransNumber(1) Ȥ
		    Ѵؿֹ 1 ˤ

		  - DCLSetTransFunction()
		    ȤѴؿꤹ.

		  - UZPSET('ROFFXB',0.0)
		    Ȥ, ɸΥ٥εΥ 0.0 
		    ꤹ. 
		      
		     DCL F90 󥿡եޥ˥奢 (󸻻)
			֥ѥḁ̊ꥹȡעuspack
			    US:ROFFXB 

		  - (ʲ, ޤǤΤǤ礤䰦)
			
		  ==================== 


			
 gtview ץ ()

    ̵

      ξ, gtool.ncץե򳫤Ȥ.
      ( ֤, ǥХåѡ?)

      
    ȤƤȤ NetCDF ե̾

      ̤Хѥ, Хѥ nc ե
      Ȥʳˤ, ʲΤ褦 URL ɽ nc ե
      Ȥ뤳ȤǤ.

	1: $ gtview file:///home/hogehoge/sample.nc
	2: $ gtview file:sample.nc

    aspect ץĤݤΥ顼å

      aspect 褵ޤΥڥѲ
      ץ, ü礭ޤϾͤͿ
      褵ʤ.

       ʤߤ aspect ΥǥեȤ aspect=2.0 Ǥ.
	 2003/08/17 Ĵ٤ȤǤ, aspect κͤ 2.3320
	 Ǿͤ 0.47250 Ǥ.

         Х 

	  κݤ˰ʲΤ褦ʥ顼åɽ뤬,
	  ꤬ aspect ץˤ뤳Ȥʬˤ.

	    Format error 101: Syntax error in format

	    Current Format:
	    (I*)            
	      ^
	    End of diagnostics
	  
	  ⤦äȤޤȤʥ顼å֤褦ˤ٤.
	  
	
    title ʸ

      title ץʸ, ɽΤ
       30 ʸǤ.

      ʤ, ΤȤ title ɽΤ 1 ХʸǤ,
      ܸʤ, 2 ХʸˤбƤʤ.
	
	
    ˤĤ, ˤĤ

      gtview ϸߤλͤǤ, gtool ѿˤĤ٤ѿ
      ˤĤ٤ѿ¸ߤ.
      §Ūˤ, ץ gtool ѿθˤĤʤ
      ̤ǤʤΤ, ĤΥץ
      gtool ѿˤĤʤФʤʤ,
      ˤĤƤ̤Ǥ.
      ΥץҲ𤹤.

         gtool ѿˤĤʤФʤʤץ

	    -vect
	    slice=<>=<ϰ>

	 gtool ѿˤĤƤˤĤƤ̤Ф륪ץ

	    -save
	    -batch
	    wsn=<ֹ>
	    -smooth    ( gtool ѿθ -animate ɬפ)
	    -nowait    ( gtool ѿθ -animate ɬפ)
	    -alternate ( gtool ѿθ -animate ɬפ)
	    title=<ޤΥȥ>
 
         Х?? 

	  ϤϤ, Х.
	  ޤ, ̤Ȥ, θ, ˥ץȤä,
	  Ǹ˥ե򳫤٤ʤΤȻפ.

	  GTOOL3  OPTARG ֥롼ǤäƤ뤫ͤ


    ޷ѿ¸

      -save ץդɽ줿޷޷ѿȤ
      gtgraph.nc ¸.
      ʤ, -batch ץǤƱ̤,  DCL ˤ
      褬޻ߤ.

         Х?? 

	   (ɤʬ޴ޤ) ξ -save ˤäƺ줿
	  gtgraph.nc  gtview ޥɤǻꤹ뤳Ȥ
	  Ʊͤʿޤɽ뤳Ȥ뤬,
	  դξˤϤ줬Ǥʤ. ɤ鼴˴ؤ
	  gtgraph.nc ˽񤭹ޤʤΤʤ褦.
	  (⤽, 줬ХʤΤɤȤȽʤΤ)

	
         Х?? 

          gtool ѿ sample@zeta,lon=100:200 Ȼꤷ, -save ˤä
	  gtgraph.nc Ƥ, ϰϸθ̤
	  gtgraph.nc ˸ʤ.
	  ĤϥХʤΤ?

	  ޤ, gtgraph.nc ,
 
	      $ gtview gtgraph.nc@gr1

	  ʤɤȤ褵뤳ȤϲǽʤΤ,

	      $ gtview gtgraph.nc@gr1,t=^2
	      $ gtview gtgraph.nc@gr1,lon=100:300
	      
	  Τ褦ϰϸϸ̤ɽʤ.
	  (ХʤΤʤ?)
	    

    ϰϸ굡ǽ 1

      ޤǤΤƤϰϸˡ, 㤨 t  10000  30000
      ޤǤǽϤȻפʤ

        $ sample.nc@<ѿ>,t=10000:30000

      Ȥʤ. Ǥοͤ netCDF οͥǡ˰¸Ƥ.
      㤨,  sample.nc ǡѿ t 

	    t = 0, 8640, 17280, 25920, 34560, 43200;

      äƤ, 嵭λˡ 0, 8640, 17280, 25920 
      ڤɽ뤳Ȥˤʤ.

      , ä t ξ, ϰϻꤹ뤿ˤ虜虜 netCDF ǡ
      Ĵ٤ϰϤĴ٤פȤɬפˤʤ뤳Ȥ¿.
      ʾΩ

           ʻֹ(?)ˤϰϸˡ

      . ºݤλˡϰʲ̤

        $ sample.nc@<ѿ>,t=^3:^6

      ȳʻֹ(?) 3  6 Υǡ, Ūˤ
      t = 17280, 25920, 34560 ξνϤ򤪤ʤ.

      ʤ, 1ܤΥǡбΤ ^1 Ǥ.
      (^0  ^-1 ȤƤ⥨顼ϽФʤ, ̤ ^1 Ʊ)

      嵭ˡȤȡ3ڡʬ餤˥᡼󤷤
      ʤɤȤ (ĤɤΤʬʤ) Ω.

      嵭Τ褦ʻǤ lon  lat ξϤդ
      ݤˤʤ뤬, Τ褦 slice ѤˤϷ빽
      ʤ.

          $ gtview slice=lon=^1 sample.nc@zeta -animate 

      
      

       б륵֥롼ޤǤΤߤΤ  (, Ĺ (;) )

	 gtview (load)  gtdata_generic (interface load  GTObjLoadC)
	  gtobjectopen (subroutine GTObjLoadC  call Open)
	  gtdata_generic (interface open  subroutine GTVarOpen)
	  gtvaropen.f90 (subroutine GTVarOpen  call limit)
	  gtdata_generic (interface limit  subroutine GTVarLimit)
	  gtvarlimit.f90 (subroutine GTVarLimit  call limit_one)
	  gtvarlimit.f90 (subroutine limit_one  call region_spec)
	  gtvarlimit.f90 (subroutine region_spec)
	           Υ֥롼˾嵭 
	           б뵭Ҥޤ
	     
    ϰϸ굡ǽ 2  (÷黻)

      Ϥθ򤪤ʤݤ, ʲΤ褦˼ˡign:
      ȤĤˡ.

        $ sample.nc@<ѿ>,ign:t=10

      Τ褦ˤ, 嵭 t=^10 Τ褦ʷ̤.
      ʤ, ign:t=10:20 Τ褦ˤƤ, 10 ޤǤͤ
      ɤ߹Ǥ館ʤ, 嵭Τ褦ʻƱͤ
      ̤Ȥʤ.

         εǽʤΤˤΤ.
      
       б륵֥롼ޤǤΤߤΤ  (, Ĺ (;) )

	 gtview (load)  gtdata_generic (interface load  GTObjLoadC)
	  gtobjectopen (subroutine GTObjLoadC  call Open)
	  gtdata_generic (interface open  subroutine GTVarOpen)
	  gtvaropen.f90 (subroutine GTVarOpen  call limit)
	  gtdata_generic (interface limit  subroutine GTVarLimit)
	  gtvarlimit.f90 (subroutine GTVarLimit  call limit_one)
	  gtvarlimit.f90 (subroutine limit_one)
	           Υ֥롼˾嵭 
	           б뵭Ҥޤ


    levels=****,****,****,

      levels ǻꤵ줿ͤ.
      -noshade ץͿƤϸ̤ȯʤ.
      (ͽǤϤ)

      levels ˤ icycle, crange, cint ̵ˤʤ.
      

    skiplevels=****,*****,*****

      skiplevels ǻꤵ줿ͤϰʤ.
      levels ̤.
      

    icycle=***

      ˥٥դΤꤹ.
      (ꤷʤ 2 դ褦ˤʤ)

      ʤ, levels ˤ̵.
		   

    cint=***

      ܰ륪ץ (ˤưѤ)

        - 10 ܤ
	  gtview ***.nc cint=-10

	- ʹֳ (ʲǤ 1.5e-5) 
	  gtview ***.nc cint=1.5e-5

      levels, crange ꤵƤ̵.
	  
    sint=***

      cint οɤ (ˡƱ)

    int=***, interval=***

      cint, sint Ʊ.
      
    crange  (crg)

        crange=1.23e2,2.4e3

      Τ褦˻ꤹ, 1.23e2  2.4e3 ϰֳ֤˶ڤä
      .
      (ֳ֤ˡפ빽ݥ. ޤ깭ϰϻꤹ,
       ֳ֤礭ʤäƤޤ. cint ȤޤȤ߹碌 good)

      1ܤ2ܤΰ򾮤ȥ顼֤.

      levels ꤵƤ crange ̵ˤʤ.
      crange ˤ cint ̵ˤʤ.


    srange  (srg)

      crange οɤ


    -smooth  ޤ -Gaw

      ưŪ˳餫˥˥᡼󤹤.
      ºݤˤ -nowait (ޤ -Gw)  -alternate (ޤ -Ga)
      碌


    -nowait ޤ -Gw

      ưŪ˥˥᡼󤹤뤬, β̤˰ܤݤ
      ޤޤ褹뤿ᤢޤʤ.


    -alternate ޤ -Ga

      κݤ, Хå饦ɤǺ褵, 褬ޤ
      ޤβ̤ɽޤޤʤΤ, 餫˥˥᡼
      ǽǤ.


    -exch

      Ƚļ򴹤Ǥ.
      (ʤ aspect ȤʻѤǽ (, Ȥʤ))


    proj=****

      ƿˡѲ.
      ѤǤɸ˴ؤƤϰʲ򻲾ȤΤ

        http://www.gfd-dennou.org/library/dcl/dcl-f77doc/rc1/grph1/node7.html

      ºݤ˿޼ƤΤʲ˺ܤäƤ.

        http://www.gfd-dennou.org/library/dcl/dcl-f77doc/rc1/rakuraku/node61.html


      Ȥͤ,

        1,2,3,4,5,6,10,11,12,13,14,15,20,21,22,23,30,31,32,33

      Ǥ.
	

    stdlat

	stdlat=145
   
      Ͽޤ濴٤ꤹ. (ñ̤ϡ).
      ǥեȤϿƤǤϤΰϽϤ̤
      ƶڤܤʤ, ʲοͤ proj ץ
      ꤹ, ϿƤξˤϸ̤Ф.
      
        10, 11, 12, 13, 14, 15, 20, 21, 22, 23, 30, 31, 32, 33
      

      
    stdlon

	stdlon=80

      stdlat η٥С

      
    rotate

	rotate=100

      Ͽޤž. ,
      stdlon, stdlat ̤ϿƤξ˸̤Ф.


    mark=<>, mark=<ʸ1>

      ɽκݤ, ˰Ĥ.
      ʤ, бʸȤƥץåȤ,
      ʸ1ĤͿϤʸȤƥץåȤ.
      

    range=<¿>,<¿>

      ɽκݤ, y ɽϰϤꤹ.
      ¿ 2 ĥåȤǻꤷʤ̵.


    map=<ޥå̾>

      طʤˤϿޤɽǤ.
      ܺ٤

        http://www.ep.sci.hokudai.ac.jp/~daktu32/grad/gtool4_how2.html

      򻲾ȤΤ

      ʤߤܼդ٤ɽʤ,

        $ sample.nc@<ѿ>,lat=30:45,lon=115:155 map=coast_japan

      Ȥȥå


    slice=<ѿ>=<>

      -animate Ʊ˻ȤȤǸ̤ȯ

      ̤ -animate ץǤ t Υ˥᡼󤷤
      뤳ȤǤʤ, Ѥ lat, lon, x, y Ȥä
      ؤΥ˥᡼򸫤뤳ȤǤ.
      <ѿ>  lat, lon, x, y ʤɤͤ򤤤.
      <>Ŭʳͤ򤤤Ȥ饢˥᡼
      Ȥ.

      ʤ, 嵭 slice  2 ĤʤäϺǸ˻ꤷ
      ΤΤߤͭˤʤ.

        

	   $ gtview slice=lon=0 sample.nc@zeta -animate

	Τ褦ˤ,  lat, ļ t  lon  1  64 ()
	إ˥᡼󤹤ư򸫤뤳ȤǤ.

        (Х??)
	, ʲΤ褦˻ꤹ, ϰϸŪʷ̤Ϥ,
	˥᡼ˤʤʤ.
	
	   $ gtview slice=lon=0:100 sample.nc@zeta -animate
	
      
    -vect, -Ve

      ٥ȥɽԤΥץ.
      ٥ȥɽˤϰʲΤ褦ʽ񼰤ǽɬפ.

          $ gtview -vect vect.nc@u vect.nc@v


      - ˥᡼

	˥᡼ɽޤƱͤ˻ꤹ.

	  $ gtview -vect vect.nc@u vect.nc@v -animate

         Х1 

	  ΤȤϥ˥᡼ɽǤ.
	  gtool4-beta/src/gtfig.f90  GtFigOption 
	  ֥롼 internal_next_slice 
	  fig%vectors ˴ؤ뵭Ҥ­Х˥᡼󤬲ǽˤʤ.

	   , Τ褦ˤ, ٥ȥ
	     ޤŤͤƥ˥᡼󤵤ݤ,
	     ˻ꤷѿΥȤ®٤ 2 ܤ
	     ʤäƤޤ, ɽʤ.

	     (פ, 餽ǥХȯ. )


      - ϰϻ

	ϰϻϰʲΤ褦ˤʤ.

	  $ gtview -vect vect.nc@u,lat=10:45,lon=100:160 \
	      vect.nc@v,lat=10:45,lon=100:160 -map skip=1

	̣˽פʤΤ skip=1 Ǥ. 줬̵
	顼ˤʤäƤޤ.
	  
         Х2 

          㤨, skip=1 ̵Ȥ, Ŭˤޤ褦ˤ
	  ɬפ.

	  
      - 

	̤˥٥ȥ񤭽ФˡޤƱ.

	  $ gtview -vect vect.nc@u vect.nc@v proj=30

	 Х3 

	  , proj=30 ξˤ, 豣Ƥʤ
	  ʤʤ, ΢̤Υ٥ȥޤǽ񤭽ФƤޤ.
	   (ϤޤƤ褦) 
	  ͤˤ, ǥХåɬפ.


      
    hskip=<>, (hs=<>)
    vskip=<>, (vs=<>)
    skip=<>,  (sk=<>)

      ٥ȥɽγʻҴְhʿvľskip ξ
      (, -vect Ʊ˻ꤷʤ̵)

        : $ gtview -vect vect.nc@u vect.nc@v skip=5




        
 gtview ץ (ͽ?)

    ϰϸ

      ϰϤꤷƽϤ,

         $ sample.nc@<ѿ>,t=10000:30000

      
      
         $ sample.nc@<ѿ>,t=^3:^6

      Ȥäˡ뤬, 

         $ sample.nc@<ѿ>,t=^1:^10:^2

      Ȥ뤳ȤǤ餷.
      , ޤ

          ^1, ^2, ^3, ^4, ...

      ɽƤΤ

          ^1, ^3, ^5, ...

      ɽ餷. ĤΤȤޤʤ.
      

      
    first_figure

      Ūʥե饰 (˥᡼κݤ˼٤񤫤ʤ)

      
    fill=<¿>, -fill=<¿>, fil=<¿>

      ӥ塼ݡȲ, ǥեȤ 0.55

      
    shift=<¿>, -shift=<¿>, shf=<¿>

      ӥ塼ݡ濴ΰ濴Ȥκ, ǥեȤ 0.025

      
    ceil=<¿>, -ceil=<¿>, cel=<¿>

      Ūʿ޷ü, ǥեȤ  0.65

       ˭Ļ ۩־嵭 3 Ĥݹˤäƽ񤫤줿ΤǤ

      
    -next

      ˥᡼μΤ¸ߤ, ŪѤ.
      ޥɥ饤󥪥ץȤƻꤹ̵̣.
      




 gtool4 ޥɥե󥹡?

    gtcopy <ʣ̸ѿ̾> <ʣѿ̾>

      1: gtcopy src.nc@zeta dest.nc

	  src.nc  zeta ѿ˴ؤȰ¸뼡ѿ
	  dest.nc ˽񤭹ޤ.

	  Ūˤ, 1. , 2. ѿ°, 3. ѿ°,
	  4. ѿǡ, 5. ѿǡ ԡ.
	  ( dest.nc ˰¸뼡(ѿ)󤬤ˤ
	   ԡʤ. 夫­ˤϽ­ѿ
	   󤬽­ nc μȰפʤФʤʤ)

	    :
		dimensions:
			lon = 64 ;
			lat = 32 ;
			t = UNLIMITED ; // (11 currently)

            ѿ°:
		variables:
			float lon(lon) ;
			        lon:long_name = "longitude" ;
			        lon:units = "deg." ;
                        float lat(lat) ;
                                lat:long_name = "latitude" ;
                                lat:units = "deg." ;
                        float t(t) ;
                                t:long_name = "time" ;
                                t:units = "sec." ;

	    ѿ°:
                        float zeta(t, lat, lon) ;
                                zeta:long_name = "vorticity" ;
                                zeta:units = "1/s" ;

	    ѿǡ:

                 lon = 0, 5.625, 11.25, 16.875, 22.5, 28.125, 33.75, ...
                       ...

                 lat = -85.76058, -80.26878, -74.74454, -69.21297, ...
                       ...

                 t = 0, 50000, 100000, 150000, 200000, 250000, ...
                     ...
	    
	    ѿǡ:
	    
		 zeta = 
		  -1.530323e-05, -1.528165e-05, -1.528876e-05, ...
		     -1.545125e-05, -1.552483e-05, -1.559008e-05, ...
		     ...


      2: gtcopy src.nc@zeta dest.nc@psi

	   src.nc  zeta ѿ°ѿǡ
	   dest.nc  psi Ȥѿ˽񤭹ޤ.
	   (ѿ°ѿǡȤѤʤ)

	   
      3: gtcopy src.nc@u,t=0:20000 dest.nc

	   src.nc  u ѿ, t=0  t=20000 ϰ
	    dest.nc ˥ԡ.

	   
    gtavg [dim=ʿѤȤ뼡̾] [out=ʣѿ̾] <ѿ̾>

      1: gtavg dim=lon out=avg.nc src.nc@psi

	   src.nc ѿ psi  lon() ʿѲΤ
	   avg.nc ȤƽϤ.
	   , Ϥ줿 avg.nc ˤϼ lon ¸ߤʤ.
	   

    gtattr

      - $ gtattr sample.nc@lat -delete=topology

	sample.nc μ lat ˤĤƤ° "topology" .

      - $ gtattr sample.nc@t units=sec.

	sample.nc μ t ° "units" Ĥ,
	 "sec." ꤹ.
	(sec. ʸȤƳǼ.)

      - $ gtattr sample.nc@lon -type=double modulo=360.0

	sample.nc μ lon ° "modulo" Ĥ,
	 "360.0" ¿()ꤹ.
	ʤ, °ƤΤ -type=double Ǥ.
	ǤΤ,

	  float		¿ (ñ)
	  double	¿ ()
	  int		
	  char		ʸ

	Ǥ. (¾ˤ short, long ͤƤ褦
	ư)
	ʤߤ˥ǥեȤ -type=char Ǥ.

	 Х 

	  ΤȤ, -type <°̾=°> ˤĤʤ
	  ưʤ. 狼ꤺ餤ɤˤɡ.


    gtavg

      - $ gtavg dim=lat out=avg.nc sample.nc@zeta

	sample.nc ѿ zeta 򼡸 lat ʿѲ
	Τ avg.nc ˽񤭽Ф.

	 lat Ͻव.

	 Х 

	  ΤȤ, lat ʿ
	  ŤߤĤƤʤ.
	  GTOOL3 򻲹ͤˤ, ŤĤ褦ˤͤ.
	
	 Х?? 

	  gtool4/netCDF ˤ subgrid °Ͻ񤭽Фʤ
	  󤫤ͤ?
	   		     
	    
 ѥλ (Build, Compile, Link, Excuse)

    ĥ

      .a	饤֥
      .f90	Fortran 90 ե
      .o	֥ȥ⥸塼ե


    ¹ԥեΥޥ

        $ ifc -o testing sample.f90

      test.f90 ˥顼̵, testing Ȥ¹ԥե뤬
      .
      (-o ץѤʤ, a.out Ȥ¹ԥե뤬)


    ֥ȥ⥸塼륳ޥ

        $ ifc -c sample.f90

      , sample.o ȸե뤬.
      ʤ, ץ椬⥸塼ʤ,
      SAMPLE.mod ե뤬.


    ֥ȥե󥯤Ƽ¹Բǽץˤˡ

        $ ifc -o testing sample.o

      , testing Ȥ¹ԥե뤬.
      (ñˤʤ, ifc -o testing sample.c ȤäƤ뤳Ȥ
       ƱǤ)


    ⥸塼եؤΥѥꤹ

        $ ifc -I /usr/lib/gtool4-ifc7/include -o testing sample.c        

       -I ǻꤵ줿ǥ쥯ȥʲ .mod ե
       ɤ߹िѤ.


    ƥ饤֥ؤΥ

        $ ifc -o testing sample.f90 -lX11 -lm

      Ǥ, X11 (եå) 饤֥ [/usr/X11R6/lib/libX11.a]
       m (ͱ黻) Υ饤֥ [/usr/lib/libm.a] 
      ɤ߹Ǥ.
      ʤߤ gtool4 Ǥ, ʲΥץ

          -ldcl52f90 -ldcl52f77 -lSM -lICE -lX11 -lm -lnetcdf

      ˤ, /usr/lib/dcl-5.2-ifc7/lib/libdcl52f90.a (& libdcl52f77)
      [dcl-f90, dcl-f77],
      /usr/X11R6/lib/libSM.a (& libICE.a)
      [åޥ͡, 󥿡饤ȥ],
      /usr/local/ib/libnetcdf.a [NetCDF]
      򤵤ɤ߹褦ˤʤäƤ.
      (gtool4-beta/Config.mk ).

      
    ʬκ饤֥إ

        $ ifc -o testing sample.f90 -L/usr/lib/dcl-5.2-ifc7/lib -ldcl52f90

      ʬ־, -L ץǥѥꤹ.
      -l<饤֥>  -L<ѥ> ɬפ.
      

    饤֥ () ˡ

        $ ar rfv libsample.a sample1.o sample2.o sample3.o 

      Τ褦ˤ뤳Ȥ, sample*.o ե뤬 libsample.a
      ե˳Ǽ.
      libsample.a ϴŪ, Ǽ .o եã
      ʤΤ, Ȥ libsample.a 󥯤뤳ȤǤ,
      *.o ãȤ߹ȤƱˤʤ.
      (ץξܺ٤ ar(1) 򻲾ȤΤ)


    饤֥ΰ

        $ nm libsample.a

      , libsample.a ե˴ޤޤ륪֥ȥե
      ɽ.
      ܺ٤ϳ䰦.


    Portability Library Ȥ߹

        $ ifc -Vaxlib -o testing sample.f90 

      嵭Τ褦 -Vaxlib ץĤ,
      Intel Fortran  Portability Library ȸƤФ
      饤֥ѤǤ.
      ο iarg ʸ getarg
      Ȥä褦Ȥ߹ߴؿϤΥץĤʤ
      ѤǤʤ.

      ѤǤؿ˴ؤƤϲΡ־󸻡פ

        Intel(R) Fortran Compiler for Linux*
	    - When To Link To the Portability Library

      򻲾ȤΤ.

      
    ٹ̵ 

        $ ifc -w -o testing sample.f90 

      

    ʸ

      Eric Foster-Johnson, Τ椭ޤ, 1999:
      UNIX Tools ꡼ -- UNIX ץߥ󥰥ġ.
      Ʊ˼, 289. ISBN4-88135-799-9


 ̤Υե˽񤭹ޤ줿ؿǥѥ뤹ˡ

    ؿΤߤ򵭽Ҥ .f90 ե

      ----

	integer function order2(a, b) result(result)
	  integer:: a, b

	  result = a**b
	end function order2
        
      --ʴ--

      
    ֥ȥե˥ѥ

        $ ifc -c order2.f90

	
    ⥸塼եѰդ, Ǵؿץ
      Ϥ interface .

      κݤˤ, ץफϤ˴ؤƤ
      ϹԤʤФʤʤ.

      ----
       
        module orders

	  interface

	    integer function order2(a, b)
	      integer:: a, b
	    end function order2

	  end interface

	end module orders

      --ʴ--


    ⥸塼ե򥳥ѥ

        $ ifc -c orders.f90


    ץ򥳥ѥ

      ٤ؿƤӽФ褦ʼץ
      ¹Բǽʷ˥ѥ뤹.
      κݤդʤФʤʤΤ,
      ʲ 2 Ǥ.

        1) ⥸塼ե ORDERS.mod Ф
	   -I ץǥѥꤹ

	2) ѥоݤȤʤեϼץǤʤ,
	   ؿδޤޤ줿 order2.o (ޤϤΥե뤬֤줿
	   *.a ե) ꤹ
  
      Ȥ, ORDERS.mod  ./module/ ʲ,
      order2.o  ./lib/ ʲ֤Ƥʤ,
      ץϰʲΤ褦˥ѥ뤻ͤФʤʤ.

        $ ifc -o <¹ԥե̾> -I ./module <ץ̾> ./lib/orders.o



 ˭ĤȤΥǥå

   ʲ, ޤ 2003/07/09 IUGG Τƻ˭ıѻʤȤ
   ǥåΥ񤭤Ǥ.

    GTOOL3 (f77 ǵ) (?)

       ֥롼ѿ 6 ʸǤ񤱤ʤ
	 ɤΤ.


   
    GTOOL3  gtool4 μ谷ǡΰ㤤

      gtool4 Ϥʤߤ NetCDF Υե (& ¾?)
      򰷤ΤФ,
      GTOOL3 Ǥ NetCDF ˤϰ¸, Fortran 
      ǡ񤭽ФƤ.
      Υǡħ

         3 ޤǤΥǡ򰷤
           (4 ʾ̵)

           Τ, ƤϤ 3 ֤ x, y, z
           ѤƤޤ.
           Ǥ, ּ t ϤɤΤ?
           ɤƤΤȤ, 1 쥳 1 쥳ɤ
           1 ֥ƥåפȤƼ谷äƤ.

              1 쥳 -- Fortran Ǥ, 1 ٤ǽ񤭽ФΤ
			      ֥쥳ɡפȸƤ.
    			      Ĥޤ, ץ
			      3 񤭽ФԤäΤʤ,
			      ˤ 3 쥳ʬȤȤǤ.
			 
           Ҥ뤫Τʤ, Τ,
           ʲ.

	      ʿѤȤ뤿ΥץȤ,
	        ʿѤȻʿѤǤۤʤˡȤʤƤ
	        ʤʤ.
	   

         ư ӥåendian, ȥendian ˤ,
           ¸.

         2 ĤΥǡ­碌륢르ꥺब
           ʷ & ñǤ狼䤹.
           (NetCDF ˤ history 伡󤬴ޤޤ
            뤿, 虜虜ȢפѰդʤͤ
            ǼǤʤ.)
           GTOOL3 ϡ֥إåפȡ֥ǡפΤߤǤǤƤ.

			
       gtool4  NetCDF 
      
         ¿ǡ谷Ȥǽ
     
           ˤ, ּ t ֤μƱ褦
           ȤǤ, ʿѤȤ뤿Υץ
           ڤ˰ȤǤ.

	   ޤ, 󥵥֥¸򤹤ʤɤˤμΰĤ
	   Ȥä 5 ǡȤ뤳ȤǤ
	   (줾Υ󥵥֥ӤñˤǤ褦ˤʤ)
     
         ʵŪǤ.
     
           Τ, ΥǡɤäǡʤΤ狼
           ǤϤΤ, ǡ§黻ǰκݤˤ, 
           ΡּʵŪǡפμ谷ʤʤɤ.
     
         ¸ʤ
     
           ƩŪǤʤΤ, ϥӥåendian  ȥendian
           ˴ؤƤ, intel compiler Υץ
           ɤǤȤ褦ˤʤäƤ, ɬ
           ̯ʤΤˤʤĤĤ.

	         
    GTOOL3, gtool4 

      1.  (, ɽ)

	 ¸ߤǡ (GTOOL3 ʤ GTOOL3 ˤäƺ줿
	 Fortran ǡ, gtool4 ʤ NetCDF ) 
	 褹.

	 κݤˤ GTOOL3, gtool4  DCL Υ饤֥ 
	 Ѥ.

	 , gtool4 ξ NetCDF Υե򳫤
	 netcdf_f77 饤֥ nf_open ʤɤѤ.

	 - طޥ
	   GTOOL3: gtcont, gtvect, gtcurv, gtmark, gtscat, gtshow(ɽ)
	   gtool4: gtview, gtprint(ɽ)
	 
      2. 

	 ¸ߤǡ (GTOOL3 ʤ GTOOL3 ˤäƺ줿
	 Fortran ǡ, gtool4 ʤ NetCDF ) 
	 §黻Ǥ, ϤԤ

	 ξ, gtool4 ξ NetCDF Υե򰷤
	 netcdf_f77 饤֥Ѥ.
	 
	 : p ɸ  ɸˤƤߤ

	 : T, p 鲹̤̤ǽ񤫤줿ǡ.

	 : ʿѲƤߤ
						ʤɤʤ...
						
	 - طޥ
	   GTOOL3: (§黻) gtadd, gtsub, gtmlt, gtdiv, gtsqr, 
		   (ʿѲ)   gtavr
		   (絤ʪ) gthydo, gtslp, gtstrm, gtrelh, ....
	   gtool4: (§黻) gtbinary [2黻], gtunary [ñ黻]
		   (ʿѲ)   gtavg
		   (絤ʪ) ΤȤ, ̵ 
	     
      3. 絤ǥ󥰤ˤ̤Υǡ

	 ºݤοͽǥ (㤨, spmodel) η̤嵭 1, 2 
	 谷褦ˤ.

	 GTOOL3 ǤϡĤɤäƤΤ褯狼ʤ.
	 ΤΥ饤֥ѰդƤʤä褦ʤΤ,
	 줾οͽǥ˥ϡɥɤƤ?

	 gtool4 Ǥ gtool_history Ȥ饤֥Ѥ,
	 ͽǥη̺ NetCDF ե
	 , °, history ʤɤ˾󤬽񤭹ޤ
	 褦ˤʤäƤ.

	 Ĥ, Ĥ gtool_history θ̤ϤǤϤʤ.
	 ܺ٤ϰʲ
	 
	 
    gtool_history 

       gtool_history ȤƹͤƤǡǥ

         =============================================================
         ͭ¤ 3  x (or lon), y (or lat), z

	     

	 ̵¤ 1  t

	  NetCDF  1 Ĥϰ̵¤μƤ
	    㤨д¸ spmodel  sample Ǻä *.nc ե
	    ncdump ǸƤߤ,
	 
		dimensions:
			lon = 64 ;
			lat = 32 ;
			t = UNLIMITED ; // (21 currently)

	    ȤʤäƤ, lon, lat ϴ˸ꤵƤΤ
	    t  UNLIMITED ȤʤäƤ, ˲ä­Ȥ
	    Ǥ뤳Ȥ狼.
         =============================================================

       䳵
      
	 NetCDF ⤯, 㤨¿ǡ ڤФ,
	 ̤ΤߤڤФꤹʤ, ͡ʤȤǤ.
	 , ʬοͷ׻Ǥ, 嵭ǹͤƤ褦
	 ǡǥ뤷갷鷺, NetCDF ϺȤ
	 ˻ʤΤˤƤޤ.

	 gtool_history Ϥ NetCDF 碌,
	 ݿͷ׻Ѥò. (, ͤñ㲽)

	 פ, ͤڤФǸʤ, ִ֤ˤ,
	 x (or lon), y (or lat), z ϳʻҤƤȤ,
	 t ˴ؤƤϤͤΤߤȤ褦ˤ.
	 (ʣλ֥ƥåפͤ񤭽Фˤ,  t 
	  ä˼Υƥåפ t عԤäƽ񤭽Ф,
	  Ȥ򷫤֤.  gtool_history Υ֥롼
	  HistorySetTime ˤäƹԤ)
	 
	 
       ŪʻȤ

	 spmodel ʤɤ򻲹ͤˤʬ䤹,
	 ʬץ gtool ⥸塼Ƥ,
	 HistoryCreate ֥롼ƤӽФ.

	 , ϥե̾(file), ȥ(title),
	 (f90)ե̾(source), (institution),
	 (dims), (dimsizes), ̾(longnames),
	 ñ(units), ֤ε(origin), ɽֳִ(interval)
	 ꤹ뤳Ȥ, Ϥ nc եˤξ
	 񤭽Ф.
	 Τۤˤ, HistoryPut ѿǡ,
	 HistoryAddVariable ѿ° (ñ̤伡̾)
	 Ϳ.

	 
    ¸Ū GTOOL3 ν

            SUBROUTINE GPXRDC
           I         ( HHEAD , GDATA , IXSEL1 , IXSEL2 ,
           I           HEDIT , HETTL ,
           O           HHEADO, GDATAO                    )

      f77 Ǥ f90 Τ褦 intent(in)  intent(out) ̵.
      Ǿ¸ϲΤ˷³ԤΤΰʸ
      (5ʸܤ˽ʸ) ȤäƤɽ.

          I:       (= intent(in))
          O:       (= intent(out))
          M:     (= intent(inout))

      󤳤ʸưˤϰڱƶʤ.


	 
    ե

      GTOOL3 Ǥ /var/spool/gt3-dcl5/ ʲ
      ּեפʤΤ.
      κݤɬɬפˤʤΤǤ.

      Υեˤ⤤Τ (ܺ٤ϡ˺줿)
      Ȥ, ֥ǡȼեȤ˥åȤǻ⤫ʤ
      ʤʤפȤ꤬.
   

    Fortoran θĹʸ C βĹʸ

       Fortran ʸѿ

	 ɬĹꤷʤФʤʤ.
	 ⤷⤽⾯ʤʸˤ
	 Ĥƥڡ.

       C ʸѿ

	 Ĺꤹɬפ̵.
	 ưȽ̤.
	 Ƚˡ

	     NUL ʸä餽ǽ

	 Ǥ. , ʸѿ NUL ʸޤ뤳ȤϤǤʤ.


       ˭Ĥε᤿

	 ˭Ĥ Fortran ǲĹʸĤȤ.
	 줬

	    VSTRING

	 Ȥ̾ηι¤ΤǤ.
	 , ɤ Fortran Compiler ΥХˤᤶʤä.

	 ޤ, ǿ Fortran Compiler ˤĹʸ򰷤
	 ⥸塼뤬ѰդƤ뤬, Υ⥸塼Ȥ
	 ݤޤ޳ʤ֥꡼פȤ
	 ꤬ȯ뤿, ¼ŪˤϻȤʪˤʤʤ.

	 # Ĥ, ˭Ĥ󤬸ˤ, Τˤεǽ,
	   ¾ˤäȥƥ꤬ä󤸤ʤ,
	   ΤۤΤȤϤ򤤤줿褤ġˤʤä󤸤
	   ʤ, ȤȤä.
	   # . ץ饤ƥä񤷤.

	 ܤϰʲ򻲾ȤΤ.

	   http://www.gfd-dennou.org/arch/gtool4/gtool4-beta/doc/lib-string.htm

	   
    GTOOL3/gtavr     gtool4/gtavg

      GTOOL3  gtavr (ʿѲԤץ) ϰʿѤ
      Ԥݤ, ٤ˤäƽŤߤդƤ, gtavg Ǥ
      ԤäƤʤ.
      ä gtavg ˤʿѤϵ̤ǤϵʿѤȤˤ
      ŬڤǤ.

       㤨, ƻȰ60ǤϳʻҴֳ֤ۤʤ뤿
	 ­碌ΤƱǳäΤǤʤ.

   
    Fortran  C Υ

       ᥤ Fortran ץफ C Υ饤֥ɤ߹Ȥ
	 ȤŪ¿ԤƤ.
	 - ģǤϤ褯˭Ĥ󤬤ȤäƤ
	 - dcl ⸵ C (?)

       , Fortfan  C 󥯤ˤ
	 Fortfan Compiler ɤΤΤˤäƵҤۤʤΤ
	 դʤФʤʤ.

	 :  SUBROUTINE SUBפȤ֥롼 C 
	        Υ֥롼 Fortran 󥯤ƻѤ.

	   - Ω, HP

	     void SUB();
		   ʸǤʤФʤʤ

           - Sun

	     void sub_();
		   ʸǺǸ˥СĤ

	   - IBM, XL Fortran
	          
	     void sub();
		   ʸ

           - GNU

	     ̾:  void sub_();
			  ʸǺǸ˥С

	     ֥롼̾˥СäƤ:
	     㤨, ֥롼̾ sub_rout Ȥʤ,

	            void sub_rout__();
				   Ǹˤ⤦ĥСդ.
		  

       Τ褦, 󥯤ϤѤפ뤿,
	 桼ȤǤߵ⤯Ƥޤ.
	 Makefile ɤ߹褦 Config ե
	 פ¿ߵ㤯뤳ȤǽǤϤ뤬.


	 
    §黻 unit 򰷤

      GTOOL3  gtool4 θλ§黻롼Ǥ,
      NetCDF γѿñ (units) ° ΥݡȤޤǤϤƤʤ.

        1: ® u, v [units='m/s'] 
	     ñμ m [units='kg/(m**2)']
	     ݤ碌뤳ȤñΥͥ륮
	     K (=m * (u**2 + v**2)/2) 뤬,
	      gtbinary ʤɤǰˤ [units] 
	     黻Ϥ줺, ԡ.

        2: 2Ĥι٥ǡ h1 [units='10km']  h2 [units='10m']
	     ­碌ñ̤Υå (顼Ϥʤ)
	     Ԥʤ.
	     

       gtool4 ܻؤ

	 [ȴ٥]  (ޤɸ)

	   "m"  "m"    "m  m"

	   "m  m"  "1/s"  "m  m  1/s"


	   "10km"  "10m"   "10km  10m"
	   
	 [ǽɸ]

	   "m"  "m"    "m**2"
	  
	   "m**2"  "1/s"  "(m**2)/s"
	   
	    
	   "10km"  "10m"   顼 ñ̤äƤޤ
				         or
			       "10m"  ("10km" ͤ  10**3 
				       ­碌)


       BNF ɽ  (Backus-Naur Form)

	 units  := 
		    ** 

	      := ñ * ñ
		   ñ / ñ
		   ñ

	 ñ := (units)
		      ||
		   (̾ñ)

	  ν񼰤ᤷƤΤȤ, Cʤ yacc,
	    GNU(?) ʤ bison ʤ륽եȥ.



	   
    ɽ֥롼

      src/regex.f90 ˤ˭Ĥɽ֥롼󤬤.
      , Fortfan Ǥɽ򥵥ݡȤƤʤ.

       ץΰ

	 *פΤ褦ɽǤ̤ΰ̣ʸ
	 ̤Ƥʸ(?)ʲΤ褦˳ƤƤƤ.
	 
		SYM_STAR = 503
      

       ̤ݡ
      
	 , ʲ 2 Ĥ˴ؤƤϥݡȤƤʤ.
	 (ݡȤ뤳Ȥͥ٤Ϥޤ⤯ʤ)

	   (branch)

	    : [A|B]
		A ޤ B Ȥʸ˥ޥå

	  ѥ򵭲᥿饯

	    : $rev_name =~ s/([A-Z][a-z]+) ([A-Z][a-z]+)/$2 $1/

	 
	      
    gtool4 ˷礱Ƥ
   
       GPTOOL 

	 GPTOOL Ȥ
	   ֤ netCDF ѿƱѿ
	 귿Τ, ȤƤ

	   -  n ष
	   -  n  1/2 ʻҤ򤺤餹

	 ʤɤ.

	 줬̵ gthydro  gtslp 絤ʪ̤
	 ޥɤ뤳ȤǤʤ.


       OPTARG 

	 ޥɥ饤󥪥ץν򤹤Τ,

	   ޥɥ饤
	   		          NAMELIST
	    ʸͷ 

	 ȤƤ.

	  ĤȤ, ⤽ gtview ΥץΤȤ
	    ͤȤ٤⤷ͤ.

	 
	   
   
    絤ʪ̤谷ޥ

      GTOOL3 Υޥ: gthydo, gtslp, gtstrm, gtrelh, ....

      ˭Ĥ۩, 餬ȵݲ󤬻Ȥ,
      ȤꤢȤΤˤʤ󤸤ʤ? ȤΤ

      , , ʪ̤Υå
      (»ͤΰȤ) ȹͤɤ, ɤ,
      ȤꤢϻȤΤȤ褦ˤȤΤ.

      ʤߤ GTOOL3 ǤϤؤΰƤʤĤ?

      - (gtview )
	gtool4 ϵǤʤ, Ȥä
	ͷ׻оݤˤƤ뤿, GTOOL3 ۤɴñǤϤʤ.

	줾Ȥ˥ѥ᥿(?)ۤʤ뤿,
	̤η׻򤵤ͤФʤʤ.
      
   


    GTOOL3 λ§黻 gtadd     gtool4 λ§黻 gtbinary

       եκΰ㤤

	 - GTOOL3/gtadd
	 
		     GFREAD  إå1
	   ե1	       GPFADD إå1 GFWRIT
			     ǡ1  è        ե()
			     إå2          ǡ(1+2)
	   ե2	      
			     ǡ2

	   ħ: ǡϤΤޤ­碌, إåϰܤ
		 եΥإåΤޤްѤ.
		 嵭Τ褦, եκ˴ʷ
      
   
	 - gtool4/gtbinary ()
	 
		 եȢ.
							 (ex , °)
	             GET    ǡ        Fortoran		   
	   ե1 real  û		   
					 è ǡ  ե
			     ǡ	         
	   ե2 real  
			     

	   ħ: netCDF εҷ, f90 ǲǽˤʤäƱΤ
		 §黻ΤˤäƥǡΤϴñ­ (or  etc.)
		 Ǥ褦ˤʤä.
		 , եˡּʵŪץǡѰդ
		 ɬפ뤿, ǡˤȢѰդ
		 ɬפ.
		 (gtbinary ǤϤΡȢ׾ե1 Ƥ)
      
   
       롼פκݤΥ르ꥺΰ㤤

	 - GTOOL3/gtadd

	   loop
	      (إå,ǡ):= ե뤫ɤ߼
				(ɤʤä齪λ)
	      
	   end

	   ħ:  1 쥳, 1 쥳˥ǡ򰷤.
		    (եν, Ĥޤǡ¸ߤʤ쥳
		     ä, λ)
		  ñʤ, ۤȤɤΥǡ˻ȤȤ
		    Ǥ.
		  ǡ礭, ե뤬ʤ
		    Ǥ, 1 쥳ɤꤵ
		    ׻ǽ.
		 

	 - gtool4/gtbinary

	   Open(var)   ! var ˤϼ¼Ūˤ file .
	   Limit(var)  ! ϰϤŬ˾
	   loop
		Get(var, array)	            ! var Ŭ˾줿 
		      (ɤʤä齪λ)  ! array .
		      
		slice_next(var)	  ! 
	   end

	   ħ:  gtadd  1 쥳 ξǤ
		    Limit Ŭ˾줿 1 ֥å(?) Ǥ.
		  ĤΥǡˤʤäƤޤäƤ netCDF
		    ǡ Limit ȤäƺڤˤƤ
		  ǡ礭, ե뤬ʤ
		    Ǥ, Limit ǡŬˡ׾줿
		    1 ֥åΥз׻ǽ.
		  ĤǤäƤⰷȤϲǽ.
		    
		 


    gtool_history  gtdata  gt_map  an_file  NetCDF

      gtool_history	 put/get ˰ֻ
           		 礭ϼĹ or 1
	   
         gtdata		 Slice    Scan-Next Ȥä
	   		   λ֥ƥåפ˰ư
	   
	 gt_map		 뼡򸫤ʤ (ܺ)
	   
	   
	 an_file	 ѿ   
	   		 ѿ	  ե
	   		 ʸ°ɤ	  ͷ
	   
         netCDF
	   		

    ץ tone=***

      񤷤餷ϲǽǤ礦, ȤΤ
			
   
    줫 gtool4 ȯ

       ïȤ?


       ץ饤ƥʤ   




	 
                             

    gtool4 ץ

      http://www.gfd-dennou.org/arch/gtool4/

      
    gtool4 Fortran90 library/tools
      (塼ȥꥢ, ե󥹥ޥ˥奢)

      http://www.gfd-dennou.org/arch/gtool4/gtool4-beta/doc/

      
    gtool4 塼ȥꥢ -- gtool4Ǯӹ߱γ!!
      (: ͸ )

      http://www.ep.sci.hokudai.ac.jp/~daktu32/grad/main.html

    ϵήǾ饤֥ (DCL)
        F90  HTML ɥ: 󥿡եޥ˥奢 (ܸ)

	  http://www.gfd-dennou.org/arch/dcl/dcl-f90/rc1_jp/
      

    IUGG 2003 SW05
        GTOOL: I/O Library and Analysis Tool for Gridded Data
							    Eizi TOYODA
      http://www.gfd-dennou.org/arch/prepri/2003/iugg/gtool/poster/note-iugg2003.html
      
    Ǿ davis ץ [᡼ꥹȥȻˡ]

      http://www.gfd-dennou.org/library/davis/ml/

    GTOOL3ޥѤμ   (¸  (numaguti@nies.go.jp))

      http://www.riam.kyushu-u.ac.jp/taikai/labs/Gtool/Guide.html

    ɸॳǥ󥰥롼 (˭)

      http://dennou-t.ms.u-tokyo.ac.jp/seminars/gfdsemi/2001-08-22/muroi/src/siryou/coderu~1.htm

      netCDF

      http://radar.sci.hokudai.ac.jp/~kato/computer/netCDF/

    FORTRAN  NetCDF 桼ޥ˥奢

      http://www.gfd-dennou.org/arch/netcdf/netcdf-jman/works/

      
    Intel(R) Fortran Compiler for Linux*
        - When To Link To the Portability Library

      http://www.intel.com/support/performancetools/fortran/linux/portability.htm

       嵭Υڡդ뤭äȤʤäڡ
	 http://wwwfs.acs.i.kyoto-u.ac.jp/~t_kono/html/memo.html#intel_f90

	 
    ʸ, ˭ıѻ

      http://www.gfd-dennou.org/arch/zz1998/mozi/zengaku.html


    Fortran ե

      - Fortran 90 Function
	http://www.rs.kagu.tus.ac.jp/yama/f90/f-mst.html