Download bkfro.eso

Back to the list

   1 : C BKFRO     SOURCE    DURA      05/10/26    21:15:19     5216           
   2 :       FUNCTION BKFRO(RE,REL,XKL,XKT,D,RUG,RECU,XKUL,XKUT1,XKUT2,XKUT3,
   3 :      * XKUT4)
   4 :       IMPLICIT INTEGER(I-N)
   5 :       IMPLICIT REAL*8 (A-H,O-Z)
   6 : C
   7 : C     operateur FUITE
   8 : C>>>  calcule le coefficient de frottement
   9 : C       D  : diametre hydraulique (m)
  10 : C       RUG: rugosite (m)
  11 : C       RE : nombre de Reynolds
  12 : C     LOIS STANDARD
  13 : C       REL: nombre de transition laminaire turbulent (=2042, paroi lisse)
  14 : C       XKL: coefficient de la loi en laminaire
  15 : C       XKT: coefficient de la loi en turbulent lisse
  16 : C       Si paroi rugueuse, max(loi de Colebrook; XKL/RE)
  17 : C     LOIS UTILISATEURS
  18 : C       RECU : Reynolds critique choisi par utilisateur (lois 1 et 2)
  19 : C       XKUL,XKUT1,XKUT2,XKUT3,XKUT4 : coef des lois utilisateur
  20 : C
  21 : C>>> frottement lisse
  22 :         IF (RE.LT.REL) THEN
  23 :            F0=XKL/RE
  24 :         ELSE
  25 :            F0=XKT*RE**(-.25)
  26 :         ENDIF
  27 :         BKFRO=F0
  28 : 
  29 : C>>>  frottement rugueux
  30 : C     calcul iteratif qu'on initialise avec le frottement lisse
  31 :         RUGR=RUG/D
  32 : 
  33 :         IF(RUGR.GE.1D-4) THEN
  34 :           IF(RE.LT.10.)  BKFROR=1.
  35 :           IF(RE.GE.10.) THEN
  36 :             RACF = DSQRT(F0)
  37 : 10          CONTINUE
  38 :             RACF1=-2.D0*DLOG10((RUGR/3.7)+(2.51/RE/RACF))
  39 :             RACF1=1.D0/RACF1
  40 :             ERR=DABS((RACF1/RACF)-1.D0)
  41 :             IF(ERR.GT.1.D-3) THEN
  42 :               RACF=RACF1
  43 :               GOTO 10
  44 :             ENDIF
  45 :             BKFROR=RACF1*RACF1
  46 :           ENDIF
  47 : C
  48 :           BKFRO=XKL/RE
  49 : C       transition lam-turb determinee par le programme
  50 :           IF(BKFROR.GT.BKFRO)  THEN
  51 :             BKFRO = BKFROR
  52 : c         ELSE
  53 : c           write(*,*) ' BKFRO laminaire,RE', BKFRO,RE
  54 :           ENDIF
  55 :         
  56 :         ENDIF
  57 : 
  58 : C>>> lois utilisateur
  59 : C loi utilisateur 1
  60 :         IF(RECU.GE.0D-4) THEN
  61 :            IF (RE.LT.RECU) THEN
  62 :              BKFRO=XKUL/RE
  63 :            ELSE
  64 :              BKFRO=(XKUT1+(XKUT2*(RE**XKUT3)))**XKUT4
  65 :            ENDIF
  66 :         ENDIF
  67 : C loi utilisateur 2
  68 :         IF(RECU.LT.0D4.AND.RECU.GT.-1D5) THEN
  69 :           RECUU = -1.*RECU
  70 :           IF (RE.LT.RECUU) THEN
  71 :             BKFRO=XKUL/RE
  72 :           ELSE
  73 :             DLOGRE = DLOG10(RE)
  74 :             BKFRO=XKUT1*((XKUT2+(XKUT3*DLOG10(RE)))**XKUT4)
  75 :           ENDIF        
  76 :         ENDIF
  77 : C loi utilisateur 3
  78 :         IF(RUGR.GE.1D-4) THEN
  79 :           IF(RECU.LE.-1D6.AND.RECU.GT.-1D7) THEN
  80 :             BKFRO = XKUL * BKFROR
  81 :           ENDIF
  82 :         ENDIF
  83 : C loi utilisateur 4
  84 :         IF(RUGR.GE.1D-4) THEN
  85 :           IF(RECU.LE.-1D7) THEN
  86 :              BKFRO=(XKUL*XKL)/RE
  87 :              BKFROR = XKUL * BKFROR
  88 : C            transition lam-turb determinee par le programme
  89 :              IF(BKFROR.GT.BKFRO)  THEN
  90 :                BKFRO = BKFROR
  91 : c            ELSE
  92 : c               write(*,*) ' BKFRO laminaire,RE', BKFRO,RE
  93 :              ENDIF
  94 :           ENDIF
  95 :         ENDIF
  96 : 
  97 :       RETURN
  98 :       END
  99 :  
 100 :  
 101 :  
 102 :  
 103 :  

© Cast3M 2003 - All rights reserved.
Disclaimer