Download fvyoun.eso

Back to the list

   1 : C FVYOUN    SOURCE    CHAT      07/04/20    21:15:20     5723           
   2 :       FUNCTION FVYOUN(VALPAR,NPARA,IERUT)
   3 :       IMPLICIT INTEGER(I-N)
   4 :       IMPLICIT REAL*8(A-H,O-Z)
   5 : C-----------------------------------------------------------------------
   6 : C     DESCRIPTION FONCTIONNELLE :
   7 : C     -------------------------
   8 : C     Fonction externe d'evaluation de la composante 'YOUN' du modele
   9 : C     'FLUAGE' 'POLYNOMIAL' externalise pour TOUTATIS
  10 : C
  11 : C     INTERFACE :
  12 : C     ---------
  13 : C     ENTREE : VALPAR : REAL*8(NPARA), valeurs des parametres
  14 : C     ENTREE : NPARA  : INTEGER, nombre de parametres
  15 : C     SORTIE : IERUT  : INTEGER, code retour
  16 : C
  17 : C     CODIFICATION DES ERREURS :
  18 : C     ------------------------
  19 : C     IERUT=0   : OK
  20 : C     IERUT=211 : temp. inferieure au zero absolu
  21 : C     IERUT=212 : valeur illicite de 'PORO'
  22 : C     IERUT=213 : valeur illicite de 'YOGC'
  23 : C-----------------------------------------------------------------------
  24 : C     Type de la fonction
  25 : C
  26 :       REAL*8       FVYOUN
  27 : C
  28 : C     Arguments de l'interface
  29 : C
  30 :       INTEGER      NPARA, IERUT
  31 :       REAL*8       VALPAR(NPARA)
  32 : C
  33 : C     Variables locales
  34 : C
  35 :       REAL*8       T, PORO, YOUC1
  36 :       INTEGER      IYOGC
  37 : C
  38 : C---------------------- Debut du code executable -----------------------
  39 : C
  40 : C     Identification des parametres : affectation de variables locales
  41 : C
  42 :       T=VALPAR(1)
  43 :       PORO=VALPAR(2)
  44 :       IF(VALPAR(3).GE.0.99999 . and. VALPAR(3).le.1.00001) IYOGC=1
  45 :       IF(VALPAR(3).GE.1.99999 . and. VALPAR(3).le.2.00001) IYOGC=2
  46 : C
  47 : C     Tests d'erreur sur les parametres
  48 : C
  49 :       IERUT=0
  50 :       FVYOUN=0.D0
  51 : C
  52 :       IF (T.LT.0.0D0) THEN
  53 : C........Temperature en Kelvin
  54 :          IERUT = 211
  55 :          RETURN
  56 :       ELSE IF ((PORO.LT.0.0D0).OR.(PORO.GT.1.0D0)) THEN
  57 :          IERUT = 212
  58 :          RETURN
  59 :       ELSE IF ((IYOGC.LT.1).OR.(IYOGC.GT.2)) THEN
  60 :          IERUT = 213
  61 :          RETURN
  62 :       ENDIF
  63 : C
  64 : C     Calcul de la fonction
  65 : C
  66 :       IF (T.LT.2610.0D0) THEN
  67 :          YOUC1 = 2.2693D11 - (1.5399D7 * T) - (9.3597D3 * T * T)
  68 :       ELSE
  69 :          YOUC1 = -1.33445D12 + (1.18106D9 * T) - (2.38803D5 * T * T)
  70 :       ENDIF
  71 : C
  72 : C.....Si correction de porosite
  73 : C
  74 :       IF (IYOGC.EQ.2) THEN
  75 :          IF (PORO.LT.0.3D0) THEN
  76 :             FVYOUN = YOUC1 * (1.D0-(2.5D0*PORO))
  77 :          ELSE
  78 :             FVYOUN = YOUC1 * ((1.D0-PORO)/(1.D0+(6.D0*PORO)))
  79 :          ENDIF
  80 : C
  81 :       ELSE
  82 :          FVYOUN = YOUC1
  83 :       ENDIF
  84 : C
  85 :       RETURN
  86 :       END
  87 :  
  88 :  
  89 :  

© Cast3M 2003 - All rights reserved.
Disclaimer