      SUBROUTINE QPARAB                                                 PARA001 
	implicit real*8 (a-h,o-z)
	character*8 modx,id
C        PLAIN PARABOLIC OR QUASI-PARABOLIC PROFILE                     PARA002 
C        W(104) = 0. FOR A PLAIN PARABOLIC PROFILE                      PARA003 
C               = 1. FOR A QUASI-PARABOLIC PROFILE                      PARA004 
      COMMON /XX/ MODX(2),X,PXPR,PXPTH,PXPPH,PXPT,HMAX                  PARA005 
      COMMON R(6) /WW/ ID(10),W0,W(400)                                 PARA006 
      EQUIVALENCE (EARTHR,W(2)),(F,W(6)),(FC,W(101)),(HM,W(102)),       PARA007 
     1 (YM,W(103)),(QUASI,W(104)),(PERT,W(150))                         PARA008 
	data modx(1) / 'qparab'/
      ENTRY ELECTX                                                      PARA010 
      HMAX=HM                                                           PARA011 
	x = 0.
	pxpr = 0.
	pxpth = 0.
	pxpph = 0.
      H=R(1)-EARTHR                                                     PARA013 
      FCF2=(FC/F)**2                                                    PARA014 
      CONST=1.                                                          PARA015 
      IF (QUASI.EQ.1.) CONST=(EARTHR+HM-YM)/R(1)                        PARA016 
      Z=(H-HM)/YM*CONST                                                 PARA017 
      X=dMAX1(0.d0,FCF2*(1.-Z*Z))                                       PARA018 
      IF (X.EQ.0.) GO TO 50                                             PARA019 
      IF (QUASI.EQ.1.) CONST=(EARTHR+HM)*(EARTHR+HM-YM)/R(1)**2         PARA020 
      PXPR=-2.*Z*FCF2/YM*CONST                                          PARA021 
   50 IF (PERT.NE.0.) CALL ELECT1                                       PARA022 
      RETURN                                                            PARA023 
         END                                                            PARA024-
