subroutine parabn (arond,drond,yy,zz,xnpar,ynpar,znpar,ier) c* c*********************************************************************** c* c* "Copyright [c] CNES 98 - tous droits reserves" c* ********************************************** c* c*PRO MAGLIB c* c*VER 99.03.31 - V 1.0 c*VER 01.06.05 - V 2.0 c*VER 03.01.06 - V 2.1 c* c*AUT spec. CNES - JC KOSIK - juin 1995 c*AUT port. CISI c* c*ROL Theme : Calculs mathematiques c*ROL Calcul de la normale a la parabole de la magnetopause ou c*ROL a l'onde de choc. c* c*PAR arond (I) : parametre modifie par la transformation quadratique c*PAR drond (I) : parametre modifie par la transformation quadratique c* c*PAR yy (I) : composante en x dans le repere de symetrie axiale c*PAR zz (I) : composante en y dans le repere de symetrie axiale c* c*PAR xnpar (O) : composante en x de la normale c*PAR ynpar (O) : composante en y de la normale c*PAR znpar (O) : composante en z de la normale c* c*PAR ier (O) : code de retour c* c*NOT ier : sans objet c* c*INF utilise : angleg, norma c* c*HST version 1.0 - 99.03.31 - creation de la maglib au CDPP c*HST version 2.0 - 01.06.05 - correction de commentaires de code c*HST version 2.1 - 03.01.06 - corrections en compilation avec g77 c* c*********************************************************************** c* implicit none c c --------------------------------- c*FON Declaration identificateur rcs_id c --------------------------------- c character rcs_id*100 c c -------------------------- c*FON Declaration des parametres c -------------------------- c double precision arond,drond double precision yy,zz double precision xnpar,ynpar,znpar integer ier c c ---------------------------------- c*FON Declaration des fonctions externes c ---------------------------------- c external angleg double precision angleg c c --------------------------------- c*FON Declaration des variables locales c --------------------------------- c double precision yy2,zz2,ro2,ro double precision phir,cph,sph double precision gradro,gradfx,gradfy,gradfz c*LOC Variables de travail intermediaires c SAVE c c --------------------------------- c*FON Affectation identificateur rcs_id c --------------------------------- c data rcs_id /" >$Id$"/ c c ****************** c Debut de programme c ****************** c ier = 0 c yy2 = yy * yy zz2 = zz * zz c c ----------------------------- c*FON Calcul de la distance a l'axe c ----------------------------- c ro2 = yy2 + zz2 ro = sqrt(ro2) c c ---------------------------------- c*FON Calcul de la phase sur la parabole c ---------------------------------- c phir = angleg(yy,zz,ier) c cph = cos(phir) sph = sin(phir) c c -------------------- c*FON Calcul des gradients c -------------------- c gradfx = 2.d0 * arond + drond gradro = 2.d0 * ro gradfy = gradro * cph gradfz = gradro * sph c c ------------------------------------------------------ c*FON Calcul de la normale par normalisation des composantes c ------------------------------------------------------ c call norma(gradfx,gradfy,gradfz,xnpar,ynpar,znpar,ier) c c **************** c Fin de programme c **************** c return end