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 :

Problème de thermodynamique


Sujet :

Fortran

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2019
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Problème de thermodynamique
    Bonjour tout le monde. J'ai besoin d'aide pour faire tourner ce programme
    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
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
    319
    320
    321
    322
    323
    324
    325
    326
    327
    328
    329
    330
    331
    332
    333
    334
    335
    336
    337
    338
    339
    340
    341
    342
    343
    344
    c PROBLEME DE THERMODYNAMIQUE Nø3
    c
    c                         CARON Laurent
    c                         MAYER Martine
    c
    c**********************************************************************
     
          PARAMETER ( eps = 1e-4 , gamma = 1.4 )
          COMMON/criti/Tc,Pc,Omega
          LOGICAL Liqvap
          DIMENSION Termlq(4),Termvp(4)
     
          CALL donnee(Ti,Rcomp,eta,cpa,cpb,cpc,cpd,anta,antb,antc,M)
     
    C----CALCUL DE LA PRESSION EN ENTREE DU COMPRESSEUR
     
          T = Ti
          P =EXP(anta-antb/(antc+T))/760
       10 CONTINUE
          CALL Penduc(T,P,Termlq,Termvp,Liqvap)
           F = Termlq(4) - Termvp(4)
           Fp= Termlq(1)/P - Termvp(1)/P
           Pint = P - F / Fp
           IF (ABS((Pint-P)/P).LT.eps) THEN
           	   Pi = P
    	   WRITE(*,*)'La pression initiale est de : ',Pi,' atm'
            ELSE
      	   P = Pint
    	   GOTO 10
           ENDIF
     
    C----CALCUL DE LA TEMPERATURE DE SORTIE
     
          Svi = Termvp(3)
          Sli = Termlq(3)
          Hli = Termlq(2)
          Hvi = Termvp(2)
     
    C--Cas du gaz parfait
     
          Tfis1 = Ti * Rcomp**(( gamma - 1)/ gamma)
     15   DS=cpa*log(Tfis1/Ti)+cpb*(Tfis1-Ti)+cpc*(Tfis1**2-Ti**2)/2
         ++cpd*(Tfis1**3-Ti**3)/3-8.314*log(Rcomp)
          DSp=cpa/Tfis1+cpb+cpc*Tfis1+cpd*Tfis1**2
          Tfis = Tfis1-DS/DSp
          IF (ABS((Tfis-Tfis1)/Tfis).LT.eps) THEN
             WRITE(*,*)'La temp‚rature de sortie pour un gaz parfait est :
         + ',Tfis,' K'
          ELSE
             Tfis1 = Tfis
             GOTO 15
          ENDIF
     
    C  Cas du gaz r‚el
     
          T = Tfis
          deltaT = 10
       20 CONTINUE
          CALL penduc(T,Pi*Rcomp,Termlq,Termvp,Liqvap)
          IF (Termvp(3).LT.Svi) THEN
    	   T = T + deltaT
    	   GOTO 20
          ELSE
    	   deltaT = deltaT/2
    	   IF( deltaT.LT.eps ) GOTO 30
    	   T = T - deltaT
    	   GOTO 20
          ENDIF
       30 Tf = T
          WRITE(*,*)'Pour un gaz r‚el dans le cas d''une compression isentro
         +pique,Tf = ',Tf,' K'
     
          T=Tf
          deltaT=10
          CALL Penduc(T,Pi*Rcomp,Termlq,Termvp,liqvap)
          Hfis = Termvp(2)
      40  CALL Penduc(T,Pi*Rcomp,Termlq,Termvp,liqvap)
          IF ((Hfis-Hvi)/(Termvp(2)-Hvi).GT.eta) THEN
               T=T-deltaT
               GOTO 40
           ELSE
               deltaT=deltaT/2
               IF (deltaT.LT.eps) GOTO 50
                T=T+deltaT
                GOTO 40
          ENDIF
      50  Tf=T
          WRITE(*,*)'La temp‚rature finale est : ',Tf,' K'
     
    C---CALCUL DE LA PUISSANCE CONSOMMEE
     
          Pui =1000/(eta*M)*(cpa*(Tf-Ti)+cpb*(Tf**2-Ti**2)/2+cpc*(Tf**3-Ti
         +**3)/3+cpd*(Tf**4-Ti**4)/4)
     
          WRITE(*,*)'La puissance absorb‚e par le compresseur est :'
         +,  Pui/1000,' kcal/kg '
     
    C---TEST DE CONDENSATION EN FIN DE COMPRESSION
     
    	CALL condensation(Pi,Tf,Ti,Rcomp,Svi,eta,cpa,cpb,cpc,cpd)
     
          END
     
    C---ENTREE DES DONNEES
     
          SUBROUTINE Donnee(Ti,Rcomp,eta,cpa,cpb,cpc,cpd,anta,antb,antc,M)
          COMMON/criti/Tc,Pc,Omega
          CHARACTER nom*20
          CHARACTER rep
          LOGICAL present
     
          WRITE(*,*)'Entrez le rapport de compression Rcomp : '
          READ(*,*) Rcomp
          WRITE(*,*)'Entrez le rendement par rapport … l''isentropique :'
          READ(*,*) eta
          WRITE(*,*)'Entrez le nom du gaz de travail'
          READ(*,'(a,A20)')nom
          INQUIRE ( FILE = nom , EXIST = present )
          IF ( present ) THEN
                 OPEN (10,FILE=nom,STATUS='old')
                 READ(10,*)Tc,Pc,omega
                 READ(10,*)cpa,cpb,cpc,cpd
                 READ(10,*)anta,antb,antc
                 READ(10,*)M
                 CLOSE(10)
          ELSE
                 WRITE(*,*)'Entrez la temp‚rature critique, en K'
                 READ(*,*)Tc
                 WRITE(*,*)'Entrez la pression critique, en atm'
                 READ(*,*)Pc
                 WRITE(*,*)'Entrez le facteur acentrique omega'
                 READ(*,*)omega
                 WRITE(*,*)'Entrez les coefficients du cp : cpa,cpb,cpc,cpd
         +'
                 READ(*,*)cpa,cpb,cpc,cpd
                 WRITE(*,*)'Entrez les coefficients de la loi d''Antoine :
         +anta,antb,antc'
                 READ(*,*)anta,antb,antc
                 WRITE(*,*)'Entrez la masse molaire, en g/mol'
                 READ(*,*)M
                 WRITE(*,*)'Voulez-vous enregistrer ces valeurs dans un fich
         +ier ? (o/n)'
                 READ(*,'(a)')rep
                 IF (rep.EQ.'o'.OR.rep.EQ.'O') THEN
                   OPEN (10,FILE=nom,STATUS='new')
                   WRITE(10,*)Tc,Pc,omega
                   WRITE(10,*)cpa,cpb,cpc,cpd
                   WRITE(10,*)anta,antb,antc
                   WRITE(10,*)M
                   CLOSE(10)
                 ELSE
                   GOTO 10
                 ENDIF
          ENDIF
     10   WRITE(*,*)'Donnez la temp‚rature initiale du r‚servoir en øC '
          READ(*,*) Tj
          Ti = Tj + 273.15
          END
     
     
    C--CALCUL DE LA FRACTION DE LIQUIDE EVENTUELLEMENT CONDENSEE
     
          SUBROUTINE Condensation(Pi,Tf,Ti,Rcomp,Svi,eta,cpa,cpb,cpc,cpd)
          COMMON/criti/Tc,Pc,Omega
          LOGICAL Liqvap
          DIMENSION Termlq (4),Termvp (4)
     
    	 P = Pi*Rcomp
    	 CALL Penduc(Tf,P,Termlq,Termvp,Liqvap)
             IF (Liqvap) THEN
    	    WRITE(*,*)'Il y a condensation en fin de compression '
    	    Slf = Termlq(3)
    	    Svf = Termvp(3)
    	    Hlf = Termlq(2)
    	    Hvf = Termvp(2)
                xlis=(Svi-Svf-(cpa*log(Tf/Ti)+cpb*(Tf-Ti)+cpc/2*(Tf**2-Ti*
         +*2)+cpd/3*(Tf**3-Ti**3))/8.314-log(Rcomp))/(Slf-Svf)
    	    deltHis = xlis*Hlf + (1-xlis)*Hvf
    	    deltHre = deltHis/eta
    	    xl = ( deltHre - Hvf ) / ( Hlf - Hvf )
    	    WRITE(*,*)'La fraction de liquide est : xl = ', xl
    	 ELSE
                WRITE(*,*)'Il n''y a pas condensation'
    	 ENDIF
    	 END
     
    C--PROCEDURE DE CALCUL DES ECARTS AU GAZ PARFAIT
     
          SUBROUTINE penduc(T,P,Termlq,Termvp,Liqvap)
     
    C        'PENDUC' conducteur de 'PENROB' sous-programme calculant les
    C           proprietes thermodynamiques d'un fluide en termes d'ecart
    C              aux gaz parfaits par l'equation de Peng et Robinson.
    C
     
          LOGICAL Liqvap
    C Liqvap est vrai si deux phases sont possibles
          DIMENSION Termlq (4),Termvp (4)
          COMMON/criti/Tc,Pc,Omega
    	 Tr = T / Tc
    	 Pr = P / Pc
    	 CALL PENROB (Tr,Pr,Termlq,Termvp,Liqvap)
    	 IF (Liqvap) THEN
    c	    WRITE (*,*)'               Liquide'
    c	    WRITE (*,*)'Z= ',Termlq (1),'   (H-H*)/RTc= ',Termlq(2)
    c	    WRITE (*,*)'(S-S*)/R=',Termlq(3),'   LN(f/P)= ',Termlq(4)
    c	    WRITE (*,*)
    c	    WRITE (*,*)'               Vapeur'
    c	    WRITE (*,*)'Z= ',Termvp(1),'   (H-H*)/RTc= ',Termvp(2)
    c	    WRITE (*,*)'(S-S*)/R=',Termvp(3),'   LN(f/P)= ',Termvp(4)
    	 ELSE
    c	    WRITE (*,*)'               Phase unique'
    c	    WRITE (*,*)'Z= ',Termvp(1),'   (H-H*)/RTc= ',Termvp(2)
    c	    WRITE (*,*)'(S-S*)/R=',Termvp(3),'   LN(f/P)= ',Termvp(4)
    	 ENDIF
    c	 WRITE (*,*)
          END
     
          SUBROUTINE Penrob (Tr,Pr,Termlq,Termvp,Liqvap)
    C Calcul des propri‚t‚s thermodynamiques en termes d'‚cart au gaz parfait
    C Equation de Peng et Robinson
          PARAMETER (OMA=0.45724,OMB=0.0778)
          PARAMETER (OO=1.414214)
          LOGICAL Liqvap
          COMPLEX Cx2,Cx3
          DIMENSION Termlq(4),Termvp(4)
          COMMON/criti/Tc,Pc,Omega
          COMMON/ABF/A,B,F0,F1
    C Coefficients de l'‚quation cubique
          O0=2 * OO
          OU=1.0-OO
          OV=1.0+OO
          F0=0.37464 + Omega * (1.54226-Omega*0.26992)
          F1=1.0 + F0 * (1.0-SQRT(Tr))
          F=F1 * F1
          Pdivt = Pr/Tr
          A= OMA * F * Pdivt /Tr
          B= OMB * Pdivt
          A0= B * (B * (B+1.0) - A)
          A1= A - B * (2.0 + 3.0*B)
          A2= B - 1.0
    C R‚solution
          CALL Trique (A2,A1,A0,X1,Cx2,Cx3,Kod)
          GOTO (10,10,30) Kod
    C                           3  Solutions: liquide et vapeur + instable
       10 Liqvap=.TRUE.
          X2=REAL(Cx2)
          X3=REAL(Cx3)
    C Choix des facteurs de compression liquide et vapeur
          Zmax= (X1 + X2 + ABS(X1-X2))*0.5
          Zvap= (Zmax + X3 + ABS(Zmax-X3))*0.5
          Zmin= (X1 + X2 - ABS(X1-X2))*0.5
          Zliq= (Zmin + X3 -ABS(Zmin-X3))*0.5
    C Calcul des ‚carts liquide et vapeur
          CALL Prptrm (Tr,Zliq,Termlq)
          CALL Prptrm (Tr,Zvap,Termvp)
          GOTO 40
    C                                   1 seule solution: phase unique
       30 Liqvap=.FALSE.
    C Calcul des ‚carts
          CALL Prptrm (Tr,X1,Termvp)
       40 CONTINUE
          RETURN
          END
    C
    C
    C
          SUBROUTINE Prptrm (Tr,Z,Term)
    C Calcul des propri‚t‚s en termes d'‚cart … partir de Z connu
          PARAMETER (OO=1.414214)
          DIMENSION Term(4)
          COMMON/ABF/A,B,F0,F1
          O0=2*OO
          OU=1.0-OO
          OV=1.0+OO
          G0=A / B / O0 * ALOG((Z+OV*B)/(Z+OU*B))
    C Log du coefficient de fugacit‚
          Term(4)= Z - 1.0 -ALOG(Z-B) -G0
    C Ecart entropique compt‚ en R
          Term(3)= ALOG(Z-B) - G0*F0/F1*SQRT(Tr)
    C Ecart enthalpique compt‚ en RTc
          Term(2)= (Term(4) + Term(3))*Tr
    C Facteur de compression
          Term(1)= Z
          RETURN
          END
    C        Sous-programme pour la resolution de l'equation de degre 3
    C           normalisee selon la methode de Cardan.
    C
          SUBROUTINE Trique (A2,A1,A0,X1,CX2,CX3,Kod)
          IMPLICIT COMPLEX (C)
          PARAMETER (Dpi3 = 2.094395E0,Qpi3 = 4.188790E0,
         *Rac3d2 = 0.866025E-1,Unter = 3.333333E-1,EPSIL = 1.0E-8)
          Racub(X) = SIGN(ABS(X)**Unter,X)
    C
    C
    C              Racine nulle
          IF(ABS(A0).LT.Epsil) THEN
    	 Kod = -1
    	 RETURN
          ENDIF
    C
    C              Forme Y**3+P*Y+Q = 0     Y = X+AA
          AA = A2/3.0
          AA2 = AA*AA
          P3 = A1/3.0-AA2
          Q = A0+AA*(2.0*AA2-A1)
          Q2 = Q*0.5
          Delta = Q2*Q2+P3*P3*P3
          IF(Delta) 10,20,30
    C              3 racines reelles distinctes
       10    Racp3 = SQRT(-P3)
    	 Teta = ACOS(Q2/P3/Racp3)/3.0
    	 Alfa = 2.0*Racp3
    	 X1 = Alfa*COS(Teta)-AA
    	 CX2 = Alfa*COS(Teta+Dpi3)-AA
    	 CX3 = Alfa*COS(Teta+Qpi3)-AA
    	 Kod = 1
    	 RETURN
    C              3 racines reelles dont une double
       20    IF (P3.NE.0.0) THEN
    	    QP3 = Q/P3
    	 ELSE
    	    QP3 = 0.0
    	 ENDIF
    	 X1 = QP3-AA
    	 CX2 = -QP3*0.5-AA
    	 CX3 = CX2
    	 Kod = 2
    	 RETURN
    C              1 racine reelle, 2 racines complexes conjuguees
       30    IF (P3.NE.0.0) THEN
    	    W = Racub(-Q2+SQRT(Delta))
    	    P3W = P3/W
    	 ELSE
    	    W = 0.0
    	    P3W = Racub ( Q )
    	 ENDIF
    	 X1 = W-P3W-AA
    	 CX2 = CMPLX(-(A2+X1)*0.5,Rac3d2*(W+P3W))
    	 CX3 = CONJG(CX2)
    	 Kod = 3
    	 RETURN
    	 END

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Août 2006
    Messages
    974
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2006
    Messages : 974
    Points : 1 346
    Points
    1 346
    Par défaut
    Tu ne donnes pas beaucoup d'information sur le type d'aide dont tu as besoin...

    Alors commençons par le début : Tu dois commencer par installer un compilateur Fortran. Le programme étant écrit en Fortran 77, tu peux utiliser n'importe quel compilateur Fortran puisqu'ils supportent tous le Fortran 77.

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2019
    Messages : 2
    Points : 2
    Points
    2
    Par défaut problème compilation
    Citation Envoyé par Sylvain Bergeron Voir le message
    Tu ne donnes pas beaucoup d'information sur le type d'aide dont tu as besoin...

    Alors commençons par le début : Tu dois commencer par installer un compilateur Fortran. Le programme étant écrit en Fortran 77, tu peux utiliser n'importe quel compilateur Fortran puisqu'ils supportent tous le Fortran 77.
    merci pour la réponse...effectivement c'est un problème de compilation...je n'arrive pas a compiler ce programme.Nom : Capture.PNG
Affichages : 190
Taille : 9,1 Ko

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    étudiant ingénieur génie des procédés
    Inscrit en
    Mars 2018
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : étudiant ingénieur génie des procédés

    Informations forums :
    Inscription : Mars 2018
    Messages : 20
    Points : 34
    Points
    34
    Par défaut
    Salut,

    Ben du coup ton message d'erreur te donne tout tes problèmes. Tu devrais pouvoir régler cela seul.

Discussions similaires

  1. Recuperation de ma base BD apres la sauvegarde Aidez Moi SVP
    Par pop bob dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 26/07/2005, 16h38
  2. J'ai du mal à me décider ! Aidez moi svp :)
    Par VanHelsing dans le forum Mobiles
    Réponses: 18
    Dernier message: 01/06/2005, 14h59
  3. Je vois pas d'où vient mon erreur!! Aidez moi SVP
    Par liliboms dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 04/04/2005, 08h25
  4. Réponses: 29
    Dernier message: 11/05/2004, 13h18

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