c********************************************************************** SUBROUTINE cepheid_instb(log10_l,typ,log10_tb,log10_tr) c routine PUBLIC du module mod_numerique c détermination des limites bleu et rouge de la zone d'instabilité des Céphéides c en fonction de L c entrées: c log10_l: LOG10(luminosité / Lsol) c typ: 1 linéaire, 2 quadratique, 3 Turner c sorties : c log10_tb: LOG10(Teff) bord bleu c log10_tr: LOG10(Teff) bord rouge c Auteur: P.Morel, Département J.D. Cassiopée, O.C.A., CESAM2k c---------------------------------------------------------------------- USE mod_kind IMPLICIT NONE REAL (kind=dp), INTENT(in) :: log10_l INTEGER, INTENT(in) :: typ REAL (kind=dp), INTENT(out) :: log10_tb, log10_tr REAL (kind=dp), ALLOCATABLE, SAVE, DIMENSION(:) :: blue, poly, red REAL (kind=dp) :: dlgt, lgl1, lgl2, lgt1, lgt2, rap INTEGER, SAVE :: deg LOGICAL, SAVE :: init=.TRUE. c------------------------------------------------------------------------ 2000 FORMAT(8es10.3) IF(init)THEN init=.FALSE. c limites bleue et rouge de la zone d'instabilité (linéaire) deg=1 c limites bleue et rouge de la zone d'instabilité des italiens (quadratique) deg=2 c limites bleue et rouge de la zone d'instabilité de Turner Odessa Astro.Pub.14,166,2001 SELECT CASE(typ) CASE(1) !linéaire deg=1 ; ALLOCATE(blue(0:deg),poly(0:deg),red(0:deg)) dlgt=-0.09d0 ; lgl1=1.d0 ; lgl2=5.d0 ; lgt1=3.95d0 ; lgt2=3.72d0 rap=(lgt1-lgt2)/(lgl1-lgl2) blue(0)=lgt2-lgl2*rap ; blue(1)=rap red(0)= blue(0)+dlgt ; red(1)= rap CASE(2) !quadratique deg=2 ; ALLOCATE(blue(0:deg),poly(0:deg),red(0:deg)) blue=(/ 3.596d0, 0.134d0, -0.024d0 /) red= (/ 3.729d0, 0.067d0, -0.022d0 /) CASE(3) !coin deg=1 ; ALLOCATE(blue(0:deg),poly(0:deg),red(0:deg)) lgl1=5.8d0 ; lgl2=1.8d0 lgt1=3.635d0 ; lgt2=3.878d0 rap=(lgt1-lgt2)/(lgl1-lgl2) blue(0)=lgt2-lgl2*rap ; blue(1)=rap lgt1=3.535d0 ; lgt2=3.830d0 rap=(lgt1-lgt2)/(lgl1-lgl2) red(0)=lgt2-lgl2*rap ; red(1)= rap END SELECT ENDIF c zone d'instabilité tb > Teff > tr CALL polyder(blue,deg,0,log10_l,poly) ; log10_tb=poly(0) CALL polyder(red,deg,0,log10_l,poly) ; log10_tr=poly(0) RETURN END SUBROUTINE cepheid_instb