C    NRM142.FOR                                                       
      SUBROUTINE NRM142(MEIG,NTOT,MH0I,MSEDI,SPEED,DH0I,DSEDI,        
     & MINMOD,EIGF,MODAVR,EKM,EIGVAL,                               
     & ATTW, ATTS, ATTB, NORMT)                                         
C__________________________________________________________             
C                                                         |             
C     This routine calculates the normalization           |             
C     factor with the Simpson rule  1 4 2......4 2 4 1    |             
C_________________________________________________________|             
C                                                                       
      REAL MODAVR( * )                                                  
                                                                        
      DOUBLE PRECISION CREF, H0, H1                                     
      DOUBLE PRECISION EKM, EIGVAL                                      
      DOUBLE PRECISION NORMW, NORMS, NORMB, NORMT, SQNORM               
      DOUBLE PRECISION ATTW, ATTS, ATTB                                 
      DOUBLE PRECISION OMEGAC                                           
      DOUBLE PRECISION EIGF( * )                                        
      DOUBLE PRECISION SPEED( * )                                       
      DOUBLE PRECISION CC0, CC1, ROB, ROS                               
      DOUBLE PRECISION DH0I, DSEDI                                      
      DOUBLE PRECISION TWOPI, PI, OMEGA                            
      DOUBLE PRECISION EIGREF, EIGMIN, EIGMAX, STIFF                    
                                                                        
      COMMON /AB/ BETA(-1:3), SCATT(2), C2S, CC0, CC1, C2               
      COMMON /DENS/ R0, R1, R2                                          
      COMMON /DENS8/ ROB, ROS                                           
      COMMON /G/ H0, H1                                                 
      COMMON /GEN/ EIGREF, EIGMIN, EIGMAX, STIFF                        
      COMMON /REFSPD/ CREF                                            
      COMMON /TRIGON/ TWOPI, PI, OMEGA                                  
                                                                        
                                                                        
      ATTW=0.D0                                                         
      NORMW=0.D0                                                        
      DO 5000   N=1,MH0I-1,2                                            
      ATTW=ATTW + 4.0*EIGF(N)**2/SPEED(N+1) +                           
     &            2.0*EIGF(N+1)**2/SPEED(N+2)                           
      NORMW=NORMW + 4.0*EIGF(N)**2 + 2.0*EIGF(N+1)**2                   
 5000 CONTINUE                                                          
      ATTW=ATTW - EIGF(MH0I)**2/SPEED(MH0I+1)                           
      NORMW=NORMW - EIGF(MH0I)**2                                       
      ATTW=ATTW/3.0*DH0I                                                
      NORMW=NORMW/3.0*DH0I                                              
      IF(MSEDI.GT.0)   THEN                                             
       ATTS=EIGF(MH0I)**2/(ROS*ROS*SPEED(MH0I+2))                       
       NORMS=EIGF(MH0I)**2/(ROS*ROS)                                    
       DO 5200   N=MH0I+1,NTOT-1,2                                      
       ATTS=ATTS + 4.0*EIGF(N)**2/SPEED(N+2) +                          
     &             2.0*EIGF(N+1)**2/SPEED(N+3)                          
       NORMS=NORMS + 4.0*EIGF(N)**2 + 2.0*EIGF(N+1)**2                  
 5200  CONTINUE                                                         
       ATTS=ATTS - EIGF(NTOT)**2/SPEED(NTOT+2)                          
       NORMS=NORMS - EIGF(NTOT)**2                                      
       ATTS=ATTS/3.0*DSEDI*ROS                                          
       NORMS=NORMS/3.0*DSEDI*ROS                                        
      ELSE                                                              
       ATTS=0.0D0                                                       
       NORMS=0.0D0                                                      
      END IF                                                            
      NORMB=DH0I*ROB*((ROS/ROB)*EIGF(NTOT))**2*.5/SQRT(EIGVAL-EIGMIN)   
      ATTB=(NORMB*CREF)/DBLE(C2)                                        
      NORMT=NORMW+NORMS+NORMB                                           
      SQNORM=1.0/SQRT(H0*NORMT)                                         
                                                                        
      OMEGAC=OMEGA/CREF                                                 
      DO 5400   N=1,NTOT                                                
      IF(OMEGAC/SPEED(N).LE.EKM)   GO TO 5400                           
      IF(MOD(MEIG+MINMOD-1,2).EQ.0)   THEN                              
C ODD ORDER MODES                                                       
       SQNORM=-SIGN(SQNORM,EIGF(N))                                     
      ELSE                                                              
C EVEN ORDER MODES                                                      
       SQNORM=SIGN(SQNORM,EIGF(N))                                      
      END IF                                                            
      GO TO 5600                                                        
 5400 CONTINUE                                                          
 5600 CONTINUE                                                          
                                                                        
      DO 5800   N=1,NTOT                                                
      EIGF(N)=EIGF(N)*SQNORM                                            
 5800 CONTINUE                                                          
                                                                        
      MODAVR(MEIG)=SQRT(NORMW)*ABS(SQNORM)                              
                                                                        
      RETURN                                                            
      END