! 学習目的:サブルーチン(入れ子構造) ! ex403.f a=2. b=3. !◆1 call sub1(a,b,c) !()内を引数と呼ぶ write(*,*) 'a=', a write(*,*) 'b=', b write(*,*) 'c=', c stop end subroutine sub1(a,b,c) a=2.*a !a=4. サブルーチンの中で変数の値を変えることができる. call sub2(a,b) !サブルーチンの中からサブルーチンをcallできる c=a+b+1 !c=4.+5.+1.=10. return end subroutine sub2(a,b) b=a+1. !b=5. !◆2 return end !◆1でb=3.と代入されているが,◆2でb=a+2.とされており,◆1の実行文は無意味である. ! つまり,引数には,callする時点で値をもってsubroutine文に行くものと, ! callする時点では値を持たず,subroutineの中で値を得て戻ってくるものの2通りある.