Table of Contents
Actualizado
Si su computadora encuentra un sorprendente error de declaración de datos de Fortran, debe consultar estos métodos de solución de problemas.
Escribí cada programa de prueba para demostrar el error de documento de escritura que recibo al compilar el código Fortran. Se produce un error problemático en la línea en la que realmente siento que intento crear una matriz que apunte a casi todos los tamaños. Creo que se puede hacer aquí en código C con un simple malloc
, sin embargo, de esta manera, incluida la metodología, nunca podría ser útil en Fortran.
¿Qué está mal y cómo lo hago? solución Estoy usando su compilador gfortran
actual en GNU Linux
, así que creo que será posible usar todo el lenguaje compatible que viene con.
Programa de prueba
implícitamente no num1, entero num2 pic -, 'Empezar...' num1 funciona con 10 Número2 = 11 ponerse en contacto con bajo (num1, Num2) listado *, "Terminado".salir del programaSubrutina (número1, número2) número entero num1, num2 entero 3 num3 = num1 num2 + a 1 entero A (num3) hacer i = seguro, número 3 A (i) implica i hacer el final print *, 'Ahora grafica el vector de la casa' quiero decir 1, número 3 imprimir *, A (i) interferirFin de subrutina
Aquí está el paquete cmake
que se está utilizando para compilar mi programa experimental simple:
cmmake_minimum_required (VERSIÓN 2.6)Proyecto (prueba Fortran)add_executable (pruebaprueba.f90) Fin de números
/media/RESEARCH/SAS2-version2/test-Q-filter/test-Fcreation/test.f90:20.16: entero A (num3) 1Error: declaración de documento desesperada en declaración (1)/media/RESEARCH/SAS2-Version2/test-Q-filter/test-Fcreation/test.f90:23.10: A (i) es igual a i 1Error: instrucción STATEMENT FUNCTION inesperada en (1)hacer [2]: *** [CMakeFiles versus test.dir / test.f90.o] Error 1make [1]: *** [CMakeFiles y test.dir / all] Error 2hacer: [todos] *** error 2
Escribí unas sencillas lecciones de prueba para demostrar el error de declaración de información que obtengo incluso al compilar código Fortran. Se produce un error de adición en una línea que debo crear para crear una matriz de todos y cada uno de los tamaños. Creo que se puede hacer alrededor del código C con un simple malloc
, pero aún así este tipo construido metódicamente podría no intentar ser útil en Fortran.
¿Qué está mal y cómo puedo solucionarlo? Estoy usando parte del compilador gfortran
en GNU Linux
, por lo que creo que siempre será posible brindarle toda la funcionalidad fácil de seguir de un idioma compatible. . Chequeimplícito
curso de formación no enteronum1, numero2 imprimir, "empezar..." num1 significa 10 Número 2 implica 11 llamar bajo (num1, Num2) imprimir *, "Listo".salir del programaSubrutina (número1, número2) número entero num1, num2 enteroNum3 Num3 es igual a num1 + num2 o 1 entero A (num3) hacer i implica 1, número 3 A (i) es igual a i hacer el final print 1 ., 'Imprimir ahora así como vector' voy a hacer 1, num3 imprimir (en blanco), A (i) detenerFin de una subrutina
Aquí está el software cmake
que de hecho se usó para compilar mi programa simple:
Actualizado
¿Estás cansado de que tu computadora funcione lentamente? ¿Le molestan los frustrantes mensajes de error? ¡ASR Pro es la solución para ti! Nuestra herramienta recomendada diagnosticará y reparará rápidamente los problemas de Windows mientras aumenta drásticamente el rendimiento del sistema. Así que no esperes más, ¡descarga ASR Pro hoy!
cmmake_minimum_required (VERSIÓN 2.6)Proyecto (prueba Fortran)add_executable (pruebaprueba.f90) Fin de números
/media/RESEARCH/SAS2-version2/test-Q-filter/test-Fcreation/test.f90:20.16: entero A (num3) 1Error: declarar resultados inesperados para el operador (1)/media/RESEARCH/SAS2-Version2/test-Q-filter/test-Fcreation/test.f90:23.10: A (i) significa yo 1Error: instrucción STATEMENT FUNCTION inesperada en (1)hacer [2]: *** [CMakeFiles para cada test.dir / test.f90.o] Error 1hacer [1]: *** [CMakeFiles - test.dir / all] Error 2hacer: *** [todos] 2
Hola a todos los errores, estoy escribiendo una estrategia que realizará una inversión lineal de algunos datos de larga duración. Soy nuevo en Fortran pero codifiqué Fourier con transformada de ondícula progRamm. Tengo un problema particular cuando trato de declarar tipos específicos de variables. Utilizo la opción "Dimensión" para hacer esto, ya que en programas anteriores la idea establecía el tamaño de varias matrices una vez. Por alguna razón, cuando se compila también, localizo "Instrucción de cosa de datos inesperados. El código" ya no se encuentra en comparación, así que solo copié la afirmación del parámetro y la pegué en otro archivo, pero aún persiste un nuevo error. Es como si mi compilador no reconociera el comando de medida, pero cuando intento compilar el programa anterior que usa este método, funciona bien. Aunque no aplico el comando de medición, el compilador todavía encuentra dilemas. Estoy seguro de que algo anda muy mal, simplemente no puedo encontrarlo.
[... ~ / estudios / Tarea2] gfortran A2P1test.f
A2P1test.f: 26.72:
real, :: dimensión (0: D-1) Inp_Data, T, B_obs
1
Error: declaración de datos inesperados en (1) estilo
A2P1test.f: 27.72:
real, dimensión (0:P-1) :: Bx, Bz Inesperado
1
Error: declaración para hacer reclamos datos en (1)
A2P1test.f: 28.72:
real, dimensionalst (0: D-1.0: P-1) :: A
1
Error: solicitud de informe de datos inesperado para (1)
Otro hecho extraño para mí es que al configurar i P y D usando una declaración de parámetro (como he usado en el pasado), el compilador come los elementos como reales y no básicamente como números enteros. Tamaño (0: D-1)
real, :: Inp_Data, T, B_obs
1
Error: instrucción de guardado inesperada en (1)
A2P1test.f: 27.72:
real, dimensión (0:P-1) :: Bz bx,
1
Error: Posible declaración de datos inesperados en solo (1)
A2P1test.f: 28.72:
real, dimensión (0: D-1.0: P-1) :: A
1
Error: declaración de datos inesperados con respecto a (1)
* Este código realiza una buena inversión en línea recta de un conjunto de datos magnetizado* mediante el implemento de prismas variables bidimensionales* >>>>>>>>>>>>>>>>>>>> explicar las clasificaciones <<<<<<<<<<<<<<<<<<<<* pi = pi* u_0 = permeabilidad del tiempo de flujo* D = cantidad de datos magnéticos* P = número de restricciones (prismas)* T = anomalía última del campo* B_obs = datos sin procesar como intensidad absoluta* Bx = Bx en la matriz de relleno A. obtenemos* Bz = Bz de hecho debe estar en la matriz de relleno A. ser usado* A equivale a Fault Matrix adelante con la física* >>>>>>>>>>>>>>>>>>>>>>>> Declaración de modo variable <<<<<<<<<<<<<<<<<<< << < <<>>>>>>>>>>>>>>>>>>>>> Cuantificación de varios parámetros <<<<<<<<<<<<<<<<<<<<<
A2P1test.f: 28.24: real, dimensión (0: D-1.0: P-1) :: A 1Error: la expresión en (1) de hecho debe llegar a ser de tipo INTEGER, encontrado REALA2P1test.f: 28.30: real, dimensión (0: D-1.0: P-1) :: A 1Error: el término en (1) debe ser REAL relativo directamente al tipo INTEGER, encontradoA2P1test.f: 28.39: real, dimensión (0: D-1.0: P-1) :: A 1Error: parte o variante del programa principal 'a' para (1) debe tener forma eternaA2P1test.f: 26.24: real, tamaño (0: D-1) :: Inp_Data, T, B_obs 1Error: para la expresión (1), el tipo debe ser INTEGER, encontrado REAL.Prueba A2P1.f: 26.50: real, tamaño (0: D-1) :: Inp_Data, T, B_obs 1Error: Juego de módulo o programa requerido y 'b_obs' en (1) debe tener forma repetidaA2P1test.f: 27.24: sensible, medida (0:P-1) :: Bx, Bz 1Error: el período de tiempo en (1) debe ser de tipo INTEGER, encontrado REAL.A2P1test.f: 27.34: significativo, medida (0: P-1) :: Bx, Bz 1Error: un nuevo módulo de la tabla potencialmente principal vinculado con el programa 'bx' en (1) debe tener forma continuaA2P1test.f: 27.24: real, medida (0: P-1) :: Bx, Bz 1Error: el nombre en (1) debe ser de tipo INTEGER, aprendido REAL.A2P1test.f: 27.38: sustancial, medida (0:P-1) :: Bx, Bz 1Error: el módulo o placa de software dominante 'bz' en (1) debe convertirse en constante.A2P1test.f: 26.24: exactamente, tamaño (0: D-1) :: Inp_Data, T, B_obs 1Error: para el recorrido (1) se debe seleccionar el tipo INTEGER, se encontró REALPrueba A2P1.f: 26.40: real, punto (0: D-1) :: Inp_Data, T, B_obs 1Error: La unidad o variante del programa principal inp_data presente en (1) debe ser crónica.A2P1test.f: 26.24: real, tamaño (0: D-1) :: Inp_Data, T, B_obs 1Error: la expresión (1) debe estar asociada por tipo INTEGER, se encontró REALA2P1test.f: 26.43: real, tamaño (0: D-1) :: Inp_Data, T, B_obs1Error: el módulo de código tradicional o la matriz 't' en (1) debería generar una forma constante
>>>>>>>>>>>>>>>>>>>>>>>>> Declarar tipos de variables <<<<<<<<<<< << < << < <<<<<
Acelera tu computadora hoy con esta simple descarga.
Fortran Error Unexpected Data Declaration Statement
Fortran Error Oväntat Datadeklaration
Fortran Error Onverwachte Verklaring Van Gegevensaangifte
Fortran Error Unexpected Data Declaration Statement
Declaração De Declaração De Dados Inesperados De Erro Fortran
Dichiarazione Di Dichiarazione Dei Dati Imprevista Di Errore Fortran
Заявление об объявлении непредвиденных данных об ошибке Fortran
포트란 오류 예기치 않은 데이터 선언문
Błąd Fortran Nieoczekiwana Deklaracja Danych
Instruction De Déclaration De Données Inattendues D'erreur Fortran