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 :

Calcul matriciel


Sujet :

Fortran

  1. #1
    Candidat au Club
    Femme Profil pro
    Doctorante
    Inscrit en
    Janvier 2019
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : Algérie

    Informations professionnelles :
    Activité : Doctorante

    Informations forums :
    Inscription : Janvier 2019
    Messages : 1
    Points : 3
    Points
    3
    Par défaut Calcul matriciel
    Bonjour svp est ce que vous pouvez m'aider à corriger mon code qui ne compile pas. Je ne sais pas où est le problème ??
    !calcul matriciel
    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    program matrice
        dimension A(8,8),B(8,8),C(8,8),D(8,8),F(8,8)
        integer i,j,n
        write(*,*) "inserez l'ordre de matrice n"
        read(*,*) n
          do i=1,n
            do j=1,n
              C(i,j)=0
              D(i,j)=0
              F(i,j)=0
     
              end do
              end do
     
              write(*,*) "inserez les elements de la matrice A"
              do i=1,n
                read (*,*) (A(i,j),j=1,n)
                end do
     
              write (*,*) "inserez les elements de la matrice B"
              do i=1,n
                read (*,*) (B(i,j),j=1,n)
                end do
     
                do i=1,n
                  do j=1,n
     
                   C(i,j)= A(i,j)+B(i,j)
                   end do
                   end do 
     
                   write(*,*) "la matrice C est:"
                   do i=1,n
                     write (*,*) (C(i,j),j=1,n)
                     end do 
     
                 do i=1,n
                  do j=1,n
                    do k=1,n
     
     
                   D(i,j)= D(i,j)+ A(i,k)*B(k,j)
                   end do
                   end do
                   end do
     
                   write(*,*) "la matrice D est:"
                   do i=1,n
                     write (*,*) (D(i,j),j=1,n)
                     end do 
     
                     write(*,*)"calcul de F"
     
                    call mysub(A,B,F)
                    stop
     
                     end program matrice
     
     
                   subroutine mysub(A,B,F)
                 dimension A(8,8),B(8,8),F(8,8)
                 write(*,*) "inserez l'ordre de matrice n"
     
                 read(*,*)n
                   do i=1,n
                     do j=1,n
                       F(i,j)= (A(i,j)*6) + (B(i,j)-2)
                       end do 
                       end do 
                       write(*,*)"la matrice F est:"
                       do i=1,n
              write(*,*) (F(i,j),j=1,n)
                    end do 
     
                    end subroutine mysub
    est-ce que vous pouvez m'aider comment j'utilise la fonction COMMON dans ce script ?? Merci infiniment

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 488
    Points : 593
    Points
    593
    Par défaut
    Bonjour,

    Ton exemple compile chez moi. Quels messages d'erreur obtiens-tu?

    Par ailleurs, il est fortement conseiller de déclarer explicitement les variables et débuter chaque programme/routine/fonction par "implicit none" pour s'en assurer.
    Ensuite, pour tester qu'on programme fonctionne bien il ne faut pas oublier de le compiler avec des options de débogage, par exemple "-ffpe-trap=invalid,zero,overflow -fbounds-check -finit-real=snan -fbacktrace" avec gfortran, afin d'avoir les informations utiles pour comprendre les soucis à la compilation et d'éventuels problèmes rencontrés à l'exécution.

    Je ne vois pas ce que tu entends par "fonction common". L'instruction "common" sert à créer un bloc de données partagé par des routines (sans passage d'information via les arguments). C'est limite obsolète et pas très recommandé; il est largement préférable d'utiliser des modules pour partager des données.

    Bonne continuation.

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