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

回答編集履歴

2

コードの訂正

2021/09/08 14:20

投稿

Tubasa1995
Tubasa1995

スコア83

answer CHANGED
@@ -26,18 +26,18 @@
26
26
 
27
27
 
28
28
  do current_nstep = 1, total_nstep
29
- if(current_nstep==1)then
29
+ if(current_nstep==1)then
30
30
  open (17, file='array.csv', status='old')
31
31
  read (17, '()') ! ヘッダ行の読み飛ばし
32
- do i = 1, total_nstep
32
+ do i = 1, total_nstep
33
- read (17, *) pressure
33
+ read (17, *) pressure
34
34
  n_array(i) = pressure !配列のi番目にcsvファイルのi番目を格納
35
- end do
35
+ end do
36
- close (17)
36
+ close (17)
37
37
  direchlet_pressure = n_array(1)
38
38
  print *,direchlet_pressure !出力したい配列要素
39
39
 
40
- else
40
+ else
41
41
  direchlet_pressure = n_array(current_nstep)
42
42
  print *,direchlet_pressure !出力したい配列要素
43
43
  endif

1

コードの訂正

2021/09/08 14:20

投稿

Tubasa1995
Tubasa1995

スコア83

answer CHANGED
@@ -5,40 +5,40 @@
5
5
  implicit none
6
6
 
7
7
  integer ntcabs
8
- integer :: nstep = 100
8
+ integer :: total_nstep = 100
9
9
 
10
- do ntcabs = 1, nstep
10
+ do ntcabs = 1, total_nstep
11
- call readcsv(ntcabs)
11
+ call readcsv(ntcabs,total_nstep)
12
12
  end do
13
13
  end program main
14
14
 
15
15
 
16
16
  !Subroutine
17
17
  !======================================================================================
18
- subroutine readcsv(nstep)
18
+ subroutine readcsv(current_nstep,total_nstep)
19
19
  implicit none
20
+ integer i, current_nstep
21
+ integer :: total_nstep
20
22
 
21
- integer nstep
22
- real pressure
23
+ real pressure, direchlet_pressure
23
- integer i
24
24
  real, save :: n_array(100)
25
- real direchlet_pressure
26
- integer :: n = 100
27
25
 
28
- open (17, file='array.csv', status='old')
29
- read (17, '()') ! ヘッダ行の読み飛ばし
30
- do i = 1, n
31
- read (17, *) pressure
32
- n_array(i) = pressure !配列のi番目にcsvファイルのi番目を格納
33
- end do
34
- close (17)
35
26
 
27
+
36
- do nstep = 1, n
28
+ do current_nstep = 1, total_nstep
37
- if(nstep==1)then
29
+ if(current_nstep==1)then
30
+ open (17, file='array.csv', status='old')
31
+ read (17, '()') ! ヘッダ行の読み飛ばし
32
+ do i = 1, total_nstep
33
+ read (17, *) pressure
34
+ n_array(i) = pressure !配列のi番目にcsvファイルのi番目を格納
35
+ end do
36
+ close (17)
38
37
  direchlet_pressure = n_array(1)
39
38
  print *,direchlet_pressure !出力したい配列要素
39
+
40
40
  else
41
- direchlet_pressure = n_array(nstep)
41
+ direchlet_pressure = n_array(current_nstep)
42
42
  print *,direchlet_pressure !出力したい配列要素
43
43
  endif
44
44
  end do