c******************************************************************** SUBROUTINE t_vrf(v,dv,r,dr,fesh,dfesh,teff,dteff) c routine PUBLIC du module mod_photo c calcul de la Teff en utilisant les Mv, Mr et [Fe/H] c suivant Alonso et al. A&A 313, 873, 1996 (formules 4 et 5), c Auteur: P. Morel, Laboratoire Lagrange, O.C.A., CESAM2k c entrees c v, dv, r, dr : magnitudes absolues V et R et precision c fesh, dfesh : [Fe/H] et precision c sorties c teff, dteff : Teff et precision c------------------------------------------------------------------------ USE mod_kind IMPLICIT NONE REAL (kind=dp), INTENT(in) :: v, dv, r, dr, fesh, dfesh REAL (kind=dp), INTENT(out) :: teff, dteff REAL (kind=dp) :: vmr, teta, dteta_vmr, dteta_fesh LOGICAL :: cas1, cas2, init=.TRUE. c----------------------------------------------------------------------- IF(init)THEN !initialisations init=.FALSE. WRITE(*,10) 10 FORMAT('calcul de la Teff en utilisant les Mv, Mr et [Fe/H]',/, 1 'suivant Alonso et al. A&A 313, 873, 1996 (formules 4 et 5)',/) ENDIF vmr=v-r cas1=(0.25d0 <= vmr .AND. vmr <= 0.6d0) .AND. 1 (0.5d0 >= fesh .AND. fesh > -0.5d0) cas1=cas1 .OR. (0.3d0 <= vmr .AND. vmr <= 0.6d0) .AND. 1 (-0.5d0 >= fesh .AND. fesh > -1.5d0) cas1=cas1 .OR. (0.4d0 <= vmr .AND. vmr <= 0.6d0) .AND. 1 (-1.5d0 >= fesh .AND. fesh > -3.5d0) cas2=(0.6d0 <= vmr .AND. vmr <= 1.4 d0) .AND. 1 (0.5d0 >= fesh .AND. fesh > -0.5d0) cas2=cas2 .OR. (0.6d0 <= vmr .AND. vmr <= 0.75d0) .AND. 1 (-0.5d0 >= fesh .AND. fesh > -2.5d0) cas2=cas2 .OR. (0.6d0 <= vmr .AND. vmr <= 0.7d0 ) .AND. 1 (-2.5d0 >= fesh .AND. fesh > -3.5d0) IF(cas1)THEN !formule 4 teta=0.474d0+vmr*(0.755d0+0.005d0*vmr-0.003d0*fesh) !formule 4 1 -fesh*(0.027d0+0.007d0*fesh) dteta_vmr=0.755d0+0.010d0*vmr-0.003d0*fesh dteta_fesh=-0.027d0-0.014d0*fesh-0.003d0*vmr ELSEIF(cas2)THEN !formule 5 teta=0.524d0+vmr*(0.724d0-0.082d0*vmr-0.166d0*fesh) !formule 5 1 +fesh*(0.074d0-0.009d0*fesh) dteta_vmr=0.724d0-0.164d0*vmr-0.166d0*fesh dteta_fesh=0.074d0-0.018d0*fesh-0.166d0*vmr ELSEIF(vmr <= 0.6)THEN WRITE(*,3)vmr,fesh 3 FORMAT(' V-R=',f8.4,' et [Fe/H]=',f8.4,' hors des limites',/, 1 'pour Teff on utilise quAND meme la formule 4') teta=0.474d0+vmr*(0.755d0+0.005d0*vmr-0.003d0*fesh) !formule 4 1 -fesh*(0.027d0+0.007d0*fesh) dteta_vmr=0.755d0+0.010d0*vmr-0.003d0*fesh dteta_fesh=-0.027d0-0.014d0*fesh-0.003d0*vmr ELSE WRITE(*,4)vmr,fesh 4 FORMAT(1x,' V-R=',f8.4,' et [Fe/H]=',f8.4,' hors des limites',/, 1 'pour Teff on utilise quAND meme la formule 5') teta=0.524d0+vmr*(0.724d0-0.082d0*vmr-0.166d0*fesh) !formule 5 1 +fesh*(0.074d0-0.009d0*fesh) dteta_vmr=0.724d0-0.164d0*vmr-0.166d0*fesh dteta_fesh=0.074d0-0.018d0*fesh-0.166d0*vmr ENDIF teff=5040.d0/teta dteff=teff/teta*(dteta_vmr*(dv+dr)+dteta_fesh*dfesh) dteff=ABS(teff) RETURN END SUBROUTINE t_vrf