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 :

Sorties, en exécution, nulles


Sujet :

Fortran

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Février 2009
    Messages : 15
    Par défaut Sorties, en exécution, nulles
    Bonjour à tous!
    Je programme sous Fortran et j'ai quelque problèmes que j'arrive pas à résoudre !!!
    Les ligne qui posent problèmes sont :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    A4=R*T*log((1+(J*R*da*T/4*F*DO2eff*PO2))**(0.5))/(2*F)
     
    A3=R*T/2*F*
         $ log((1+J*R*T*dc/2*F*DH2Oeff*PH2)/(1-J*R*T*dc/2*F*DH2Oeff*PH2))
     
    A7=0.0000299*J*L*exp(10300/T)
    sachant que mes entrée depuis le clavier sont: dc,da,T,L et que DH2Oeff et DO2eff sont calculées dans le programme lui même avant les expressions A3;A4 et A7!! (DH2Oeff=11.85514 et DO2eff=3.648298)

    Le problème c'est que les sorties lors de l'exécution me donnent :
    A3=0
    A4=0
    et A7=0

    Les valeurs que je rentre depuis le clavier sont :
    T=1273
    dc=0.0001
    da=0.0001
    L=0.001
    PH2=0.4
    PO2=1

    Ce que j'ai compris c'est que il s'agirait peut être de la saisie ! C'est comme si les valeurs que je rentrais n'étaient sont pas lues !!!!!

    Merci de prendre le temps de me répondre.

  2. #2
    Membre émérite
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 758
    Par défaut
    bonjour,

    est ce que tu as vérifié, après saisie clavier, que les variables sont effectivement renseignées, avant même de les mettre dans ton équation (loi d'arrhénius ?) ?

    si oui, es tu certain que les variables A3, A4 et A7 sont bien les variables-résultats de ton expression ? est ce qu'elles transitent par une subroutine ou une fonction ou est ce que la saisie clavier, le calcul et l'affichage sont dans le même bloc ?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 45
    Par défaut
    Oui je pense que Kango est sur la bonne piste. Si le programme n'est pas trop long donne nous le code et on verra vite pourquoi les sorties sont nulles....

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Février 2009
    Messages : 15
    Par défaut Le programme en entier
    Bonjour,
    Merci tout d'abord pour vos réactions concernant mon problème.

    Le programme est le suivant :
    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
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    PROGRAM SIMULATION
     
     
    	 INTEGER dc, da, PH2, PH2O, PO2, L, J
     
     
    	 REAL T, OmegaH2O, J0a, J0c, DH2Oeff, DO2eff
     
     
     
    	 REAL A, A1, A2, A3, A4, A5, A6, A7
     
     
    	 REAL Omega1, Omega2, Omega3, Omega4, 
     
     
     
    	 REAL V
     
     
     
     
    	 Parameter (R=8.3145,F=96485)
     
     
     
     
     
            write (*,*) 'Donner T='
     
    	    read (*,*) T
     
    	  write (*,*) 'Donner dc='
     
    	    read (*,*) dc
     
    	  write (*,*) 'Donner da='
     
    	    read (*,*) da
     
    	  write (*,*) 'Donner L='
     
               read (*,*) L
     
    	  write (*,*) 'Donner PH2='
     
               read (*,*) PH2
     
    	  write (*,*) 'Donner PH2O='
     
    	    read (*,*) PH2O
     
    	  write (*,*) 'Donner PO2='
     
              read (*,*) PO2
     
     
     
     
     
     
    	 do J=1,10000
     
     
           open(unit=10,
     
         $ file='D:\Fortran_these\Rihab_these\results\overpotentials.dat')
     
     
           open(unit=20,
     
         $ file='D:\Fortran_these\Rihab_these\results\ConcentrationC.dat')
     
    	  open(unit=30,
     
         $ file='D:\Fortran_these\Rihab_these\results\ConcentrationA.dat')
     
           open(unit=40,
     
         $ file='D:\Fortran_these\Rihab_these\results\Ohmic.dat')
     
    	 open(unit=50,
     
         $ file='D:\Fortran_these\Rihab_these\results\ActivationSUM.dat')
     
     
           open(unit=60,
     
         $ file='D:\Fortran_these\Rihab_these\results\ActivationA.dat')
     
    	open(unit=70,
     
         $ file='D:\Fortran_these\Rihab_these\results\ActivationC.dat')
     
     
     
     
           J0a=2.05E+09*exp(-14432.6/T)
     
     
     
    	 J0c=13.44E+09*exp(-12027.18/T)
     
     
     
     
            !======= Calcul de DH2Oeff à l'aide de OMega_D ========!
     
     
     
    	 Omega1=1.06036/((0.00455*T)**(0.15610))
     
           Omega2=0.19300/exp(0.0021674*T)
     
    	 Omega3=1.03587/exp(0.0069613*T)
     
    	 Omega4=1.76474/(0.017718*T)
     
     
          Omega_D=Omega1+Omega2+Omega3+Omega4
     
     
    	 DH2Oeff=1/(5454.64463*Omega_D/T**(0.6667)+646287.0807*T**(-0.5))
     
    DO2eff=0.102253*T**(0.5)
     
              !=====Calcul des différents potentiels ============!
     
     
     
    	      !============ Calcul de E ============!
     
    	 A1=1.253-(2.4516E-04*T)
     
     
     
    	 A=0.4/0.6
     
     
    	 A2= R*T*log(A)/(2*F)
     
     
    !================= Calcul du potentiel de concentreation_C ========!
     
     
     
              B33=J*R*T*dc
     
     
    	    C33=2.*F*DH2Oeff*PH2
     
     
              A33=B33/C33
     
     
    	 A3=R*T/(2*F*log((1+A33)/(1-A33)))
     
     
     
          !======== Calcul du potentiel de concentreation_A ========!
     
     
     
    	 A4=(R*T*log((1+(J*R*0.0001*T/4*F*DO2eff))**(0.5)))/(2*F)
     
     
     
             !================= Calcul du potentiel d'activation_A ========!
     
     
    	 A5=(R*T*log(J/2*J0a+(1+(J/2*JOa)**2)**(0.5)))/F
     
     
     
    	   !================= Calcul du potentiel d'activation_C ========!
     
     
     
    	 A6=(R*T*log(J/2*J0c+(1+(J/2*JOc)**2)**(0.5)))/F
     
     
     
     
             !================= Calcul du potentiel Ohmique ========!
     
     
    	 A7=exp(10300/T)*J*L*2.99E-05
     
     
     
     
     
    	   V=A1+A3+A4+A5+A6+A7
     
     
     
     
    	         write (*,*) 'A1=', A1
     
    		 write (*,*) 'A2=', A2
     
    	         write (*,*) 'A3=', A3
     
    	         write (*,*) 'A4=', A4
     
    	         write (*,*) 'A5=', A5
     
    	         write (*,*) 'A6=', A6
     
    	         write (*,*) 'A7=', A7
     
    	         write (*,*) 'V=', V
     
    	         write (*,*) 'J=', J
     
     
    	    write (10,*), V
     
    	    write (20,*), A3
     
    	    write (30,*), A4
     
    	    write (40,*), A7
     
              write (50,*), A8
     
    	    write (60,*), A5
     
    	    write (70,*), A6
     
     
     
     
    	   enddo
     
    	close (10)
     
    	close (20)
     
          close (30)
     
    	close (40)
     
    	close (50)
     
    	close (60)
     
    	close (70)
     
    	 stop
     
    	 END PROGRAM SIMULATION



    Les sorties nulles concernent: A3, A4 et A7


    Merci

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 45
    Par défaut
    Salut Rihab,

    Bon il y a plusieurs problemes a ton programme.

    1) tu declares les variables dc, da, PH2, PH2O, PO2, L, J entieres
    alors que tu donnes comme valeurs a dc=0.0001, da=0.0001, L=0.001
    PH2 =0.4....
    donc ca va mal se passer... Il va prendre la partie entiere et donc ca va etre 0. Normalement il devrait te mettre une erreur a l'execution a cause de ce probleme de type.
    Il faut donc passer ces variables en real

    2) ouvrir des fichiers dans la boucle sur J est assez deconseille. J'ai modifie ton code pour stocker tes resultats dans 1 seul fichier plutot que dans 7 fichiers. J'ouvre ce fichier en dehors de la boucle.

    3) tes donnees je les stocke dans un fichier de donnees (donnees.dat) pour eviter de rentrer les valeurs au clavier, ce qui devient assez fastidieux a la longue.


    4) tu definis J0a et J0c mais dans tes formules tu as ecris JOa et JOc
    donc ces valeurs seronts prises nulles dans le meilleurs des cas...

    5) la variable da est entree comme donnee mais tu ne l'utilises pas ensuite...est normale ?

    6) tu stockes la variable A8 mais elle n'a jamais ete calculee..

    7) les variables omega1, omega2,omega3, omega4, omega_D
    , DH2Oeff, DO2eff, A, A1 , A2 et C33
    n'evoluent pas en fonction des iterations J. Il faut les sortir de la boucle..

    8) OmegaH2O est declaree mais pas utilisee....

    9) mets des . derrieres les constantes reelles.

    conclusions tes sorties A1, A2, A3 ne sont plus nulles

    par contre tu as A3 et V qui divergent !!

    re-controle tes formules, voit pourquoi certaines variables ne sont pas utilisees (da, OmegaH2O,...)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
           1273.      !  T
           0.0001     ! dc
           0.0001     ! da
           0.001      !  L
           0.4        ! PH2
           0.1        ! PH2O (j'ai mis cette valeur au pif tu ne nous en a pas parle)
           1.         ! PO2


    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
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
     
     
     
            PROGRAM SIMULATION
     
            Integer J
            REAL dc, da, PH2, PH2O, PO2, L
            REAL T, OmegaH2O, J0a, J0c, DH2Oeff, DO2eff
            REAL A, A1, A2, A3, A4, A5, A6, A7
            REAL Omega1, Omega2, Omega3, Omega4, V
     
     
            Parameter (R=8.3145,F=96485.)
     
               open(unit=1,file ='donnees.dat')
               open(unit=10,file ='resultats.dat')
     
            read (1,*) T
            read (1,*) dc
            read (1,*) da
            read (1,*) L
            read (1,*) PH2
            read (1,*) PH2O
            read (1,*) PO2
     
     
    ! ======= calculs preliminaires ===================== !
     
             J0a=2.05E+09*exp(-14432.6/T)
     
             J0c=13.44E+09*exp(-12027.18/T)
     
     
    !======= Calcul de DH2Oeff à l'aide de OMega_D ========!
     
     
     
             Omega1=1.06036/((0.00455*T)**(0.15610))
     
             Omega2=0.19300/exp(0.0021674*T)
     
             Omega3=1.03587/exp(0.0069613*T)
     
             Omega4=1.76474/(0.017718*T)
     
     
             Omega_D=Omega1+Omega2+Omega3+Omega4
     
     
           DH2Oeff=1./(5454.64463*Omega_D/T**(0.6667)+646287.0807*T**(-0.5))
     
             DO2eff=0.102253*T**(0.5)
     
    !============ Calcul de E ============!
     
                  A1=1.253-(2.4516E-04*T)
                  A=0.4/0.6
                  A2= R*T*log(A)/(2*F)
     
    ! ========calcul de C33 ==============!
     
               C33=2.*F*DH2Oeff*PH2
     
    ! ============  debut des iterations  =================
     
            do J=1,10000
     
     
    !=====Calcul des différents potentiels ============!
     
     
    !================= Calcul du potentiel de concentreation_C ========!
     
     
     
                       B33=J*R*T*dc
                       A33=B33/C33
     
                       A3=R*T/(2.*F*log((1.+A33)/(1.-A33)))
     
     
     
    !======== Calcul du potentiel de concentreation_A ========!
     
     
     
              A4=(R*T*log((1.+(J*R*0.0001*T/4*F*DO2eff))**(0.5)))/(2.*F)
     
     
     
    !================= Calcul du potentiel d'activation_A ========!
     
     
              A5=(R*T*log(J/2.*J0a+(1.+(J/2.*J0a)**2)**(0.5)))/F
     
     
     
    !================= Calcul du potentiel d'activation_C ========!
     
     
     
              A6=(R*T*log(J/2.*J0c+(1.+(J/2.*J0c)**2)**(0.5)))/F
     
     
     
     
    !================= Calcul du potentiel Ohmique ========!
     
     
              A7=exp(10300./T)*J*L*2.99E-05
     
     
               V=A1+A3+A4+A5+A6+A7
     
    !================ ecriture … l'‚cran ==================!
     
            write(*,*) ' ============ Iteration ' , J, ' ============'
     
                       write (*,*) 'A1=', A1
                       write (*,*) 'A2=', A2
                       write (*,*) 'A3=', A3
                       write (*,*) 'A4=', A4
                       write (*,*) 'A5=', A5
                       write (*,*) 'A6=', A6
                       write (*,*) 'A7=', A7
                       write (*,*) 'V=', V
     
            write(*,*)' '
     
    C ================ ecriture dans le fichier de r‚sultats===========!
     
            write(10,*) ' ============ Iteration ' , J, ' ============'
                       write (10,*)'overpotentials = ', V
                       write (10,*)'ConcentrationC = ', A3
                       write (10,*)'ConcentrationA = ', A4
                       write (10,*)'Ohmic = ', A7
                       write (10,*)'ActivationSUM = ', A8
                       write (10,*)' ActivationA = ', A5
                       write (10,*)' ActivationC = ', A6
                       write(10,*)' '
     
     
     
                       enddo
     
                       close (10)
     
     
                       stop
     
                       END PROGRAM SIMULATION

    Ca devrait aller mieux..., encore un peu de courage et tu devrais voir le bout du tunel ...

Discussions similaires

  1. v3.2.1 sortie avec valeur nulle
    Par munity dans le forum Développement de jobs
    Réponses: 2
    Dernier message: 13/07/2012, 13h10
  2. VB6 - Erreur en sortie d'exécutable
    Par syntax_error dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 18/02/2011, 12h23
  3. [SQL] Comment ne pas exécuter une clause WHERE si une var est nulle
    Par charlysquare dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 01/05/2006, 21h12
  4. Réponses: 5
    Dernier message: 24/10/2005, 15h11
  5. Comment rediriger la sortie vers /dev/null
    Par dclink dans le forum C
    Réponses: 4
    Dernier message: 24/06/2003, 18h23

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