Articles of fortran

Как читать fortran двоичный файл в C?

У меня есть двоичный файл, сгенерированный кодом fortran. Этот файл содержит массив удвоений. Мне нужно открыть его в моей программе на C, а затем работать с ним, как с обычным массивом. Как мне это сделать? Как двойной тип представлен в двоичном файле?

Можно читать формат файла .Rdata с C или Fortran?

Я работаю над написанием некоторых расширений R на C (функции C, которые вызывают из R). Мой код должен вычислять статистику с использованием двух разных наборов данных одновременно, и мне нужно выполнить это со всеми возможными комбинациями пар. Затем мне нужна вся эта статистика (очень большие массивы), чтобы продолжить вычисление на стороне С. Эти файлы очень […]

Преобразовать backtrace libc в номер строки источника

У меня есть приложение MPI, в котором сочетаются как источники C, так и Fortran. Иногда он падает из-за ошибки памяти, но мне трудно найти ошибку (она находится где-то в чьем-то коде, который в настоящий момент я не очень хорошо разбираюсь). Мне еще не удалось поймать его с помощью gdb, но иногда выводится glibc backtrace, как […]

Невозможно передать массив из FORTRAN в C

Я пытаюсь передать один размерный массив из программы FORTRAN на C. Вызывается функция C, но значения, которые она содержит, являются мусором. Но если я пытаюсь вызвать ту же функцию с помощью целочисленной переменной, я могу передать требуемое значение. Может ли кто-нибудь помочь мне с этим? Код, который я использую, похож на этот Файл: fortran_prog.f program […]

Ошибки сегментации с использованием f2py

Это вопрос, который я задал здесь … Как распределить входные массивы с помощью f2py? Я переработал этот вопрос в ответ на комментарии. Первоначальный вопрос был неясным и слишком продолжительным. См. Комментарий 1 ниже. Я пытаюсь использовать f2py для обертывания различных подпрограмм / функций fortran для чтения данных, полученных из множества кодов атомной физики, написанных в […]

Вызов Metis API с использованием Fortran и C

Я написал следующий код для вызова Metis с использованием Fortran и C, но все еще получаю ошибку сегментации. objective кода – сделать раздел для входных файлов chanelElements . module metis_vars use iso_c_binding ! Variables integer :: ia, ic integer(kind=c_int) :: ne, nn integer(kind=c_int) :: ncommon, objval integer(kind=c_int) :: nparts integer(kind=c_int), allocatable, dimension(:) :: eptr, eind […]

Установка компилятора fortran в f2py

Я пытаюсь запустить пример f2py для создания скомпилированного модуля расширения ¶: # import os # os.environ[“CC”] = “gcc” # os.environ[“CXX”] = “g++” # Using post-0.2.2 scipy_distutils to display fortran compilers from scipy_distutils.fcompiler import new_fcompiler compiler = new_fcompiler() # or new_fcompiler(compiler=’intel’) compiler.dump_properties() #Generate add.f wrapper from numpy import f2py with open(“add.f”) as sourcefile: sourcecode = sourcefile.read() […]

Передача целочисленного массива Fortran в подпрограмму C передается только первый элемент

Я пытаюсь передать целочисленный массив из Fortran в C, но я могу передать только первый элемент массива. У меня есть тестовая программа, ниже которой воспроизводится ошибка. Где я иду не так? program test use foo integer (kind=c_int), allocatable :: hgmu_dose(:) allocate (hgmu_dose(0:10)) HGMU_dose(0)=22 HGMU_dose(1)=2 HGMU_dose(2)=3 HGMU_dose(3)=4 HGMU_dose(4)=5 HGMU_dose(5)=6 HGMU_dose(6)=7 HGMU_dose(7)=8 HGMU_dose(8)=9 HGMU_dose(9)=10 HGMU_dose(10)=11 print *, […]

Запись в файлы с MPI

Я пишу в файл следующим образом. Приказ не обязательно имеет значение (хотя было бы неплохо, если бы я мог его заказать по K, как это было бы по существу в серийном коде) CALL MPI_BARRIER(MPI_COMM_WORLD, IERR) OPEN(EIGENVALUES_UP_IO, FILE=EIGENVALUES_UP_PATH, ACCESS=’APPEND’) WRITE(EIGENVALUES_UP_IO, *) K * 0.0001_DP * PI, (EIGENVALUES(J), J = 1, ATOM_COUNT) CLOSE(EIGENVALUES_UP_IO) Я знаю, что это, […]

Читайте на закрытых именованных трубных блоках

Я пытаюсь читать из именованного канала (FIFO) с помощью Fortran. Чтение данных работает, но программа Fortran, похоже, не замечает, когда труба закрыта на другом конце; читает просто блок, а не получение EOF. Пример программы: program kitten character(256) :: buf open(22, file=’test’) do read(22, *) buf print*, trim(buf) end do end program kitten Теперь с $ […]

Intereting Posts
Текущий статус выполнения C11 ()? Странное поведение глобальной переменной, после изменения имени переменной, исчезает Почему требуется выравнивание памяти? Как передать длинный длинный типизированный параметр при вызове функции c из узла руки? Зачем использовать xor с литералом вместо инверсии (побитовое) почему это кастинг для действительного указателя void? Как оцениваются пошаговые и предварительные приращения в аргументе функции? некоторая ошибка в выходе при использовании макроса в C обменять два указателя на обмен массивами Почему размер массива malloc-ed и не-malloced-массив различны? Как отлаживать проблему с прерываниями случайных данных на платформе на основе платформы Безопасно ли использовать realloc? Является ли calloc (4, 6) так же, как calloc (6, 4)? Строки C Разрыв строки с несколькими ‘\ n’ Почему C не вращает операторы влево / вправо?