C FVYOUN SOURCE CHAT 07/04/20 21:15:20 5723 FUNCTION FVYOUN(VALPAR,NPARA,IERUT) IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) C----------------------------------------------------------------------- C DESCRIPTION FONCTIONNELLE : C ------------------------- C Fonction externe d'evaluation de la composante 'YOUN' du modele C 'FLUAGE' 'POLYNOMIAL' externalise pour TOUTATIS C C INTERFACE : C --------- C ENTREE : VALPAR : REAL*8(NPARA), valeurs des parametres C ENTREE : NPARA : INTEGER, nombre de parametres C SORTIE : IERUT : INTEGER, code retour C C CODIFICATION DES ERREURS : C ------------------------ C IERUT=0 : OK C IERUT=211 : temp. inferieure au zero absolu C IERUT=212 : valeur illicite de 'PORO' C IERUT=213 : valeur illicite de 'YOGC' C----------------------------------------------------------------------- C Type de la fonction C REAL*8 FVYOUN C C Arguments de l'interface C INTEGER NPARA, IERUT REAL*8 VALPAR(NPARA) C C Variables locales C REAL*8 T, PORO, YOUC1 INTEGER IYOGC C C---------------------- Debut du code executable ----------------------- C C Identification des parametres : affectation de variables locales C T=VALPAR(1) PORO=VALPAR(2) IF(VALPAR(3).GE.0.99999 . and. VALPAR(3).le.1.00001) IYOGC=1 IF(VALPAR(3).GE.1.99999 . and. VALPAR(3).le.2.00001) IYOGC=2 C C Tests d'erreur sur les parametres C IERUT=0 FVYOUN=0.D0 C IF (T.LT.0.0D0) THEN C........Temperature en Kelvin IERUT = 211 RETURN ELSE IF ((PORO.LT.0.0D0).OR.(PORO.GT.1.0D0)) THEN IERUT = 212 RETURN ELSE IF ((IYOGC.LT.1).OR.(IYOGC.GT.2)) THEN IERUT = 213 RETURN ENDIF C C Calcul de la fonction C IF (T.LT.2610.0D0) THEN YOUC1 = 2.2693D11 - (1.5399D7 * T) - (9.3597D3 * T * T) ELSE YOUC1 = -1.33445D12 + (1.18106D9 * T) - (2.38803D5 * T * T) ENDIF C C.....Si correction de porosite C IF (IYOGC.EQ.2) THEN IF (PORO.LT.0.3D0) THEN FVYOUN = YOUC1 * (1.D0-(2.5D0*PORO)) ELSE FVYOUN = YOUC1 * ((1.D0-PORO)/(1.D0+(6.D0*PORO))) ENDIF C ELSE FVYOUN = YOUC1 ENDIF C RETURN END