! 学習目的:サブルーチン(配列:その2) ! ex405.f parameter (nd=5) dimension a(nd),b(nd) !◆1 do i=1,5 a(i)=i end do call sub1(a,b,nd) do i=1,5 write(*,*) b(i),' in main' end do stop end subroutine sub1(a,b,nd) dimension a(nd),b(nd),c(nd*2) !配列の大きさの指定のとき演算も使える do i=1,5 !a,bはグローバルな変数であるが,cはローカルな変数 b(i)=a(i) end do call sub2(a,c,nd) do i=1,5 write(*,*) c(i),' in sub1' end do return end subroutine sub2(a,c,nd) dimension a(nd),c(nd*2) do i=1,5 c(i)=2*a(i) end do return end !◆1:配列の大きさをparameterで指定し,callするときに渡すのを薦める. !   こうすることによって,配列の大きさの管理が容易になる.