超音波流体屋のプログラム備忘録
Fortran汎用コード
最終更新:
usapfrog
-
view
行番号カウント
コマンド wc -l の手実装版
ディレクトリ生成
多分もう少しきれいに書ける気がする
- subroutine prep_dir(status, outdir)
- !use ifport !intel fortranなら
- implicit none
-
- integer :: status
- character(*) :: outdir
- character(len=256) :: syscall
- character(len=16) :: devnull = 'nul' !linuxなら /dev/nullにする
- !character(len=16) :: devnull = '/dev/null'
-
- character(len=64), parameter :: CMDPATH = ''
- !character(len=64), parameter :: CMDPATH = 'C:\MinGW\msys\1.0\bin\'
-
- write(syscall, '(a,a,a,a,a)'), 'ls ', trim(outdir), '>', devnull, ' 2>&1'
- status = system(trim(syscall))
-
- if (status .ne. 0 ) then
- status = system(trim(syscall))
- if (status .ne. 0) then
- status = -1
- return
- end if
- end if
-
- status = 1
- end subroutine prep_dir
-
特定シンボルまでファイル読み飛ばし
- integer function Skip_Line_Until(symbol, fi, line)
- character(*), intent(in) :: symbol
- integer, intent(in) :: fi
- character(*), intent(inout) :: line
-
- integer :: num_skiped, status
- logical :: wait_symbol
-
- status = 0; num_skiped = 0; wait_symbol = .true.
-
- do while( wait_symbol .and. (status .eq. 0) )
- read(fi, '(a)', iostat=status), line
- num_skiped = num_skiped + 1
- wait_symbol = (index(line, symbol) .eq. 0)
- end do
-
- if ( status .ne. 0 ) then
- Skip_Line_Until = -1
- else
- Skip_Line_Until = num_skiped
- end if
- end function Skip_Line_Until
-