fortran66のブログ

fortran について書きます。

オンライン Fortran 実行環境

sourcelair というオンライン実行環境が開発中のようで、Fortranも使えるようです。登録すると、ファイルの保存などもできます。今のところ設定ミスか Module が使えないようです。

H23-11-08 メールしてみたところ、今のところ全言語で Module は使えないそうです。クリスマス頃に使えるようになるかもしれないようです。

H24-1-8
訂正:int(....)を挿入。

do i = 2, int( sqrt(real(nmax)) )

program eratos
  implicit none
  integer, parameter :: nmax = 1000
  integer :: i, j
  logical :: tab(nmax)
  
  tab = .true.
  tab(1) = .false.
  do i = 2, int( sqrt(real(nmax)) )
    if ( tab(i) ) forall(j = 2 * i:nmax:i) tab(j) = .false.
  end do
  print '(10i7)', pack( [ (i, i = 1, nmax) ], tab ) ! F2003 extension [..]
  stop
end program eratos


quick sortの実行例
random_seed がちゃんと動いていないというか、毎回同じ乱数が出る。

program quick_sort
  implicit none
  real :: x(100)
  call random_seed()
  call random_number(x)
  print '(10f8.5)', qsort(x)
  stop
contains
  recursive function qsort(a) result(res)
    real, intent(in) :: a(:)
    real :: res(size(a))
    if (size(a) < 2) then 
     res = a
    else
     res = [ qsort( pack(a(2:), a(2:) < a(1)) ), a(1), qsort( pack(a(2:), a(2:) >= a(1)) ) ]
    end if
    return
  end function qsort
end program quick_sort