Отсутствующие файлы с покрытием кода

У меня есть проект, который я собираю с помощью набора инструментов Intel. Все .f90 файлы скомпилированы в соответствующие .o файлы в каталоге bin. Когда я использую codecov Утилита Я получаю HTML со списком покрытых файлов. Однако в этом списке отсутствует куча файлов, которые должны иметь право на освещение. Некоторые из модулей, содержащихся в этих файлах, даже используются во время прогонов.

Что может быть причиной отсутствия этих файлов в отчете о покрытии?

РЕДАКТИРОВАТЬ

Запустив бинарный файл с отладчиком, я заметил кое-что, что может быть подсказкой.

Если я пытаюсь установить точку останова в файлах, которые не охвачены gdb выдает ошибку:

No line xxx in file "disturb_coms.f90".

тем не мение disturb_coms.f90 находится в папке bin:

manfredo@cave05:build$ ll bin-dbg-A/disturb*
-rw-r--r--  1 manfredo  staff    15K Jun 29 10:41 bin-dbg-A/disturb_coms.f90
-rw-r--r--  1 manfredo  staff   3.9K Jun 29 10:41 bin-dbg-A/disturb_coms.mod
-rw-r--r--  1 manfredo  staff   4.9K Jun 29 10:41 bin-dbg-A/disturb_coms.o
-rw-r--r--  1 manfredo  staff   221K Jun 29 10:43 bin-dbg-A/disturbance.f90
-rw-r--r--  1 manfredo  staff   4.1M Jun 29 10:43 bin-dbg-A/disturbance.o
-rw-r--r--  1 manfredo  staff   3.2M Jun 29 10:43 bin-dbg-A/disturbance_utils.mod

и был составлен с:

ifort -c -FR -CB -O0 -check -g -prof-gen=srcpos -debug full -debug-parameters all -fpe0 -traceback -ftrapuv -fp-stack-check -implicitnone -assume byterecl -warn unused -warn uncalled -warn usage -gen-interfaces -I../../src/include -I/usr/local/hdf5_mio/include disturb_coms.f90

Кроме того, файл называется disturbance.f90 содержит следующие строки:

module disturbance_utils

   contains

  subroutine apply_disturbances(cgrid)
...  
      use disturb_coms , only : treefall_disturbance_rate ! ! intent(in)
...   
           cpoly%disturbance_rates(2,2,isi) = treefall_disturbance_rate  
...

end subroutine apply_disturbances

end module disturbance_utils

где disturb_coms используется, и нарушение файла фактически покрыто.

РЕДАКТИРОВАТЬ

Добавляя инструкцию записи внутри disturb_coms.f90 и пытаясь скомпилировать я получаю следующую ошибку:

disturb_coms.f90(44): error #6274: This statement must not appear in the specification part of a module.
write(*,*) "try"
^

У меня нет большого опыта работы с Fortran, но мне кажется, что этот модуль является своего рода c-эквивалентным заголовочным файлом. Будет ли еще возможность закрыть этот файл? Как просто проверить, что определения, содержащиеся там, используются в другом месте?

0 ответов

Другие вопросы по тегам