   ή«ηɽʬ(ְ켡)λȯŸοͷ׻
			 1996/06/26 Ƿ 

 ͡ ƣ湧¢ ``ήϳؤοͷ׻ˡ'' (ǲ, 1994)
	  齬ѤλΥΡ ( nl ꡼)
	  齬ƥȡֿͷ׻, 4

  (06/26)

   åˡˤ켡ʬοͥߥ졼

      ή, 
		  ή, 
		  KdV
		  Ȼ

     ࡧ ή()ʬ, 
	        ʬ(FTCS), 
	        Lax-Wendroff

     Ū

	    u/t + f/x = 0,

       

         ή:    f=cu            (c=1˸ꤷƤ)

	 ή:  f=u^2/2

	 KdV:  f=u^2/2+͢^2u/x^2  (ͤϥץѤ)

	 Ȼ: f=-͢u/x  (ͤϥץѤ)

 make λ

    ¹Էե̾ main.out Ǥ뤬, makeλˤ
    ƽե뤬ۤʤ:

    % make, make all

    ǥեȤǤή庹ʬǲ򤯥ץˤʤ. 
    ͥեå׻륵֥롼ؤ, ̤η׻򤹤
    ˤʤ. Υ֥롼̾ϥޥ SUBNFX ǻꤵ(
    եͤNAUSCC). ޥѹ make Υץǽ
    . Sunξ

    % make SUBNFX=NALWCC

    ʤɤȤФ褤. SUBNFXؤȤȥѥ뤷ľ褦
    ˤƤΤǤ¿. 

    ǻꤵ륵֥롼 numflx.f ƤΤǻȤ
    . 

    ʤ, Υ֥롼ꤷƥѥ뤹륿åȤѰդ
    . 

    % make kdv

    Ǥ Kdv  Lax-Wendroff ǲ򤯥ץब. 
    뤳Ȥ make SUBNFX=KALWCC ƱǤ. 

    ǥ쥯ȥ꡼Τݽ

    % make clean

    ǽ. 

 ץ¹Ԥλ

    Ūˤ

    % main.out

    ȤФ褤. ĤΥѥ᥿ϥޥɥ饤󥪥ץѹ
    . 㤨, 

    % main.out -mn:dtdx=0.2 -mn:nmax=2000 -mn:nstep=10 -mn:fact=2 \
      -mn:init=1 -sb:rnu=0.02

    ѥ᥿ƤˤĤƤϼ¹Իɽå򻲾Ȥ. 
    ʤ -mn:init ϥᥤץƤĤνͤ
    ǻꤹ륪ץǤ. ŪȤϥץ򻲾Ȥ. 

    ps ե뤿ˤ

    % main.out -sg:iws=2

    ȤФ褤. 

 ɽŪʼ¹

    - ή

      * ή()ʬ

         (ct/x) ᣱ (ϲ)
        % make SUBNFX=LAUSCC && \
          main.out -mn:dtdx=1 -mn:nmax=60 -mn:nstep=1 -mn:init=4

        0.5
        % make SUBNFX=LAUSCC && \
          main.out -mn:dtdx=0.5 -mn:nmax=20 -mn:nstep=1 -mn:init=4 -mn:fact=0.5
	  κʬˡϥ༫ΤֿǴפ񤷤ˤʤäƤ. 
	  ΤѤʤޤ. Ͼ׷Ȥ˥ߥ졼Ȥ
	  Ωġή򻲾ȤΤȡˤ, С
	  򤭤ȥߥ졼ȤˤϤ줬äƼˤʤꤽ. 

      * ʬ

        % make SUBNFX=LACSCC && main.out -mn:dtdx=0.2 -mn:nmax=200 \
          -mn:nstep=4 -mn:init=5 -mn:fact=0.5
          ΥϾ԰Ǥ. 

      * Lax-Wendroff 

        ᣱ (ϲ)
        % make SUBNFX=LALWCC && \
          main.out -mn:dtdx=1 -mn:nmax=60 -mn:nstep=1 -mn:init=4

        0.5
        % make SUBNFX=LALWCC && \
          main.out -mn:dtdx=0.5 -mn:nmax=20 -mn:nstep=1 -mn:init=4 -mn:fact=0.5
	  κʬˡϻ֤֡Ȥ2٤Ǥ, ʤ餫ʴؿ
	  ɤѥեޥ󥹤򼨤. , Ϣ³¸ߤ, ʬ
	  ˤѤ. 

    - ή

      * ή()ʬ

        % make && main.out -mn:dtdx=1 -mn:nmax=60 -mn:nstep=1 -mn:init=5
	  ֿǴפΤǾ׷ȡĥȤޤߥ졼ȤǤ. 
	  ΤǾ׷Ȥͭ¤Ǥ. 

      * ʬ

        % make SUBNFX=NACSCC && main.out -mn:dtdx=0.2 -mn:nmax=90 \
          -mn:nstep=3 -mn:init=5 -mn:fact=0.5 
          Υ԰Ǥ. 

      * Lax-Wendroff 

        % make SUBNFX=NALWCC && \
          main.out -mn:dtdx=1 -mn:nmax=60 -mn:nstep=1 -mn:init=5
	  Υͤ޷ѲȤǥ뷹
	  СΤ褦ˤȤǴä򰷤
	  Ϻʤȹͤ. 

    - KdV 

      (ѥ᥿ͤϥץ-sb:rnuѤ)

      ʬब̵ȤӤSUBNFXKALWCCNALWCC, KAUSCC
      NAUSCCʤɤȼؤФ褤. 

      * ή()ʬ (Υ KdV ˤϤ褯ʤ)

        % make SUBNFX=KAUSCC && main.out -mn:dtdx=0.1 \
          -mn:nmax=2500 -mn:fact=6 -mn:nstep=20 -mn:init=3 -sb:rnu=0.0012
	  ĤȤϤäĤƤä. ---¤ϿǴब礭
	  αƤ˱ʬϤۤȤƯʤ. Ʊη׻
	  SUBNFX=NAUSCC ǤäƤ̤ϤۤȤѤʤ. 

      * Lax-Wendroff 

        % make kdv && main.out -mn:dtdx=0.2 -mn:nmax=2000 -mn:nstep=10 \
          -mn:fact=2 -mn:init=1 -sb:rnu=0.02
	  ʬ̵ˤĤƤ SUBNFX=NALWCC ȤФ褤. 

    - Ȼ 

      ۲ˡˤ̵ΤǤޤˤϼȤǤʤ
      ȤꤢʬѰդ

      * ֡, ִ֡ñʤ

        % make SUBNFX=DFFWCC && main.out -mn:dtdx=1 -mn:nmax=60 \
          -mn:nstep=1 -mn:init=4 -sb:rnu=0.02 

