PROGRAMANDO EM FORTRAN

1. PROGRAMANDO EM FORTRAN

aline de souza silva
jhiki

(usa Ubuntu)

Enviado em 15/07/2017 - 19:58h

Oi, Estou usando o fortran para programar em subrotinas e funções. Estou obtendo como resposta o seguinte erro:

/tmp/ccDXfqaD.o: na função `MAIN__':
Principal.f90:(.text+0xa): referência indefinida para `entrada_'
Principal.f90:(.text+0x14): referência indefinida para `exec_'
Principal.f90:(.text+0x1e): referência indefinida para `saida_'
collect2: error: ld returned 1 exit status

Coloquei os códigos sequenciais do meu programa... Alguém sabe o que deu errado neste programa??

Module Var_Glob
Implicit none
Integer :: i, ref(6),Num_modal
Real :: Preco(6), sem_desconto,Com_desconto
Character::Modalidades(6)*12, texto
Integer, allocatable:: Num_ref(:)
scontains


function Conta (valor,n_modalidade,n_ref) !Valor final sem desconto
Real::conta,Valor(6),soma
Integer::n_modalidade,cont
Integer::n_ref(n_modalidade)

soma=0.0

Do cont=1, n_modalidade
!Valor é o vetor de preços
Soma= valor(n_ref(cont)) + soma !Ref é o vetor só com pŕeços usados
End do


Conta=soma
End function


Function desconto(Valor_total,n_modalidade)
Real::desconto, Valor_total
integer::n_modalidade

IF( n_modalidade==2) desconto=-Valor_total*0.1+Valor_total

IF( n_modalidade==3) desconto=-Valor_total*0.2+Valor_total

IF( n_modalidade>3) desconto=-Valor_total*0.3+Valor_total



End function


End Module

Préprocessanento

Subroutine Entrada
Use Var_Glob
Implicit none

open (unit=1,file="academica.dat",status="old")

Read(1,*) texto,(Ref(i),i=1,6)
Read(1,*) texto,(Modalidades(i),i=1,6)
Read(1,*) texto,(Preco(i),i=1,6)



write(*,*)"Digite quantas modalidades você fez"
Read(*,*)Num_modal !Quantidade de modalidades

Allocate(Num_ref(Num_modal) ) !Salva as referências utilizadas

write(*,*)"Com espaço entre as modalidades"
write(*,*)"Digite quais modalidades você fez"
write(*,*)"De acrodo com o menu abaixo"
write(*,*) (Ref(i),i=1,6)
write(*,*) (Modalidades(i),i=1,6)

Read(*,*)(Num_ref(i),i=1,Num_modal)

!write(*,*)(Num_ref(i),i=1,Num_modal)

!write(*,*) (Ref(i),i=1,6)
!write(*,*) (Modalidades(i),i=1,6)
!write(*,*) (Preco(i),i=1,6)



End Subroutine

Principal

Program Main


Call Entrada

Call Exec

Call Saida

End Program


pos processamento

Subroutine Saida
Use Var_Glob
Implicit none





Write(*,*)"O total sem desconto é",Sem_desconto

Write(*,*)"O total com desconto é",Com_desconto


End Subroutine

processamento

Subroutine Exec
Use Var_Glob
Implicit none


Sem_desconto=Conta (preco,Num_modal,num_ref)

Com_desconto=desconto(Sem_desconto,Num_modal)

End Subroutine

É isso... Se alguém souber... Me ajudem!


  


2. Re: PROGRAMANDO EM FORTRAN

singleMan
singleMan

(usa Debian)

Enviado em 16/07/2017 - 12:43h

Nao faço ideia de como resolver seu problema, apenas tenho uma dúvida, porque esta aprendendo FORTRAN??? até hoje nunca vi ninguém recomendado tal linguagem para ninguém, estou curioso rsrs.


3. fortran

aline de souza silva
jhiki

(usa Ubuntu)

Enviado em 16/07/2017 - 14:14h

Entao... Rsrs... Eh pq na engenharia se usa mto fortran para programação... Pelo menos a da uff... Ate então me disseram que ele é um otimo programa para calculos... Mas eh complexo pra carai...


4. Re: PROGRAMANDO EM FORTRAN

Edson Fernando Fumachi
eff666

(usa Debian)

Enviado em 16/07/2017 - 21:42h

Boa noite

Qual compilador e sistema operacional você está usando?

Como foi escrito acima...
Mesmo você fazendo engenharia, e Fortran ser usado para cálculos, acredito que saber uma linguagem apenas é ruim... Ainda mais Fortran.

Sugiro python!
Mais rápido, "fácil ", e está na "moda"

Grandes empresas utilizam...

Eu uso Fortran, C, python, mathematica e MATLAB...






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts