Method: CodeRunner::Run::FortranNamelist.delete_old_variables

Defined in:
lib/coderunner/fortran_namelist.rb

.delete_old_variables(all_variables_in_source) ⇒ Object

Delete variables unless they are still present in the source code



1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
# File 'lib/coderunner/fortran_namelist.rb', line 1194

def self.delete_old_variables(all_variables_in_source)
	variables_to_delete = {}	
	#pp 'namelists', rcp.namelists
	rcp.namelists.each do |namelist, namelist_hash|
		namelist_hash[:variables].each do |variable, var_hash|
			code_variable = var_hash[:code_name] || variable
			unless all_variables_in_source[namelist] and all_variables_in_source[namelist].map{|var| var.to_s.downcase.to_sym}.include? code_variable.to_s.downcase.to_sym
				variables_to_delete[namelist] ||= []
				variables_to_delete[namelist].push variable
			end
		end
	end
	variables_to_delete.each do |namelist, var_array|
		#eputs namelist_declarations[namelist]
		var_array.each do |var|
			p "Namelist: #{namelist}   Variable: #{var}"
		end
	end
	if variables_to_delete.find{|namelist, var_array| var_array.size > 0}
		#unless ENV['CR_NON_INTERACTIVE']
			delete_old = Feedback.get_boolean("These variables are no longer present in the #{rcp.code_long} source folder. Do you wish to delete them?")
		#else
			#delete_old = true
		#end
		if delete_old
			variables_to_delete.each do |namelist, var_array|
				var_array.each do |var|
					delete_variable(namelist, var)
				end
			end
		end
	end
end