IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Fortran Discussion :

équation de la chaleur erreur syntaxe


Sujet :

Fortran

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2012
    Messages : 7
    Points : 3
    Points
    3
    Par défaut équation de la chaleur erreur syntaxe
    je mal connait le fortran
    j'ai rédigé un code source de l’équation de propagation de la chaleur
    mais il reste des erreurs de compilation
    SVP je besoin de votre aide pour corriger
    merci beaucoup


    le voici



    program equation de la chaleur
    implicit none
    parameter m, n, mmax=10, nmax=18
    real : alpha, detax, deltat
    common /temper/t(mmax,nmax)
    m=11
    n=18
    alpha=4.d-6
    deltax=1.d-2
    deltat=1.d0
    r=alpha*deltat/(detax)**2
    do j=1,1
    do i=1,m
    t(i,j)=300
    end do
    end do
    do j=2,n
    do i=1,1
    t(i,j)=350
    end do
    end do
    do j=2,n
    do i=m,m
    t(i,j)=440
    end do
    end do
    !methode explicite de resolution
    do j=1,n
    do i=2,m-1
    t(i,j+1)=r*t(i-1,j)+(1-2*r)*t(i,j)+r*t(i+1,j)
    end do
    end do
    do j=1,n
    write(12,10)j, (t(i,j),i=1,m)
    end do
    stop
    end program equation de la chaleur

  2. #2
    Membre habitué
    Homme Profil pro
    Ingénieur modélisation aérodynamique
    Inscrit en
    Juillet 2009
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur modélisation aérodynamique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 105
    Points : 128
    Points
    128
    Par défaut
    Bonjour,
    Je n'ai pas regardé le code en détail, mais déja tes déclarations ne sont pas bonnes.
    Les messages du compilateur devraient être assez clairs dans ce cas là.

    1) Le type des variables n , m, nmax, mmax, temper et t n'est pas précisé.
    2) L'affectation de variables déclarées "parameter" n'est pas permise :
    n'est pas autorisé si m et n sont des "parameter", tu dois les initialiser une fois pour toute dans la déclaration des variables comme nmax et mmax.

    Sinon pourquoi utilises-tu un common pour temper et t ? C'est un formalisme assez vieux et qui n'est pas forcément nécessaire ici.

    Dernière remarque, peux-tu modifier ton post en mettant des balises "[ code ]ton programme[ /code ]" autour du programme pour plus de lisibilité ?

  3. #3
    Membre actif
    Profil pro
    ingénieur
    Inscrit en
    Novembre 2011
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur

    Informations forums :
    Inscription : Novembre 2011
    Messages : 165
    Points : 259
    Points
    259
    Par défaut
    il y a beaucoup d'erreurs qui ne devraient pas être présentes si tu avais lu les 5 premières pages d'un manuel de fortran, et je ne parle même pas des erreurs de syntaxe, des variables déclarées dans le mauvais type ni des variables déclarées mais pas utilisées....

    essaye ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    program equation_de_la_chaleur                                                           
     
    implicit none                                                                             
     
    integer, parameter :: m=11, n=18                                                           
    integer :: i,j                                                                   
    real :: alpha, deltax, deltat                                                 
    real :: r                                                                         
    real, dimension(m,n) :: t                                                     
     
    alpha=4.d-6                                                                           
    deltax=1.d-2                                                                        
    deltat=1.d0                                                                      
    r=alpha*deltat/(deltax)**2                                                                 
     
    do i=1,m                                                                             
      t(i,1)=300                                                                        
    end do                                                                              
     
    do j=2,n                                                                         
       t(1,j)=350                                                                       
    end do                                                                                
     
    do j=2,n                                                                                 
       t(m,j)=440                                                                          
    end do                                                               
     
    !methode explicite de resolution                                                           
    do j=1,n                                                                              
      do i=2,m-1                                                                           
        t(i,j+1)=r*t(i-1,j)+(1-2*r)*t(i,j)+r*t(i+1,j)                                          
      end do                                                                                
    end do                                                                                 
     
    do j=1,n                                                                            
      write(1,*) j, (t(i,j),i=1,m)                                                       
    end do                                                                           
     
    end program equation_de_la_chaleur

Discussions similaires

  1. Réponses: 7
    Dernier message: 07/04/2015, 07h35
  2. [erreur syntaxe]
    Par viny dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 15/11/2005, 16h49
  3. Erreur syntaxe
    Par diaboloche dans le forum Langage
    Réponses: 12
    Dernier message: 19/10/2005, 17h47
  4. erreur syntaxe dans requete
    Par dom - ien moutiers dans le forum Requêtes
    Réponses: 5
    Dernier message: 19/04/2004, 12h54
  5. [EXISTS] Version MySql ou erreur syntaxe ?
    Par Kimael dans le forum Requêtes
    Réponses: 5
    Dernier message: 01/04/2004, 18h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo