Articles of fortran

Chamando o código de 32 bits do processo de 64 bits

Eu tenho um aplicativo que estamos tentando migrar para 64 bits de 32 bits. É .NET, compilado usando os sinalizadores x64. No entanto, temos um grande número de DLLs escritas no FORTRAN 90 compilado para 32 bits. As funções nas DLLs FORTRAN são bastante simples: você coloca dados, você extrai dados; nenhum estado de qualquer […]

Computando o produto cruzado de dois vetores em Fortran 90

Eu gostaria de calcular o produto cruzado de dois vetores em Fortran 90. Por exemplo, em palavras, o produto vetorial de (1, 2, 3) e (4, 5, 6) é (-3, 6, -3) em coordenadas cartesianas. Eu escrevi o seguinte código (programa principal seguido por definição de function): PROGRAM crosstest IMPLICIT NONE INTEGER, DIMENSION(3) :: m, […]

Definições provisórias em C99 e vinculação

Considere o programa C composto de dois arquivos, f1.c: int x; f2.c: int x=2; Minha leitura do parágrafo 6.9.2 da norma C99 é que esse programa deve ser rejeitado. Na minha interpretação de 6.9.2, a variável x é provisoriamente definida em f1.c , mas essa definição provisória se torna uma definição real no final da […]

Por que falha de segmentação está acontecendo neste código openmp?

programa principal: program main use omp_lib use my_module implicit none integer, parameter :: nmax = 202000 real(8) :: e_in(nmax) = 0.D0 integer i call omp_set_num_threads(2) !$omp parallel default(firstprivate) !$omp do do i=1,2 print *, e_in(i) print *, eTDSE(i) end do !$omp end do !$omp end parallel end program main módulo: module my_module implicit none integer, […]

Converte números inteiros em sequências para criar nomes de arquivos de saída em tempo de execução

Eu tenho um programa em Fortran que salva os resultados em um arquivo. No momento eu abro o arquivo usando OPEN (1, FILE = ‘Output.TXT’) No entanto, agora quero executar um loop e salvar os resultados de cada iteração nos arquivos ‘Output1.TXT’ , ‘Output2.TXT’ , ‘Output3.TXT’ e assim por diante. Existe uma maneira fácil em […]

Fortran: integer * 4 vs integer (4) vs integer (kind = 4)

Eu estou tentando aprender Fortran e estou vendo muitas definições diferentes sendo passadas e eu estou querendo saber se elas estão tentando realizar a mesma coisa. Qual é a diferença entre o seguinte? integer*4 integer(4) integer(kind=4)

Parâmetro tipo Fortran 90

Eu estou tendo problemas para entender o parâmetro kind do Fortran 90. Tanto quanto eu posso dizer, ele não determina a precisão (ou seja, float ou double) de uma variável, nem determina o tipo de uma variável. Então, o que determina e para que exatamente é isso?