teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

4

エラーメッセージ(.dat→.txt)

2021/07/04 02:50

投稿

beachone1155
beachone1155

スコア16

title CHANGED
File without changes
body CHANGED
@@ -30,7 +30,7 @@
30
30
  ```
31
31
  ```
32
32
  ターミナル実行結果
33
- At line 10 of file cutter50.f90 (unit = 11, file = 'test_master.dat')
33
+ At line 10 of file cutter50.f90 (unit = 11, file = 'test_master.txt')
34
34
  Fortran runtime error: End of file
35
35
 
36
36
  Error termination. Backtrace:

3

誤字の修正

2021/07/04 02:50

投稿

beachone1155
beachone1155

スコア16

title CHANGED
File without changes
body CHANGED
@@ -1,4 +1,4 @@
1
- TRAN90を使って、複数行あるテキストファイルを50行ずつ分割して別々のテキストに保存する、ということをしたいのですが、うまくいきません。
1
+ FORTRAN90を使って、複数行あるテキストファイルを50行ずつ分割して別々のテキストに保存する、ということをしたいのですが、うまくいきません。
2
2
 
3
3
  以下のようにmodで出力ファイルを0001-0050.txtのように生成して、そこにmasterのテキストを一行ずつ入力するという方法を取っているのですが、modの余り値を0にする(出力ファイル名が0001-0050.txt,0051-0100.txtのようになる)と意図通りに動作してくれて、余り値を25に設定する(出力ファイルが0026-0075.txt,0076-0125.txt)とエラーになってしまいます。
4
4
 

2

誤字の修正

2021/07/04 02:09

投稿

beachone1155
beachone1155

スコア16

title CHANGED
File without changes
body CHANGED
@@ -3,6 +3,7 @@
3
3
  以下のようにmodで出力ファイルを0001-0050.txtのように生成して、そこにmasterのテキストを一行ずつ入力するという方法を取っているのですが、modの余り値を0にする(出力ファイル名が0001-0050.txt,0051-0100.txtのようになる)と意図通りに動作してくれて、余り値を25に設定する(出力ファイルが0026-0075.txt,0076-0125.txt)とエラーになってしまいます。
4
4
 
5
5
  この原因が分からないので教えていただきたいです。
6
+ 変数fnameはうまく生成されていることは確認済みです。
6
7
  環境はMacでターミナルはbashを用いています。
7
8
  よろしくお願いいたします。
8
9
  ```FORTRAN90
@@ -61,4 +62,4 @@
61
62
  以下、計123行分同じ形式のデータ
62
63
  ```
63
64
 
64
- teratailでの質問の経験が浅いため、質問方法が粗末で申し訳ありません。```
65
+ teratailでの質問の経験が浅いため、質問方法が粗末で申し訳ありません。

1

誤字の修正

2021/07/04 02:08

投稿

beachone1155
beachone1155

スコア16

title CHANGED
File without changes
body CHANGED
@@ -1,18 +1,23 @@
1
- FORTRAN90を使って、複数行あるテキストファイルを50行ずつ分割して別々のテキストに保存する、ということをしたいのですが、うまくいきません。
2
- 以下のようにmodで出力ファイルを0001-0050.txtのように生成して、そこにmasterのテキストを一行ずつ入力するという方法を取っているのですが、modの余り値を0にする(出力ファイル名が0001-0050.txt,0051-0100.txtのようになる)と意図通りに動作してくれて、余り値を25に設定する(0026-0075.txt,0076-0125.txt)と
1
+ TRAN90を使って、複数行あるテキストファイルを50行ずつ分割して別々のテキストに保存する、ということをしたいのですが、うまくいきません。
2
+
3
+ 以下のようにmodで出力ファイルを0001-0050.txtのように生成して、そこにmasterのテキストを一行ずつ入力するという方法を取っているのですが、modの余り値を0にする(出力ファイル名が0001-0050.txt,0051-0100.txtのようになる)と意図通りに動作してくれて、余り値を25に設定する(出力ファイルが0026-0075.txt,0076-0125.txt)とエラーになってしまいます。
4
+
5
+ この原因が分からないので教えていただきたいです。
6
+ 環境はMacでターミナルはbashを用いています。
7
+ よろしくお願いいたします。
3
8
  ```FORTRAN90
4
9
  character*80 line
5
10
  character*24 fname
6
11
 
7
12
  open(11,file = 'test_master.txt')!入力ファイル名を設定
8
13
  do i = 1, 123 !入力ファイルのデータ数を設定
9
- if(mod(i-1,50) == 0) then
14
+ if(mod(i-1,50) == 25) then !ここを25にするとうまく動かない
10
15
  write(fname,'(a11,i4.4,a1,i4.4,a4)') "test", i, "-", i+49, ".txt"!出力ファイル名を設定
11
16
  open(12,file = fname)
12
17
  end if
13
18
  read(11,'(a80)')
14
19
  write(12,*) line
15
- if(mod(i,50) == 0) then
20
+ if(mod(i,50) == 25) then
16
21
  close(12)
17
22
  end if
18
23
 
@@ -22,25 +27,38 @@
22
27
 
23
28
  end
24
29
  ```
30
+ ```
25
- ```FORTRAN90
31
+ ターミナル実行結果
26
- character*80 line
27
- character*24 fname
28
-
29
- open(11,file = 'test_master.txt')!入力ファイル名を設定
32
+ At line 10 of file cutter50.f90 (unit = 11, file = 'test_master.dat')
30
- do i = 1, 123 !入力ファイルのデータ数を設定
31
- if(mod(i-1,50) == 25) then
32
- write(fname,'(a11,i4.4,a1,i4.4,a4)') "test", i, "-", i+49, ".txt"!出力ファイル名を設定
33
- open(12,file = fname)
33
+ Fortran runtime error: End of file
34
- end if
35
- read(11,'(a80)')
36
- write(12,*) line
37
- if(mod(i,50) == 25) then
38
- close(12)
39
- end if
40
34
 
41
- end do
35
+ Error termination. Backtrace:
42
36
 
37
+ Could not print backtrace: libbacktrace could not find executable to open
38
+ #0 0xffffffff
39
+ #1 0xffffffff
40
+ #2 0xffffffff
41
+ #3 0xffffffff
42
+ #4 0xffffffff
43
+ #5 0xffffffff
44
+ #6 0xffffffff
45
+ #7 0xffffffff
46
+ #8 0xffffffff
47
+ #9 0xffffffff
48
+ #10 0xffffffff
49
+ #11 0xffffffff
50
+ #12 0xffffffff
51
+ #13 0xffffffff
52
+ #14 0xffffffff
53
+ ```
54
+ ```
43
- close(11)
55
+ test_master.txtの中身
56
+ 37.751667 138.458000 19.990000 1.500000 2011 3 1 20 51 36.580000
57
+ 36.939167 138.714333 7.750000 0.400000 2011 3 2 6 39 10.170000
58
+ 37.122167 138.800833 7.860000 1.900000 2011 3 2 7 16 25.700000
59
+ 36.998167 138.876500 7.710000 1.300000 2011 3 2 14 40 18.940000
60
+ 36.958833 138.157667 19.470000 1.100000 2011 3 3 4 35 42.970000
61
+ 以下、計123行分同じ形式のデータ
62
+ ```
44
63
 
45
- end
46
- ```
64
+ teratailでの質問の経験が浅いため、質問方法が粗末で申し訳ありません。```