Я не слишком много знаю о вызове Fortran кода, но в соответствии с this
Фортран стандарт не определяет, как представляются переменные логического типа , за требуя, чтобы ЛОГИЧЕСКИЕ переменные по умолчанию вида имеют тот же размер хранилища, что и переменные INTEGER и REAL по умолчанию. Внутреннее представление GNU Fortran выглядит следующим образом.
А ЛОГИЧЕСКАЯ (KIND = N) переменная представлена как переменная INTEGER (KIND = N) , однако имеет только два допустимых значения: 1 для .TRUE. и 0 для. FALSE. Любое другое целочисленное значение приводит к неопределенному поведению.
Так что я хотел бы сделать что-то вроде следующего
julia_array = rand(Bool, 1:10)
fort_array = Int[x?1:0 for x in julia_array]
fort_array
Затем используйте в качестве входных данных. Какой компилятор Fortran вы используете?
EDIT: Оказывается, разработчики Julia уже определили тип, который будет работать со связанным BLAS/LAPACK, Base.BLAS.BlasInt
, который будет использовать правильный вариант Int
для системы.
в http://julia.readthedocs.org/ru/latest/manual/types/#bits-types написано, что даже тип bool имеет 8 бит. вероятно, это проблема, но как я могу ее решить? – axsk