1 : C FVNU SOURCE CHAT 07/04/20 21:15:15 5723 2 : FUNCTION FVNU(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 'NU ' 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=221 : temp. inferieure au zero absolu 21 : C IERUT=222 : valeur illicite de 'PORO' 22 : C IERUT=223 : valeur illicite de 'YOGC' 23 : C----------------------------------------------------------------------- 24 : C Type de la fonction 25 : C 26 : REAL*8 FVNU 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, CISC1, YOUC2, CISC2 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 : FVNU=0.D0 51 : C 52 : IF (T.LT.0.0D0) THEN 53 : C........Temperature en Kelvin 54 : IERUT = 221 55 : RETURN 56 : ELSE IF ((PORO.LT.0.0D0).OR.(PORO.GT.1.0D0)) THEN 57 : IERUT = 222 58 : RETURN 59 : ELSE IF ((IYOGC.LT.1).OR.(IYOGC.GT.2)) THEN 60 : IERUT = 223 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 : CISC1 = 8.583D10 - (5.157D6 * T) - (3.747D3 * T * T) 69 : ELSE 70 : YOUC1 = -1.33445D12 + (1.18106D9 * T) - (2.38803D5 * T * T) 71 : CISC1 = -5.7625D11 + (5.02189D8 * T) - (1.00939D5 * T * T) 72 : ENDIF 73 : C 74 : C.....Si correction de porosite 75 : C 76 : IF (IYOGC.EQ.2) THEN 77 : IF (PORO.LT.0.3D0) THEN 78 : YOUC2 = YOUC1 * (1.D0-(2.5D0*PORO)) 79 : CISC2 = CISC1 * (1.D0-(2.25D0*PORO)) 80 : ELSE 81 : YOUC2 = YOUC1 * ((1.D0-PORO)/(1.D0+(6.D0*PORO))) 82 : CISC2 = CISC1 * ((1.D0-PORO)/(1.D0+(3.85D0*PORO))) 83 : ENDIF 84 : FVNU = (YOUC2/(2.D0*CISC2)) - 1.D0 85 : C 86 : ELSE 87 : FVNU = (YOUC1/(2.D0*CISC1)) - 1.D0 88 : ENDIF 89 : C 90 : RETURN 91 : END 92 : 93 : 94 :
© Cast3M 2003 - All rights reserved.
Disclaimer