diff --git a/src/build_file.py b/src/build_file.py index b3aad23..3ed6c2e 100644 --- a/src/build_file.py +++ b/src/build_file.py @@ -476,7 +476,7 @@ def run(d_module, ninja): l_irp_sup_o = ["irp_touches.irp.o"] l_irp_sup_s = ["irp_touches.irp.F90"] - if command_line.do_assert: + if command_line.do_debug: l_irp_sup_o += ["irp_stack.irp.o"] l_irp_sup_s += ["irp_stack.irp.F90"] diff --git a/src/entity.py b/src/entity.py index 5b9f3aa..8717a79 100644 --- a/src/entity.py +++ b/src/entity.py @@ -600,7 +600,7 @@ class Entity(object): ] if command_line.do_openmp: result.append(" call irp_lock_%s(.True.)" % (same_as)) - if command_line.do_assert or command_line.do_debug: + if command_line.do_debug: result.append(" call irp_enter(irp_here)") result += build_call_provide(self.to_provide, self.d_entity) result += flatten(map(build_alloc, [self.same_as] + self.others_entity_name)) @@ -609,7 +609,7 @@ class Entity(object): " %s_is_built = .True." % (same_as), "" ] result += [" endif"] - if command_line.do_assert or command_line.do_debug: + if command_line.do_debug: result.append(" call irp_leave(irp_here)") if command_line.do_openmp: result.append(" call irp_lock_%s(.False.)" % (same_as)) diff --git a/src/irp_stack.py b/src/irp_stack.py index f168176..a86bda5 100644 --- a/src/irp_stack.py +++ b/src/irp_stack.py @@ -159,7 +159,7 @@ end subroutine """ # $1 - if do_assert or do_debug: + if do_debug: s = """ if (.not.alloc) then """ @@ -168,6 +168,9 @@ end subroutine !$OMP PARALLEL !$OMP SINGLE nthread = omp_get_num_threads() + if (nthread>1) then + stop 'irpf90 -debug does not work in multithread' + endif !$OMP END SINGLE !$OMP END PARALLEL !$OMP CRITICAL @@ -223,7 +226,7 @@ end subroutine txt = txt.replace("$3","") # $4 - if do_debug or do_assert: + if do_debug: txt = txt.replace("$4",""" stack_index(ithread) = max(0,stack_index(ithread)-1)""") else: diff --git a/src/preprocessed_text.py b/src/preprocessed_text.py index 7aa75bf..1dae2f7 100644 --- a/src/preprocessed_text.py +++ b/src/preprocessed_text.py @@ -544,7 +544,7 @@ def irp_simple_statements(text): def process_return(line): assert type(line) == Return - if command_line.do_assert or command_line.do_debug: + if command_line.do_debug: newline = Simple_line(line.i, " call irp_leave(irp_here)", line.filename) result = [newline, line] else: @@ -585,7 +585,6 @@ def irp_simple_statements(text): Empty_line(i, "!", f), Empty_line(i, "! >>> %s" % (txt, ), f), If(i, " if (.not.%s) then" % (condition, ), f), - Simple_line(i, " call irp_trace", f), Simple_line(i, " print *, irp_here//': Assert failed:'", f), Simple_line(i, " print *, ' file: %s, line: %d'" % (f, i), f), Simple_line(i, " print *, '%s'" % (condition_str, ), f), @@ -600,7 +599,7 @@ def irp_simple_statements(text): def process_end(line): '''Add irp_leave if necessary''' - if command_line.do_assert or command_line.do_debug: + if command_line.do_debug: i = line.i f = line.filename result = [Simple_line(i, " call irp_leave(irp_here)", f), line] @@ -624,7 +623,7 @@ def irp_simple_statements(text): Begin_provider(i, line.text, (f, varname)), Declaration(i, " character*(%d) :: irp_here = '%s'" % (length, varname), f) ] - if command_line.do_assert or command_line.do_debug: + if command_line.do_debug: result += [Simple_line(i, " call irp_enter(irp_here)", f), ] return result @@ -646,7 +645,7 @@ def irp_simple_statements(text): f = line.filename result = [ line, Declaration(i, " character*(%d) :: irp_here = '%s'" % (length, subname), f)] - if command_line.do_assert or command_line.do_debug: + if command_line.do_debug: result += [Simple_line(i, " call irp_enter_f(irp_here)", f), ] return result @@ -659,7 +658,7 @@ def irp_simple_statements(text): result = [ line, Declaration(i, " character*(%d) :: irp_here = '%s'" % (length, subname), f) ] - if command_line.do_assert or command_line.do_debug: + if command_line.do_debug: result += [Simple_line(i, " call irp_enter_f(irp_here)", f), ] return result