回答編集履歴

1

コメント返し

2018/06/07 05:43

投稿

tkturbo
tkturbo

スコア5572

test CHANGED
@@ -81,3 +81,177 @@
81
81
  type(time)::x,y,z
82
82
 
83
83
  ```
84
+
85
+
86
+
87
+ 以下、コメント(2018/06/07 14:21)に対する返信。
88
+
89
+
90
+
91
+ > そのようにやってみたのですが、同じエラーが出てきてしまいました。
92
+
93
+
94
+
95
+
96
+
97
+ 以下、コメントに記載のソースコードを整形しました。
98
+
99
+
100
+
101
+ ```
102
+
103
+ program ex
104
+
105
+
106
+
107
+ implicit none
108
+
109
+
110
+
111
+ type time
112
+
113
+ integer::hh,mm,ss
114
+
115
+ end type time
116
+
117
+
118
+
119
+ type(time)::x,y,z
120
+
121
+
122
+
123
+ x=time(1,56,48)
124
+
125
+ y=time(2,18,25)
126
+
127
+
128
+
129
+ call time_add(x,y,z)
130
+
131
+
132
+
133
+ write(6,*) z%hh,':',z%mm,':',z%ss
134
+
135
+
136
+
137
+ end program ex
138
+
139
+
140
+
141
+ subroutine time_add(x,y,z)
142
+
143
+
144
+
145
+ use mtime
146
+
147
+
148
+
149
+ implicit none
150
+
151
+
152
+
153
+ type(time)::x,y,z
154
+
155
+
156
+
157
+ integer ::cr
158
+
159
+
160
+
161
+ z%ss=x%ss+y%ss
162
+
163
+
164
+
165
+ cr=0
166
+
167
+
168
+
169
+ if( z%ss >= 60) then
170
+
171
+ z%ss=z%ss-60
172
+
173
+ cr=1
174
+
175
+
176
+
177
+ module mtime ! <-- time構造体を含むmoduleを定義
178
+
179
+ type time
180
+
181
+ integer::hh,mm,ss
182
+
183
+ end type time
184
+
185
+ end module
186
+
187
+
188
+
189
+ end if
190
+
191
+
192
+
193
+ z%mm=x%mm+y%mm+cr
194
+
195
+
196
+
197
+ cr=0
198
+
199
+
200
+
201
+ if( z%mm>= 60) then
202
+
203
+ z%mm=z%mm-60
204
+
205
+ cr=1
206
+
207
+ end if
208
+
209
+
210
+
211
+ z%hh=x%hh+y%hh+cr
212
+
213
+
214
+
215
+ end subroutine time_add
216
+
217
+
218
+
219
+ module mtime ! <-- time構造体を含むmoduleを定義
220
+
221
+ type time
222
+
223
+ integer::hh,mm,ss
224
+
225
+ end type time
226
+
227
+ end module
228
+
229
+
230
+
231
+ type time
232
+
233
+ integer::hh,mm,ss
234
+
235
+ end type time
236
+
237
+ end module
238
+
239
+ ```
240
+
241
+
242
+
243
+ ↑最初の回答で私が提示したのは、
244
+
245
+
246
+
247
+ 1.「time」構造体の宣言箇所を1カ所にして、moduleにしよう。
248
+
249
+ 2.program本体のtype宣言ブロックは不要
250
+
251
+ 3.subroutineのtype宣言ブロックも不要
252
+
253
+ 4.2,3の代わりに「use」宣言してmoduleを使うことにしよう。
254
+
255
+
256
+
257
+ ↑こういう事でしたが、まったく「そのように」はなっていませんね。