!() ˤѥ᥿μ갷ˤĤ

   ΤȤ, Ǥͤ򤤤ѤƷ׻Ԥѥ᥿
   , ʤ, ޤ, Ĥ, ꤷƤ. Τ褦ѥ᥿
   , ̾  Ȥ(: KdV, f=u^2/2+͢^2u/x^2),
   ή«׻֥롼 $(SUBNFX) (numflx.f, make) 
   Ǥѿ̾ RNU Ȥ뤳Ȥˤ. ,  $(SUBNFX) ǽ
   ƤФ줿ȤǾΥץߵǽˤꥪץ - sb:rnu 
   ȤƼळȤˤ. 줹ͳϰʲΤ褦ʤȤ򤷤
   Ǥ. 

   $(SUBNFX) κǽ2ʸ(ᥤץCSUB(1:2))ɽ
   褦ˤƤ, ᥤץ

100      IF(CSUB(1:2).EQ.'KA') THEN !" KdVꤷƷɽ
101        CALL RTPGET('SB:','RNU     ',RNU,1)        
102        IL=LENC(CTTL)
103        WRITE(CTTL(IL+1:IL+8),'(A4,F4.3)') '  '//CSGI(164)//'=',RNU
104      ENDIF

   βսդä, ѥ᥿ͤ޼. 

 ץι¤

   ᥤ
      |
      |- ѥ᥿ (ľ˵)
      |
      |- : CALL INISET (iniset.f)
      |
      |- ս  (ľ˵)
      |
      |- ʬ롼
      |      |
      |      |- ʬ: CALL TINTFX (tintfx.f)
      |      |                   |
      |      |                   |
      |      |                   --ή«׻: CALL $(SUBNFX) (numflx.f)
      |      |                 ( $(SUBNFX)==NAUSCC ʤ: make ˼ؤ )
      |      |                     
      |      -- ޼ (SGPLU)
      |
      |- λ (GRCLS)
      |
    λ

 եι

   main.F : (ᥤץ) 
            ѥ᥿ɤ߹, դΥ쥤ȰʳϤۤȤΤ. 
            ׻̤ɽˡѤȤϥᥤ񤭴. 

   iniset.f :  SUBROUTINE INISET : 

   numflx.f : SUBROUTINE NAUSCC, NALWCC ʤɤʤ
               1ʬοή«׻륵֥롼
              Ǥ. ɤ󥯤뤫make˷ޤ. 
	      ʶֺʬˡƳȤ, ˥֥롼
              䤻Ф褤. 

   tintfx.f : SUBROUTINE TINTFX
              ή«ηɽʬλʬ. ʬ
              . 
	      ʻʬˡѤȤϤ񤭴뤫, ɲ
              Ф褤ɲäξֺʬˡؤΤ˻ȤäƤ
              makeΥƥ˥åѤ. 
