c****************************************************************** SUBROUTINE omega_jpz(r,omega,omegar) c calcul de Omega pour omega_jpz c routine private du module mod_variables c entrée: c r : rayon c sorties: c omega/r : vitesse angulaire, dérivée/r c Auteur: P.Morel, Département J.D. Cassiopée, O.C.A., CESAM2k c---------------------------------------------------------------------- USE mod_donnees, ONLY : g, msol, mtot, p_pertw, rsol USE mod_kind IMPLICIT NONE REAL (kind=dp), INTENT(in) :: r REAL (kind=dp), OPTIONAL, INTENT(out) :: omegar REAL (kind=dp), INTENT(out) :: omega REAL (kind=dp), SAVE :: a, omega0, rosre REAL (kind=dp) :: croch, crochr, den, denr LOGICAL, SAVE :: init=.TRUE. c--------------------------------------------------------------- 2000 FORMAT(8es10.3) IF(init)THEN init=.FALSE. rosre=0.803848d0 omega0=g*msol/rsol**3*rosre**3 a=p_pertw !valeur du *.don END IF c omega2 den=1.d0+a*(r/rstar)**2 ; croch=(1.d0+a)/den omega=omega0*mstar/rstar**3*croch IF(PRESENT(omegar))THEN denr=2.d0*a*r/rstar**2 crochr=-croch*denr/den omegar=omega*(-3.d0/r+crochr) omega=SQRT(omega) omegar=omegar/omega/2.d0 ELSE omega=SQRT(omega) ENDIF RETURN END SUBROUTINE omega_jpz