coderunner 0.13.9 → 0.13.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/VERSION +1 -1
- data/coderunner.gemspec +1 -1
- data/lib/coderunner/fortran_namelist.rb +36 -6
- data/lib/coderunner/graphs_and_films.rb +2 -2
- data/lib/coderunner/system_modules/dirac.rb +1 -1
- data/lib/coderunner/system_modules/moab.rb +2 -2
- data/lib/cubecalccrmod/deleted_variables.rb +355 -1
- data/lib/cubecalccrmod/namelists.rb +22 -1
- data/test/test_coderunner.rb +3 -2
- metadata +1 -1
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.13.
|
1
|
+
0.13.10
|
data/coderunner.gemspec
CHANGED
@@ -113,7 +113,7 @@ end
|
|
113
113
|
# in namelist
|
114
114
|
|
115
115
|
def self.known_code_variable?(namelist, var)
|
116
|
-
return true if rcp.namelists[namelist] and rcp.namelists[namelist][:variables].map{|(v,h)| (h[:code_name] or v).to_s.downcase.to_sym}.include? var.to_s.downcase.to_sym
|
116
|
+
return true if rcp.namelists[namelist.to_s.downcase.to_sym] and rcp.namelists[namelist.to_s.downcase.to_sym][:variables].map{|(v,h)| (h[:code_name] or v).to_s.downcase.to_sym}.include? var.to_s.downcase.to_sym
|
117
117
|
# end
|
118
118
|
return false
|
119
119
|
end
|
@@ -290,7 +290,7 @@ end
|
|
290
290
|
# in the simulation code.
|
291
291
|
|
292
292
|
def self.add_code_variable_to_namelist(namelist, var, value)
|
293
|
-
code_name = var
|
293
|
+
code_name = var.to_s.downcase.to_sym
|
294
294
|
var = var.to_s.downcase.to_sym
|
295
295
|
namelist = namelist.to_s.sub(/_(?<num>\d+)$/, '').to_sym
|
296
296
|
enum = $~ ? $~[:num] : nil
|
@@ -298,7 +298,7 @@ def self.add_code_variable_to_namelist(namelist, var, value)
|
|
298
298
|
namelists = rcp.namelists
|
299
299
|
namelist_file = 'namelists.rb'
|
300
300
|
# end
|
301
|
-
raise "This namelist: #{namelist} should have an enumerator and does not have one" if enum and not
|
301
|
+
raise "This namelist: #{namelist} should have an enumerator and does not have one" if enum and (not rcp.namelists[namelist] or not rcp.namelists[namelist][:enumerator])
|
302
302
|
unless ENV['CR_NON_INTERACTIVE']
|
303
303
|
return unless Feedback.get_boolean("An unknown variable has been found in this input file: \n\n\t Namelist: #{namelist}, Name: #{code_name}, Sample Value: #{value.inspect}.\n\nDo you wish to add it to the CodeRunner module? (Recommended: answer yes as long as the variable is not a typo)")
|
304
304
|
end
|
@@ -548,7 +548,7 @@ def self.parse_input_file(input_file, strict=true)
|
|
548
548
|
regex = Regexp.new("#{rcp.matching_regex.to_s}\\s*(?:\\!(?<comment>.*))?\\n")
|
549
549
|
#ep input_file
|
550
550
|
text.scan(/(?:(?:^|\A)\s*\!\s*(?<namelist_comment>[^\n]+)\n)?(?:^|\A)\&(?<namelist>\S+).*?^\//m) do
|
551
|
-
namelist = $~[:namelist].to_sym
|
551
|
+
namelist = $~[:namelist].downcase.to_sym
|
552
552
|
hash = namelist_hash[namelist] = {}
|
553
553
|
#p $~
|
554
554
|
scan_text_for_variables($~.to_s).each do |var, val|
|
@@ -557,7 +557,7 @@ def self.parse_input_file(input_file, strict=true)
|
|
557
557
|
hash[var] = val
|
558
558
|
end
|
559
559
|
end
|
560
|
-
pp 'inputfile', namelist_hash
|
560
|
+
#pp 'inputfile', namelist_hash
|
561
561
|
namelist_hash
|
562
562
|
end
|
563
563
|
|
@@ -568,7 +568,7 @@ def self.scan_text_for_variables(text)
|
|
568
568
|
arr = []
|
569
569
|
text.scan(regex) do
|
570
570
|
match = $~
|
571
|
-
var = match[:name].to_sym
|
571
|
+
var = match[:name].downcase.to_sym
|
572
572
|
default = match[:default.to_sym]
|
573
573
|
default = (match[:float] or match[:complex]) ? match[:default].gsub(/(\.)(\D|$)/, '\10\2').gsub(/[dD]/, 'e').gsub(/(\D|^)(\.)/, '\10\2') : match[:default]
|
574
574
|
#ep 'default', default
|
@@ -1112,13 +1112,39 @@ def self.get_sample_value(source, var)
|
|
1112
1112
|
return sample_val
|
1113
1113
|
end
|
1114
1114
|
|
1115
|
+
# Add variables found in the given namelist file and delete variables not found in it.
|
1116
|
+
#
|
1117
|
+
def self.synchronise_variables_from_input_file(input_file = ARGV[2])
|
1118
|
+
namelists = parse_input_file(input_file)
|
1119
|
+
nms = {}
|
1120
|
+
all_variables_in_source = {}
|
1121
|
+
namelist_declarations = {}
|
1122
|
+
namelists.each do |nmlist, vars|
|
1123
|
+
all_variables_in_source[nmlist.to_s.sub(/_\d+/, '').to_sym] = []
|
1124
|
+
vars.each do |var, value|
|
1125
|
+
all_variables_in_source[nmlist.to_s.sub(/_\d+/, '').to_sym].push var
|
1126
|
+
p ['nmlist', nmlist, 'var', var]
|
1127
|
+
next if known_code_variable?(nmlist, var)
|
1128
|
+
add_code_variable_to_namelist(nmlist, var, value)
|
1129
|
+
end
|
1130
|
+
end
|
1131
|
+
delete_old_variables(all_variables_in_source)
|
1132
|
+
end
|
1133
|
+
|
1134
|
+
|
1115
1135
|
# Find unknown input variables in the source code and add them to the database of namelists
|
1116
1136
|
# Delete input variables which are no longer present in the source code
|
1117
1137
|
|
1118
1138
|
def self.synchronise_variables(source_code_folder = ARGV[2])
|
1119
1139
|
source = get_aggregated_source_code_text(source_code_folder)
|
1120
1140
|
nms, all_variables_in_source, namelist_declarations = get_namelists_and_variables_from_source_code(source)
|
1141
|
+
process_synchronisation(nms, all_variables_in_source, namelist_declarations)
|
1142
|
+
end
|
1121
1143
|
# ep source.size
|
1144
|
+
|
1145
|
+
# Delete variables unless they are still present in the source code
|
1146
|
+
|
1147
|
+
def self.delete_old_variables(all_variables_in_source)
|
1122
1148
|
variables_to_delete = {}
|
1123
1149
|
#pp 'namelists', rcp.namelists
|
1124
1150
|
rcp.namelists.each do |namelist, namelist_hash|
|
@@ -1146,6 +1172,10 @@ def self.synchronise_variables(source_code_folder = ARGV[2])
|
|
1146
1172
|
end
|
1147
1173
|
end
|
1148
1174
|
end
|
1175
|
+
end
|
1176
|
+
|
1177
|
+
def self.process_synchronisation(nms, all_variables_in_source, namelist_declarations)
|
1178
|
+
delete_old_variables(all_variables_in_source)
|
1149
1179
|
|
1150
1180
|
raise "No namelists found" if nms.size == 0
|
1151
1181
|
eputs nms.keys.zip(nms.values.map{|vs| vs.size})
|
@@ -533,7 +533,7 @@ class CodeRunner
|
|
533
533
|
eputs "making film"
|
534
534
|
frame_rate = (options[:frame_rate] or options[:fr] || 15)
|
535
535
|
film_name = (options[:film_name] or options [:fn] or end_graphkit.file_name + '_film').gsub(/\s/, '_')
|
536
|
-
puts `ffmpeg -y #{options[:bitrate] ? "-b #{options[:bitrate]}" : ""} -r #{frame_rate} -threads #{(@multiple_processes or 1)} -i film_frames/frame_%0#{fd}d#{extension} -
|
536
|
+
puts `ffmpeg -y #{options[:bitrate] ? "-b #{options[:bitrate]}" : ""} -r #{frame_rate} -threads #{(@multiple_processes or 1)} -i film_frames/frame_%0#{fd}d#{extension} -qscale 0 #{film_name}.mp4`
|
537
537
|
end
|
538
538
|
end
|
539
539
|
|
@@ -737,7 +737,7 @@ class CodeRunner
|
|
737
737
|
eputs "making film"
|
738
738
|
frame_rate = (options[:frame_rate] or options[:fr] || 15)
|
739
739
|
film_name = (options[:film_name] or options [:fn] or graphkit_frame_array[0][1].file_name + '_film').gsub(/\s/, '_')
|
740
|
-
puts `ffmpeg -y #{options[:bitrate] ? "-b #{options[:bitrate]}" : ""} -r #{frame_rate} -threads #{(@multiple_processes or 1)} -i film_frames/frame_%0#{fd}d#{extension} -
|
740
|
+
puts `ffmpeg -y #{options[:bitrate] ? "-b #{options[:bitrate]}" : ""} -r #{frame_rate} -threads #{(@multiple_processes or 1)} -i film_frames/frame_%0#{fd}d#{extension} -qscale 0 #{film_name}.mp4`
|
741
741
|
end
|
742
742
|
end
|
743
743
|
|
@@ -80,7 +80,7 @@ module Moab
|
|
80
80
|
raise "Please specify wall mins using the W flag"
|
81
81
|
end
|
82
82
|
eputs "Allotted wall time is " + sprintf("%02d:%02d:%02d", hours, mins, secs)
|
83
|
-
return [hours,
|
83
|
+
return [hours, mins, secs]
|
84
84
|
end
|
85
85
|
def ppn_checks
|
86
86
|
eputs "Warning: Underuse of nodes (#{ppn} cores per node instead of #{max_ppn})" if ppn.to_i < max_ppn
|
@@ -88,7 +88,7 @@ module Moab
|
|
88
88
|
end
|
89
89
|
def batch_script
|
90
90
|
ppn_checks
|
91
|
-
hours,
|
91
|
+
hours, mins, secs = hours_minutes_seconds
|
92
92
|
<<EOF
|
93
93
|
#!/bin/bash --login
|
94
94
|
#PBS -N #{executable_name}.#{job_identifier}
|
@@ -27,4 +27,358 @@
|
|
27
27
|
[{:test=>"kind_of? Numeric",
|
28
28
|
:explanation=>
|
29
29
|
"This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
|
30
|
-
:type=>:Float}
|
30
|
+
:type=>:Float},
|
31
|
+
:beta=>
|
32
|
+
{:should_include=>"true",
|
33
|
+
:description=>nil,
|
34
|
+
:help=>nil,
|
35
|
+
:code_name=>:beta,
|
36
|
+
:must_pass=>
|
37
|
+
[{:test=>"kind_of? Numeric",
|
38
|
+
:explanation=>
|
39
|
+
"This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
|
40
|
+
:type=>:Float},
|
41
|
+
:zeff=>
|
42
|
+
{:should_include=>"true",
|
43
|
+
:description=>nil,
|
44
|
+
:help=>nil,
|
45
|
+
:code_name=>:zeff,
|
46
|
+
:must_pass=>
|
47
|
+
[{:test=>"kind_of? Numeric",
|
48
|
+
:explanation=>
|
49
|
+
"This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
|
50
|
+
:type=>:Float},
|
51
|
+
:grid_option=>
|
52
|
+
{:should_include=>"true",
|
53
|
+
:description=>nil,
|
54
|
+
:help=>nil,
|
55
|
+
:code_name=>:grid_option,
|
56
|
+
:must_pass=>
|
57
|
+
[{:test=>"kind_of? String",
|
58
|
+
:explanation=>"This variable must be a string."}],
|
59
|
+
:type=>:String},
|
60
|
+
:aky=>
|
61
|
+
{:should_include=>"true",
|
62
|
+
:description=>nil,
|
63
|
+
:help=>nil,
|
64
|
+
:code_name=>:aky,
|
65
|
+
:must_pass=>
|
66
|
+
[{:test=>"kind_of? Numeric",
|
67
|
+
:explanation=>
|
68
|
+
"This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
|
69
|
+
:type=>:Float},
|
70
|
+
:akx=>
|
71
|
+
{:should_include=>"true",
|
72
|
+
:description=>nil,
|
73
|
+
:help=>nil,
|
74
|
+
:code_name=>:akx,
|
75
|
+
:must_pass=>
|
76
|
+
[{:test=>"kind_of? Numeric",
|
77
|
+
:explanation=>
|
78
|
+
"This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
|
79
|
+
:type=>:Float},
|
80
|
+
:ntheta=>
|
81
|
+
{:should_include=>"true",
|
82
|
+
:description=>nil,
|
83
|
+
:help=>nil,
|
84
|
+
:code_name=>:ntheta,
|
85
|
+
:must_pass=>
|
86
|
+
[{:test=>"kind_of? Integer",
|
87
|
+
:explanation=>"This variable must be an integer."}],
|
88
|
+
:type=>:Integer},
|
89
|
+
:nperiod=>
|
90
|
+
{:should_include=>"true",
|
91
|
+
:description=>nil,
|
92
|
+
:help=>nil,
|
93
|
+
:code_name=>:nperiod,
|
94
|
+
:must_pass=>
|
95
|
+
[{:test=>"kind_of? Integer",
|
96
|
+
:explanation=>"This variable must be an integer."}],
|
97
|
+
:type=>:Integer},
|
98
|
+
:eps=>
|
99
|
+
{:should_include=>"true",
|
100
|
+
:description=>nil,
|
101
|
+
:help=>nil,
|
102
|
+
:code_name=>:eps,
|
103
|
+
:must_pass=>
|
104
|
+
[{:test=>"kind_of? Numeric",
|
105
|
+
:explanation=>
|
106
|
+
"This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
|
107
|
+
:type=>:Float},
|
108
|
+
:epsl=>
|
109
|
+
{:should_include=>"true",
|
110
|
+
:description=>nil,
|
111
|
+
:help=>nil,
|
112
|
+
:code_name=>:epsl,
|
113
|
+
:must_pass=>
|
114
|
+
[{:test=>"kind_of? Numeric",
|
115
|
+
:explanation=>
|
116
|
+
"This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
|
117
|
+
:type=>:Float},
|
118
|
+
:shat=>
|
119
|
+
{:should_include=>"true",
|
120
|
+
:description=>nil,
|
121
|
+
:help=>nil,
|
122
|
+
:code_name=>:shat,
|
123
|
+
:must_pass=>
|
124
|
+
[{:test=>"kind_of? Numeric",
|
125
|
+
:explanation=>
|
126
|
+
"This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
|
127
|
+
:type=>:Float},
|
128
|
+
:pk=>
|
129
|
+
{:should_include=>"true",
|
130
|
+
:description=>nil,
|
131
|
+
:help=>nil,
|
132
|
+
:code_name=>:pk,
|
133
|
+
:must_pass=>
|
134
|
+
[{:test=>"kind_of? Numeric",
|
135
|
+
:explanation=>
|
136
|
+
"This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
|
137
|
+
:type=>:Float},
|
138
|
+
:shift=>
|
139
|
+
{:should_include=>"true",
|
140
|
+
:description=>nil,
|
141
|
+
:help=>nil,
|
142
|
+
:code_name=>:shift,
|
143
|
+
:must_pass=>
|
144
|
+
[{:test=>"kind_of? Numeric",
|
145
|
+
:explanation=>
|
146
|
+
"This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
|
147
|
+
:type=>:Float},
|
148
|
+
:equilibrium_option=>
|
149
|
+
{:should_include=>"true",
|
150
|
+
:description=>nil,
|
151
|
+
:help=>nil,
|
152
|
+
:code_name=>:equilibrium_option,
|
153
|
+
:must_pass=>
|
154
|
+
[{:test=>"kind_of? String",
|
155
|
+
:explanation=>"This variable must be a string."}],
|
156
|
+
:type=>:String},
|
157
|
+
:model_option=>
|
158
|
+
{:should_include=>"true",
|
159
|
+
:description=>nil,
|
160
|
+
:help=>nil,
|
161
|
+
:code_name=>:model_option,
|
162
|
+
:must_pass=>
|
163
|
+
[{:test=>"kind_of? String",
|
164
|
+
:explanation=>"This variable must be a string."}],
|
165
|
+
:type=>:String},
|
166
|
+
:ngauss=>
|
167
|
+
{:should_include=>"true",
|
168
|
+
:description=>nil,
|
169
|
+
:help=>nil,
|
170
|
+
:code_name=>:ngauss,
|
171
|
+
:must_pass=>
|
172
|
+
[{:test=>"kind_of? Integer",
|
173
|
+
:explanation=>"This variable must be an integer."}],
|
174
|
+
:type=>:Integer},
|
175
|
+
:negrid=>
|
176
|
+
{:should_include=>"true",
|
177
|
+
:description=>nil,
|
178
|
+
:help=>nil,
|
179
|
+
:code_name=>:negrid,
|
180
|
+
:must_pass=>
|
181
|
+
[{:test=>"kind_of? Integer",
|
182
|
+
:explanation=>"This variable must be an integer."}],
|
183
|
+
:type=>:Integer},
|
184
|
+
:gridfac=>
|
185
|
+
{:should_include=>"true",
|
186
|
+
:description=>nil,
|
187
|
+
:help=>nil,
|
188
|
+
:code_name=>:gridfac,
|
189
|
+
:must_pass=>
|
190
|
+
[{:test=>"kind_of? Numeric",
|
191
|
+
:explanation=>
|
192
|
+
"This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
|
193
|
+
:type=>:Float},
|
194
|
+
:omprimfac=>
|
195
|
+
{:should_include=>"true",
|
196
|
+
:description=>nil,
|
197
|
+
:help=>nil,
|
198
|
+
:code_name=>:omprimfac,
|
199
|
+
:must_pass=>
|
200
|
+
[{:test=>"kind_of? Numeric",
|
201
|
+
:explanation=>
|
202
|
+
"This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
|
203
|
+
:type=>:Float},
|
204
|
+
:boundary_option=>
|
205
|
+
{:should_include=>"true",
|
206
|
+
:description=>nil,
|
207
|
+
:help=>nil,
|
208
|
+
:code_name=>:boundary_option,
|
209
|
+
:must_pass=>
|
210
|
+
[{:test=>"kind_of? String",
|
211
|
+
:explanation=>"This variable must be a string."}],
|
212
|
+
:type=>:String},
|
213
|
+
:adiabatic_option=>
|
214
|
+
{:should_include=>"true",
|
215
|
+
:description=>nil,
|
216
|
+
:help=>nil,
|
217
|
+
:code_name=>:adiabatic_option,
|
218
|
+
:must_pass=>
|
219
|
+
[{:test=>"kind_of? String",
|
220
|
+
:explanation=>"This variable must be a string."}],
|
221
|
+
:type=>:String},
|
222
|
+
:g_exb=>
|
223
|
+
{:should_include=>"true",
|
224
|
+
:description=>nil,
|
225
|
+
:help=>nil,
|
226
|
+
:code_name=>:g_exb,
|
227
|
+
:must_pass=>
|
228
|
+
[{:test=>"kind_of? Numeric",
|
229
|
+
:explanation=>
|
230
|
+
"This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
|
231
|
+
:type=>:Float},
|
232
|
+
:nonad_zero=>
|
233
|
+
{:should_include=>"true",
|
234
|
+
:description=>nil,
|
235
|
+
:help=>nil,
|
236
|
+
:code_name=>:nonad_zero,
|
237
|
+
:must_pass=>
|
238
|
+
[{:test=>"kind_of? String and FORTRAN_BOOLS.include? self",
|
239
|
+
:explanation=>
|
240
|
+
"This variable must be a fortran boolean. (In Ruby this is represented as a string: e.g. '.true.')"}],
|
241
|
+
:type=>:Fortran_Bool},
|
242
|
+
:field_option=>
|
243
|
+
{:should_include=>"true",
|
244
|
+
:description=>nil,
|
245
|
+
:help=>nil,
|
246
|
+
:code_name=>:field_option,
|
247
|
+
:must_pass=>
|
248
|
+
[{:test=>"kind_of? String",
|
249
|
+
:explanation=>"This variable must be a string."}],
|
250
|
+
:type=>:String},
|
251
|
+
:wstar_units=>
|
252
|
+
{:should_include=>"true",
|
253
|
+
:description=>nil,
|
254
|
+
:help=>nil,
|
255
|
+
:code_name=>:wstar_units,
|
256
|
+
:must_pass=>
|
257
|
+
[{:test=>"kind_of? String and FORTRAN_BOOLS.include? self",
|
258
|
+
:explanation=>
|
259
|
+
"This variable must be a fortran boolean. (In Ruby this is represented as a string: e.g. '.true.')"}],
|
260
|
+
:type=>:Fortran_Bool},
|
261
|
+
:fphi=>
|
262
|
+
{:should_include=>"true",
|
263
|
+
:description=>nil,
|
264
|
+
:help=>nil,
|
265
|
+
:code_name=>:fphi,
|
266
|
+
:must_pass=>
|
267
|
+
[{:test=>"kind_of? Numeric",
|
268
|
+
:explanation=>
|
269
|
+
"This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
|
270
|
+
:type=>:Float},
|
271
|
+
:fapar=>
|
272
|
+
{:should_include=>"true",
|
273
|
+
:description=>nil,
|
274
|
+
:help=>nil,
|
275
|
+
:code_name=>:fapar,
|
276
|
+
:must_pass=>
|
277
|
+
[{:test=>"kind_of? Numeric",
|
278
|
+
:explanation=>
|
279
|
+
"This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
|
280
|
+
:type=>:Float},
|
281
|
+
:faperp=>
|
282
|
+
{:should_include=>"true",
|
283
|
+
:description=>nil,
|
284
|
+
:help=>nil,
|
285
|
+
:code_name=>:faperp,
|
286
|
+
:must_pass=>
|
287
|
+
[{:test=>"kind_of? Numeric",
|
288
|
+
:explanation=>
|
289
|
+
"This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
|
290
|
+
:type=>:Float},
|
291
|
+
:delt=>
|
292
|
+
{:should_include=>"true",
|
293
|
+
:description=>nil,
|
294
|
+
:help=>nil,
|
295
|
+
:code_name=>:delt,
|
296
|
+
:must_pass=>
|
297
|
+
[{:test=>"kind_of? Numeric",
|
298
|
+
:explanation=>
|
299
|
+
"This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
|
300
|
+
:type=>:Float},
|
301
|
+
:nstep=>
|
302
|
+
{:should_include=>"true",
|
303
|
+
:description=>nil,
|
304
|
+
:help=>nil,
|
305
|
+
:code_name=>:nstep,
|
306
|
+
:must_pass=>
|
307
|
+
[{:test=>"kind_of? Integer",
|
308
|
+
:explanation=>"This variable must be an integer."}],
|
309
|
+
:type=>:Integer},
|
310
|
+
:delt_adj=>
|
311
|
+
{:should_include=>"true",
|
312
|
+
:description=>nil,
|
313
|
+
:help=>nil,
|
314
|
+
:code_name=>:delt_adj,
|
315
|
+
:must_pass=>
|
316
|
+
[{:test=>"kind_of? Numeric",
|
317
|
+
:explanation=>
|
318
|
+
"This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
|
319
|
+
:type=>:Float},
|
320
|
+
:delt_minimum=>
|
321
|
+
{:should_include=>"true",
|
322
|
+
:description=>nil,
|
323
|
+
:help=>nil,
|
324
|
+
:code_name=>:delt_minimum,
|
325
|
+
:must_pass=>
|
326
|
+
[{:test=>"kind_of? Numeric",
|
327
|
+
:explanation=>
|
328
|
+
"This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
|
329
|
+
:type=>:Float},
|
330
|
+
:layout=>
|
331
|
+
{:should_include=>"true",
|
332
|
+
:description=>nil,
|
333
|
+
:help=>nil,
|
334
|
+
:code_name=>:layout,
|
335
|
+
:must_pass=>
|
336
|
+
[{:test=>"kind_of? String",
|
337
|
+
:explanation=>"This variable must be a string."}],
|
338
|
+
:type=>:String},
|
339
|
+
:collision_model=>
|
340
|
+
{:should_include=>"true",
|
341
|
+
:description=>nil,
|
342
|
+
:help=>nil,
|
343
|
+
:code_name=>:collision_model,
|
344
|
+
:must_pass=>
|
345
|
+
[{:test=>"kind_of? String",
|
346
|
+
:explanation=>"This variable must be a string."}],
|
347
|
+
:type=>:String},
|
348
|
+
:nonlinear_mode=>
|
349
|
+
{:should_include=>"true",
|
350
|
+
:description=>nil,
|
351
|
+
:help=>nil,
|
352
|
+
:code_name=>:nonlinear_mode,
|
353
|
+
:must_pass=>
|
354
|
+
[{:test=>"kind_of? String",
|
355
|
+
:explanation=>"This variable must be a string."}],
|
356
|
+
:type=>:String},
|
357
|
+
:flow_mode=>
|
358
|
+
{:should_include=>"true",
|
359
|
+
:description=>nil,
|
360
|
+
:help=>nil,
|
361
|
+
:code_name=>:flow_mode,
|
362
|
+
:must_pass=>
|
363
|
+
[{:test=>"kind_of? String",
|
364
|
+
:explanation=>"This variable must be a string."}],
|
365
|
+
:type=>:String},
|
366
|
+
:cfl=>
|
367
|
+
{:should_include=>"true",
|
368
|
+
:description=>nil,
|
369
|
+
:help=>nil,
|
370
|
+
:code_name=>:cfl,
|
371
|
+
:must_pass=>
|
372
|
+
[{:test=>"kind_of? Numeric",
|
373
|
+
:explanation=>
|
374
|
+
"This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
|
375
|
+
:type=>:Float},
|
376
|
+
:nspec=>
|
377
|
+
{:should_include=>"true",
|
378
|
+
:description=>nil,
|
379
|
+
:help=>nil,
|
380
|
+
:code_name=>:nspec,
|
381
|
+
:must_pass=>
|
382
|
+
[{:test=>"kind_of? Integer",
|
383
|
+
:explanation=>"This variable must be an integer."}],
|
384
|
+
:type=>:Integer}}
|
@@ -54,4 +54,25 @@
|
|
54
54
|
:explanation=>
|
55
55
|
"This variable must be a floating point number (an integer is also acceptable: it will be converted into a floating point number)."}],
|
56
56
|
:type=>:Float,
|
57
|
-
:autoscanned_defaults=>[1.0]}}}
|
57
|
+
:autoscanned_defaults=>[1.0]}}},
|
58
|
+
:parameters=>{:description=>"", :should_include=>"true", :variables=>{}},
|
59
|
+
:kt_grids_knobs=>{:description=>"", :should_include=>"true", :variables=>{}},
|
60
|
+
:kt_grids_single_parameters=>
|
61
|
+
{:description=>"", :should_include=>"true", :variables=>{}},
|
62
|
+
:theta_grid_parameters=>
|
63
|
+
{:description=>"", :should_include=>"true", :variables=>{}},
|
64
|
+
:theta_grid_knobs=>
|
65
|
+
{:description=>"", :should_include=>"true", :variables=>{}},
|
66
|
+
:theta_grid_salpha_knobs=>
|
67
|
+
{:description=>"", :should_include=>"true", :variables=>{}},
|
68
|
+
:le_grids_knobs=>{:description=>"", :should_include=>"true", :variables=>{}},
|
69
|
+
:dist_fn_knobs=>{:description=>"", :should_include=>"true", :variables=>{}},
|
70
|
+
:fields_knobs=>{:description=>"", :should_include=>"true", :variables=>{}},
|
71
|
+
:knobs=>{:description=>"", :should_include=>"true", :variables=>{}},
|
72
|
+
:reinit_knobs=>{:description=>"", :should_include=>"true", :variables=>{}},
|
73
|
+
:layouts_knobs=>{:description=>"", :should_include=>"true", :variables=>{}},
|
74
|
+
:collisions_knobs=>
|
75
|
+
{:description=>"", :should_include=>"true", :variables=>{}},
|
76
|
+
:nonlinear_terms_knobs=>
|
77
|
+
{:description=>"", :should_include=>"true", :variables=>{}},
|
78
|
+
:species_knobs=>{:description=>"", :should_include=>"true", :variables=>{}}}
|
data/test/test_coderunner.rb
CHANGED
@@ -21,7 +21,7 @@ $coderunner_command = "#{$ruby_command} -I lib/ lib/coderunner.rb"
|
|
21
21
|
#raise "Couldn't build test program using #{string}" unless system string
|
22
22
|
#end
|
23
23
|
|
24
|
-
if
|
24
|
+
if false
|
25
25
|
class TestSubmission < Test::Unit::TestCase
|
26
26
|
def setup
|
27
27
|
string = $cpp_command + ' ../cubecalc.cc -o cubecalc'
|
@@ -363,7 +363,7 @@ end # if false/true
|
|
363
363
|
#end
|
364
364
|
#
|
365
365
|
#
|
366
|
-
ENV['CR_NON_INTERACTIVE'] = 'true'
|
366
|
+
#ENV['CR_NON_INTERACTIVE'] = 'true'
|
367
367
|
class TestFortranNamelistC < Test::Unit::TestCase
|
368
368
|
def setup
|
369
369
|
end
|
@@ -372,6 +372,7 @@ class TestFortranNamelistC < Test::Unit::TestCase
|
|
372
372
|
CodeRunner.setup_run_class('cubecalc', modlet: 'with_namelist')
|
373
373
|
assert_equal(File.read('test/cubecalc_namelist.cc').size+1, CodeRunner::Cubecalc::WithNamelist.get_aggregated_source_code_text('test').size)
|
374
374
|
CodeRunner::Cubecalc::WithNamelist.synchronise_variables('test')
|
375
|
+
CodeRunner::Cubecalc::WithNamelist.synchronise_variables_from_input_file('test/cubecalc.in')
|
375
376
|
CodeRunner::Cubecalc::WithNamelist.update_defaults_from_source_code('test')
|
376
377
|
end
|
377
378
|
def test_mediawiki_write
|