      SUBROUTINE FUNC(NPDE,NZP2,ZN,TM,UM,UZN,AN,BN,CN)                  
      SAVE
      PARAMETER(KMX=96,MMX=46,MMX1=47,MMX2=48)
      include "solars.h"
      REAL ZN(NZP2),UM(NPDE,NZP2),AN(NPDE,NZP2),BN(NPDE,NZP2),          
     1CN(NPDE,NZP2),UZN(NPDE,NZP2)                                      
      COMMON/SOLVTR/TP(MMX),DA(MMX),SHI(MMX),ATP(MMX),DAZ(MMX),         
     1SHIZ(MMX),ATPZ(MMX),ATPZZ(MMX),BNTR(MMX),CNTR(MMX),BRTR,QQOP(MMX) 
     2,XLOP(MMX),SHA(KMX),SHAZ(KMX),SHII(KMX),DAA(KMX)                  
      COMMON/TRAVLH/RK(50),ALP(20),RB(20),RKM(60)                       
      M1=KMX-MMX                                                        
      DO 1 KK=2,MMX1                                                    
      K=KK-1                                                            
      M=M1+K                                                            
      AN(1,KK)=DA(K)/(SHA(K)*SHA(K))                                    
      BN(1,KK)=BNTR(K)/SHA(K)-DA(K)*SHAZ(K)/(SHA(K)**3)                 
      CN(1,KK)=QOP(M)+QQOP(K)+(CNTR(K)-XLOP(K))*UM(1,KK)                
  1   CONTINUE                                                          
      AN(1,1)=AN(1,2)                                                   
      BN(1,1)=BN(1,2)                                                   
      CN(1,1)=CN(1,2)                                                   
      AN(1,MMX2)=AN(1,MMX1)                                             
      BN(1,MMX2)=BN(1,MMX1)                                             
      CN(1,MMX2)=CN(1,MMX1)                                             
      RETURN                                                            
      END                                                               
