*S*************************************************************************         
*S***       
*S***                              WolffPack    
*S***       
*S*** Subprogram: WFPKP27N          
*S*** System    : FINANCIER         
*S*** Title     : Packaging routine 
*S*** Function  : This subprogram packages and individual student       
*S***       
*S***             FINANCIER implementation:     
*S***               - This subprogram supplies the student specific     
*S***                   packaging logic.        
*S***               - Institutional logic should be contained           
*S***                   in a subprogram modeled after WXPKP27N.         
*S***       
*S***      Copyright 1995 - 2026 WolffPack, Inc.  All rights reserved.  
*S***       
*S*** Institutional Notes:          
*S*************************************************************************         
*S**DEFINE DATA         
*S**  GLOBAL USING WWGDA
*S**  PARAMETER USING WWPDA         
*S**  PARAMETER         
*S**    01 #STUDENT-PACKAGED(L)     
*S**  PARAMETER USING WFPKPAKD      
*S**  PARAMETER USING WFPKFNDD      
*S**  PARAMETER USING WWSTDNTD      
*S**  PARAMETER USING WFAIDYRD      
*S***       
*S**  LOCAL USING WFPKPAKL          
*S**  LOCAL USING WFFED27D          
*S**  LOCAL USING WFFED27R          
*S**  LOCAL USING WFISR27D          
*S**  LOCAL USING WFISR27R          
*S**  LOCAL USING WFNSL27D          
*S**  LOCAL USING WFNSL27R          
*S**  LOCAL USING WFBUDGTD          
*S**  LOCAL USING WFBUDGTR          
*S**  LOCAL USING WFAWARDD          
*S**  LOCAL USING WFAWARDR          
*S**  LOCAL USING WFAWARDL          
*S**  LOCAL USING WFTSCPTD          
*S**  LOCAL USING WFTSCPTR          
*S**  LOCAL USING WFTSCPTL          
*S**  LOCAL USING WWAOBJ
*S***       
*S**  LOCAL USING WFPKP27L  /* Direct Loan limits           
*S***       
*S**  LOCAL 
*S**    01 #SUBPGM(A8)  
*S**    01 #SUB(P3)     
*S**    01 #AWD-SUB(P3) 
*S**    01 #FUND-SUB(P3)
*S**    01 #REQ-SUB(P3) 
*S**    01 #AWARD-MAX(N6.2)         
*S**    01 #NSLDS-SUB-TOTAL(N6)     
*S**    01 #NSLDS-CMB-TOTAL(N6)     
*S**    01 #CURRENT-PELL-LEU(P4.3)  
*S**    01 #PRIOR-YR-PELL-LEU(P4.3) 
*S**    01 #PELL-LEU(P4.3)          
*S**    01 #NSLDS-PELL-LEU-NO(N7)   
*S**    01 #NSLDS-PELL-LEU(P4.3)    
*S**    01 #REMAINING-LEU(P4.5)     
*S**    01 #ELIG-SUB(N5)
*S**    01 #ELIG-UNSUB(N5)          
*S**    01 #UNSUB-AGG(N6)           
*S**    01 #RTN-CODE(A1)
*S**    01 #AWARD-FC(N6.2)          
*S**    01 #AWARD-NEED(N6.2)        
*S**    01 #INST-PARMS(L)           
*S**    01 #TEMP-PELL-AWARD(P5)     
*S**    01 #TEMP-PELL-AWARD-TRUNC(N5.2)         
*S**    01 REDEFINE #TEMP-PELL-AWARD-TRUNC      
*S**      02 #TEMP-PAT-N5(N5)       
*S**      02 #TEMP-PAT-D2(N2)       
*S**    01 #CPS-EXISTS(A1)          
*S**    01 #AID-CCYY(N4)
*S**    01 REDEFINE #AID-CCYY       
*S**      02 #AID-CC(N2)
*S**      02 #AID-YY(N2)
*S**    01 #PELL-MIN(A1)
*S**    01 #PELL-MAX(A1)
*S**    01 #PELL-ELIG-PRT(A20)      
*S**    01 #PELL-MIN-PRT(A20)       
*S**    01 #PELL-MAX-PRT(A20)       
*S**    01 #HOLD-LIFETIME-MAX(A6)   
*S**    01 REDEFINE #HOLD-LIFETIME-MAX          
*S**      02 #HOLD-LIFETIME-MAX-N(N6)           
*S***       
*S**    01 #STUDENT-AWARDS(20)             /* Holds existing award      
*S**      02 WF-FUND-ID(A9)         
*S**      02 WF-AW-OFF(P5.2)        
*S**      02 TERM-ARRAY(12)         
*S**        03 WF-AW-D-OFF(P5.2)    
*S***       
*S*** Requirement variables         
*S**  01 APP-TYPE(A1) INIT<'A'>     
*S**  01 #HOLD-TEMP(A10)
*S**  01 #HOLD-PRIOR-PELL(A1)       
*S**  01 #EDIT-HOLD(A12)
*S**  01 #REQMTS-READ(L)
*S**  01 #REQMTS-COMPLETE(L)        
*S**  01 #REQMTS-FOUND(L)           
*S**  01 #REQ-TYPE(A1)  
*S**  01 #REQ-STAT-ARRAY(10)        
*S**    02 #REQ-STAT(A1)
*S**  01 #REQ-STAT-SUB(P3)          
*S**  01 #REQS          
*S**    02 #REQ(30)     
*S**      03 #RE-D-AFF (A1)         
*S**      03 #RE-D-STAT (A1)        
*S**      03 #RE-D-ST-DOC (A6)      
*S***       
*S**  01 #STUDENT-VARIABLES         
*S**    02 #STUDENT-LOGICALS        
*S**      03 #CHECK-DEGREE(L)       
*S**      03 #CHECK-PAR-ED-LEVEL(L) 
*S**      03 #CHECK-EFC(L)          
*S**      03 #CHECK-RECVD-DATE(L)   
*S**      03 #CHECK-INSTATE-RES(L)  
*S***       
*S*** Institutional variables       
*S***       
*S***       
*S**END-DEFINE          
*S***       
*S*************************************************************************         
*S**  /*    
*S**  /* Populate WW-GDA from WW-PDA
*S**  MOVE BY POSITION WW-PDA TO WW-GDA         
*S**  ASSIGN #AID-CCYY = VAL(##AID-YEAR)        
*S**  COMPUTE #AID-CCYY = #AID-CCYY - 1         
*S**  MOVE #USE-PRIOR-PELL TO #HOLD-PRIOR-PELL  
*S**  RESET WFPKPAKD    
*S**  MOVE #HOLD-PRIOR-PELL TO #USE-PRIOR-PELL  
*S**  /*    
*S**  /* Read data for passed SID   
*S**  /*  Federal data  
*S**  MOVE 'GET' TO WWAOBJ.#FUNCTION
*S**  ASSIGN WFFED27D.WF-FAO = ##FAO-ID         
*S**  ASSIGN WFFED27D.WW-STUDENT-ID = ##STUDENT-ID          
*S**  PERFORM CALL-OBJECT-FEDERAL   
*S**  /*    
*S**  /*  ISIR data     
*S**  ASSIGN WFISR27D.WF-FAO = ##FAO-ID         
*S**  ASSIGN WFISR27D.WW-STUDENT-ID = ##STUDENT-ID          
*S**  PERFORM CALL-OBJECT-ISIR      
*S**  /*    
*S**  /*  NSLDS data    
*S**  ASSIGN WFNSL27D.WF-FAO = ##FAO-ID         
*S**  ASSIGN WFNSL27D.WW-STUDENT-ID = ##STUDENT-ID          
*S**  PERFORM CALL-OBJECT-NSLDS     
*S**  /*    
*S**  /*  TRANSCRIPT data           
*S**  ASSIGN WFTSCPTD.WF-FAO = ##FAO-ID         
*S**  ASSIGN WFTSCPTD.WW-STUDENT-ID = ##STUDENT-ID          
*S**  PERFORM CALL-OBJECT-TRANSCRIPT
*S**  /*    
*S**  RESET WFPKPAKD.#REJECT-RSNS(*)
*S**  RESET #STUDENT-LOGICALS       
*S**  RESET #STUDENT-AWARDS (*)     
*S**  /*    
*S**  /* Load existing awards       
*S**  PERFORM LOAD-EXISTING-AWARDS  
*S**  /*    
*S**  /* Setup student variables    
*S**  /*    
*S**  /* FC/PC/SC, Need, COA, etc.  
*S**  IF WFAIDYRD.WF-AY-M1-FC > 999999          
*S**    MOVE 999999 TO WFPKPAKD.#FED-EFC        
*S**  ELSE  
*S**    MOVE WFAIDYRD.WF-AY-M1-FC TO WFPKPAKD.#FED-EFC      
*S**  END-IF
*S**  /*    
*S**  IF WFAIDYRD.WF-AY-M2-FC > 999999          
*S**    MOVE 999999 TO WFPKPAKD.#EFC
*S**  ELSE  
*S**    MOVE WFAIDYRD.WF-AY-M2-FC TO WFPKPAKD.#EFC          
*S**    IF WFPKPAKD.#EFC < 0        
*S**      ASSIGN WFPKPAKD.#EFC = 0  
*S**    END-IF          
*S**  END-IF
*S**  MOVE WFPKPAKD.#EFC TO WFPKPAKD.#FC        
*S**  /*    
*S**  IF WFAIDYRD.WF-AY-M2-PC > 999999          
*S**    MOVE 999999 TO WFPKPAKD.#PC 
*S**  ELSE  
*S**    IF WFAIDYRD.WF-AY-M2-PC < 0 
*S**      ASSIGN WFPKPAKD.#PC = 0   
*S**    ELSE
*S**      MOVE WFAIDYRD.WF-AY-M2-PC TO WFPKPAKD.#PC         
*S**    END-IF          
*S**  END-IF
*S**  IF WFAIDYRD.WF-AY-M2-SC > 999999          
*S**    MOVE 999999 TO #SC          
*S**  ELSE  
*S**    IF WFAIDYRD.WF-AY-M2-SC < 0 
*S**      ASSIGN WFPKPAKD.#SC = 0   
*S**    ELSE
*S**      MOVE WFAIDYRD.WF-AY-M2-SC TO WFPKPAKD.#SC         
*S**    END-IF          
*S**  END-IF
*S**  /*    
*S**  /* Load COA       
*S**  MOVE WFAIDYRD.WF-AY-M1-BUDGET TO WFPKPAKD.#PELL-COA   
*S**  MOVE WFAIDYRD.WF-AY-M2-BUDGET TO WFPKPAKD.#COA        
*S**  /*    
*S**  /* Load Need      
*S**  COMPUTE WFPKPAKD.#PELL-NEED = WFAIDYRD.WF-AY-M1-NEED  
*S**  COMPUTE WFPKPAKD.#NEED = WFAIDYRD.WF-AY-M2-NEED -     
*S**       WFAIDYRD.WF-AY-W-AID-MN  
*S**  MOVE WFPKPAKD.#NEED TO WFPKPAKD.#REM-NEED 
*S**  /*    
*S**  /* Load FC        
*S**  MOVE WFPKPAKD.#FC TO WFPKPAKD.#REM-FC     
*S**  MOVE WFPKPAKD.#SC TO WFPKPAKD.#REM-SC     
*S**  MOVE WFPKPAKD.#PC TO WFPKPAKD.#REM-PC     
*S**  /*    
*S**  /*    
*S**  /* Set student specific variables from year specific data         
*S**  ASSIGN #S-CIT          = WFFED27D.WF-FE-S-CIT         
*S**  ASSIGN #ISIR-DEP-STAT  = WFISR27D.WF-IS-C-DEP-MODEL   
*S**  ASSIGN #AY-DEP-STAT    = WFAIDYRD.WF-AY-M1-DEP        
*S**  ASSIGN #ISIR-PELL-ELIG = WFISR27D.WF-IS-C-PELL-ELIG   
*S**  ASSIGN #PELL-MIN       = WFISR27D.WF-IS-C-MIN-PELL-IND
*S**  ASSIGN #PELL-MAX       = WFISR27D.WF-IS-C-MAX-PELL-IND
*S**  ASSIGN #CPS-RECVD-DATE = WFISR27D.WF-IS-C-APP-RCPT-DATE           
*S**  ASSIGN #INT-WORK       = WFAIDYRD.WF-AY-S-INT-WS      
*S**  ASSIGN #S-DEG          = WWSTDNTD.WW-ST-AC-DEG        
*S**  ASSIGN #S-CLASS        = WWSTDNTD.WW-ST-AC-CLS        
*S**  ASSIGN #S-TIM          = WWSTDNTD.WW-ST-RT1-TIM       
*S**  ASSIGN #NS-PERK-TOTAL  = WFNSL27D.WF-NS-PERK-TOTAL    
*S**  ASSIGN #FE-HSG         = WFAIDYRD.WF-AY-S-HSG         
*S**  MOVE RIGHT JUSTIFIED WFISR27D.WF-IS-FISAP-TOT-INC TO  
*S**                       #FISAP   
*S**  EXAMINE #FISAP FOR ' ' AND REPLACE WITH '0'           
*S**  IF #FISAP = MASK(99999999)    
*S**    ASSIGN #FISAP-N      = VAL(WFISR27D.WF-IS-FISAP-TOT-INC)        
*S**  END-IF
*S**  IF WFISR27D.WF-IS-C-SAI = ' ' 
*S**    ASSIGN #BLANK-SAI = 'Y'     
*S**  END-IF
*S**  /*    
*S**  /* Examine NSLDS Limit Eligibility flag, if set       
*S**  /*   verify that Subsidized limit used does not exceed 150%       
*S**  IF WFNSL27D.WF-NS-C-SUB-LE-FLAG = 'Y'     
*S**    IF WFNSL27D.WF-NS-C-SUB-USAGE-PD > '150000' /* 999v999          
*S**      ASSIGN #S-DL-SUB-LIMIT = 'Y'   /* Limit Sub loans 
*S**    ELSE
*S**      ASSIGN #S-DL-SUB-LIMIT = 'N'   /* Do not limit Sub loans      
*S**    END-IF          
*S**  ELSE  
*S**    ASSIGN #S-DL-SUB-LIMIT = 'N'     /* Do not limit Sub loans      
*S**  END-IF
*S**  /*    
*S**  /* Class level    
*S**  PERFORM DETERMINE-CLASS-LEVEL 
*S**  /*    
*S**  /* Institutional override parameters      
*S**  ASSIGN #INST-PARMS = TRUE     
*S**  PERFORM CALL-INSTITUTIONAL-PKGING         
*S**  ASSIGN #INST-PARMS = FALSE    
*S**  /*    
*S**  /* NSLDS DL totals
*S**  IF WFNSL27D.WF-NS-SUB-TOTAL = MASK (999999)           
*S**    MOVE EDITED WFNSL27D.WF-NS-SUB-TOTAL TO #NSLDS-SUB-TOTAL (EM=999999)        
*S**  ELSE  
*S**    MOVE RIGHT JUSTIFIED WFNSL27D.WF-NS-SUB-TOTAL TO    
*S**         WFNSL27D.WF-NS-SUB-TOTAL           
*S**    EXAMINE WFNSL27D.WF-NS-SUB-TOTAL FOR ' ' REPLACE WITH '0'       
*S**    IF WFNSL27D.WF-NS-SUB-TOTAL = MASK(999999)          
*S**      MOVE EDITED WFNSL27D.WF-NS-SUB-TOTAL TO           
*S**                  #NSLDS-SUB-TOTAL (EM=999999)          
*S**    ELSE
*S**      MOVE 0 TO #NSLDS-SUB-TOTAL
*S**    END-IF          
*S**  END-IF
*S**  IF WFNSL27D.WF-NS-CMB-TOTAL = MASK(999999)
*S**    MOVE EDITED WFNSL27D.WF-NS-CMB-TOTAL TO #NSLDS-CMB-TOTAL (EM=999999)        
*S**  ELSE  
*S**    MOVE RIGHT JUSTIFIED WFNSL27D.WF-NS-CMB-TOTAL TO    
*S**         WFNSL27D.WF-NS-CMB-TOTAL           
*S**    EXAMINE WFNSL27D.WF-NS-CMB-TOTAL FOR ' ' REPLACE WITH '0'       
*S**    IF WFNSL27D.WF-NS-CMB-TOTAL = MASK(999999)          
*S**     MOVE EDITED WFNSL27D.WF-NS-CMB-TOTAL TO
*S**                 #NSLDS-CMB-TOTAL (EM=999999)           
*S**    ELSE
*S**      MOVE 0 TO #NSLDS-CMB-TOTAL
*S**    END-IF          
*S**  END-IF
*S**  /*    
*S**  /* (post OBBBA)   
*S**  /*    Loan limit exception flag           
*S**  /*    Student Lifetime max total          
*S**  /*    Lifetime limit          
*S**  MOVE WFNSL27D.WF-NS-LIMIT-EXCP TO #NS-LIMIT-EXCEP     
*S**  MOVE DL-ANNUAL-LIMITS.GRAD-UNSUB-OBBBA TO 
*S**       #ANNUAL-GRAD-UNSUB-OBBBA 
*S**  MOVE DL-LIFETIME-LIMITS.GRAD-UNSUB-OBBBA TO           
*S**       #LIFETIME-GRAD-UNSUB-OBBBA           
*S**  IF WFNSL27D.WF-NS-LIFE-MAX-TOT = MASK (999999999999999)           
*S**    MOVE SUBSTRING(WFNSL27D.WF-NS-LIFE-MAX-TOT,8,6) TO  
*S**          #HOLD-LIFETIME-MAX    
*S**    MOVE #HOLD-LIFETIME-MAX-N TO #NS-LIFETIME-MAX       
*S**  ELSE  
*S**    MOVE 0 TO #NS-LIFETIME-MAX  
*S**  END-IF
*S**  MOVE DL-LIFETIME-LIMITS.MAX-STUDENT-LIMIT TO #MAX-STUDENT-LIMIT   
*S**  MOVE WFNSL27D.WF-NS-CMB-LIMIT-GRAD TO #NS-CMB-LIMIT-GRAD          
*S**  /*    
*S**  /* Pell LEU       
*S**  IF WFNSL27D.WF-NS-C-LEU = MASK(9999999)   
*S**    ASSIGN #NSLDS-PELL-LEU-NO = VAL(WFNSL27D.WF-NS-C-LEU)           
*S**    /* Delivered as 100% = 01V00000, need to convert to 100%        
*S**    COMPUTE #NSLDS-PELL-LEU = #NSLDS-PELL-LEU-NO / 1000 
*S**  END-IF
*S**  /*    
*S**  /* Determine LEU to use (COD vs NSLDS - use higher one)           
*S**  IF WWSTDNTD.WW-ST-PELL-LEU > #NSLDS-PELL-LEU          
*S**    ASSIGN #CURRENT-PELL-LEU = WWSTDNTD.WW-ST-PELL-LEU  
*S**  ELSE  
*S**    ASSIGN #CURRENT-PELL-LEU = #NSLDS-PELL-LEU          
*S**  END-IF
*S**  /*    
*S**  /* Setup student report detail (#PKG-PASS-TEMP)       
*S**  /*   returned to WFPKPAKB print logic via #PKG-PASS-TEMP          
*S**  COMPRESS 'Col=' WWSTDNTD.WW-ST-AC-COL     
*S**           '; Deg=' WWSTDNTD.WW-ST-AC-DEG   
*S**           '; Cls=' WWSTDNTD.WW-ST-AC-CLS   
*S**           '; TStat=' #CLASS-LEVEL '|'      
*S**     INTO #PKG-PASS-TEMP LEAVING NO SPACE   
*S**  MOVE EDITED WWSTDNTD.WW-ST-RT1-GPA(EM=9.999) TO #HOLD-TEMP        
*S**  COMPRESS #PKG-PASS-TEMP 'GPA=' #HOLD-TEMP 
*S**           '; IOS=' WWSTDNTD.WW-ST-AC-IOS   
*S**           '; Dep=' #AY-DEP-STAT
*S**           '; DL Sub=' #NSLDS-SUB-TOTAL     
*S**           '; DL Cmb=' #NSLDS-CMB-TOTAL     
*S**     INTO #PKG-PASS-TEMP LEAVING NO SPACE   
*S**  COMPRESS #PKG-PASS-TEMP '#'   
*S**           'NS Lim Excp=' #NS-LIMIT-EXCEP   
*S**           '; NS Lifetime Max=' #NS-LIFETIME-MAX        
*S**     INTO #PKG-PASS-TEMP LEAVING NO SPACE   
*S**  /*    
*S**  /* Get PELL-MIN and PELL-MAX (Read from yr specific ISIR)         
*S**  COMPRESS #PKG-PASS-TEMP ';'   
*S**    INTO #PKG-PASS-TEMP LEAVING NO SPACE    
*S**  IF #ISIR-PELL-ELIG = ' '      
*S**    ASSIGN #PELL-ELIG-PRT = 'blank'         
*S**  ELSE  
*S**    ASSIGN #PELL-ELIG-PRT = #ISIR-PELL-ELIG 
*S**  END-IF
*S**  COMPRESS '\Pell: Elig=' #PELL-ELIG-PRT ';'
*S**    INTO #PELL-ELIG-PRT LEAVING NO SPACE    
*S**  IF #PELL-MAX = ' '
*S**    ASSIGN #PELL-MAX-PRT = 'blank'          
*S**  ELSE  
*S**    ASSIGN #PELL-MAX-PRT = #PELL-MAX        
*S**  END-IF
*S**  COMPRESS 'Max=' #PELL-MAX-PRT ';'         
*S**    INTO #PELL-MAX-PRT LEAVING NO SPACE     
*S**  IF #PELL-MIN = ' '
*S**    ASSIGN #PELL-MIN-PRT = 'blank'          
*S**  ELSE  
*S**    ASSIGN #PELL-MIN-PRT = #PELL-MIN        
*S**  END-IF
*S**  COMPRESS 'Min=' #PELL-MIN-PRT ';'         
*S**    INTO #PELL-MIN-PRT LEAVING NO SPACE     
*S**  COMPRESS #PKG-PASS-TEMP       
*S**           '  ' #PELL-ELIG-PRT  
*S**           '  ' #PELL-MAX-PRT   
*S**           '  ' #PELL-MIN-PRT   
*S**     INTO #PKG-PASS-TEMP        
*S**  MOVE EDITED #CURRENT-PELL-LEU (EM=999.999) TO #HOLD-TEMP          
*S**  COMPRESS #PKG-PASS-TEMP 'LEU=' #HOLD-TEMP 
*S**     INTO #PKG-PASS-TEMP        
*S**  /*    
*S**  /* Package passed funds for student       
*S**  FOR #FUND-SUB = 1 TO 20       
*S**    MOVE WFPKFNDD.WF-FUND-ID(#FUND-SUB) TO  
*S**         WFPKPAKD.FUND-ID(#FUND-SUB)        
*S**    /*  
*S**    /* No fund requested        
*S**    IF WFPKFNDD.WF-FUND-ID(#FUND-SUB) = ' ' 
*S**      PERFORM PREPARE-BYPASS    
*S**      ESCAPE TOP    
*S**    END-IF          
*S**    /*  
*S**    /* No remaining need        
*S**    /*  (Effective 2025, student may be eligible for a minimum Pell 
*S**    /*   even if there is no need)          
*S**     IF ((WFPKFNDD.WF-FUND-ID (#FUND-SUB) = WFPKFNDD.PELL-FUND-ID AND           
*S**          #PELL-NEED = 0 AND #PELL-MIN = ' ') OR        
*S**         (WFPKFNDD.WF-FUND-ID (#FUND-SUB) NOT = WFPKFNDD.PELL-FUND-ID           
*S**           AND #REM-NEED = 0))  
*S**      IF WFPKFNDD.WF-FU-REPL-FC(#FUND-SUB) NOT = ' ' AND
*S**         WFPKFNDD.WF-FU-REPL-FC(#FUND-SUB) NOT = 'N'    
*S**        IF #REM-FC = 0 AND      
*S**           #REM-PC = 0 AND      
*S**           #REM-SC = 0          
*S**          ASSIGN #REJECT-RSN(#FUND-SUB) = #NO-NEED      
*S**          PERFORM PREPARE-BYPASS
*S**          ESCAPE TOP
*S**        END-IF      
*S**      ELSE          
*S**        ASSIGN #REJECT-RSN(#FUND-SUB) = #NO-NEED        
*S**        PERFORM PREPARE-BYPASS  
*S**        ESCAPE TOP  
*S**      END-IF        
*S**    END-IF          
*S**    /*  
*S**    /* Determine if student already has award           
*S**    /*  from this fund (no re-awarding)     
*S**    FOR #AWD-SUB = 1 TO 20      
*S**      IF (#STUDENT-AWARDS.WF-FUND-ID(#AWD-SUB) =        
*S**          WFPKFNDD.WF-FUND-ID(#FUND-SUB)) AND           
*S**         (#STUDENT-AWARDS.WF-AW-OFF(#AWD-SUB) > 0)      
*S**         ASSIGN #REJECT-RSN(#FUND-SUB) = #FUND-PREV-AWARDED         
*S**         ESCAPE BOTTOM          
*S**      END-IF        
*S**    END-FOR         
*S**    /*  
*S**    /* Recheck reject reason (#FUND-PREV-AWARDED above) 
*S**    IF #REJECT-RSN(#FUND-SUB) NE ' '        
*S**      PERFORM PREPARE-BYPASS    
*S**      ESCAPE TOP    
*S**    END-IF          
*S**    /*  
*S**    /* Fund edits   
*S**    PERFORM FUND-EDITS          
*S**    IF FUND-REJECT(#FUND-SUB) = 'Y' OR      
*S**       #REJECT-RSN(#FUND-SUB) NOT = ' '     
*S**      PERFORM PREPARE-BYPASS    
*S**      ESCAPE TOP    
*S**    END-IF          
*S**    /*  
*S**    /* Requirement edit         
*S**    IF WFPKFNDD.FUND-DOC(#FUND-SUB) NOT = ' '           
*S**      PERFORM CHECK-REQUIREMENTS
*S**      IF #REJECT-RSN(#FUND-SUB) NOT = ' '   
*S**        PERFORM PREPARE-BYPASS  
*S**        ESCAPE TOP  
*S**      END-IF        
*S**    END-IF          
*S**    /*  
*S**    /* Student must be Pell eligible (per ISIR)         
*S**    IF WFPKFNDD.FUND-PELL-ELIG(#FUND-SUB) = 'Y'         
*S**      IF #ISIR-PELL-ELIG NOT = 'Y'          
*S**        ASSIGN #REJECT-RSN(#FUND-SUB) = #NOT-PELL-ELIGIBLE          
*S**        ESCAPE TOP  
*S**      END-IF        
*S**    END-IF          
*S**    /*  
*S**    /* EFC minimum / maximum    
*S**    IF WFPKFNDD.FUND-EFC-CHECK(#FUND-SUB) = 'Y'         
*S**      PERFORM CHECK-EFC         
*S**      IF NOT #CHECK-EFC         
*S**        ASSIGN #REJECT-RSN(#FUND-SUB) = #EFC-CHECK-ERR  
*S**        ESCAPE TOP  
*S**      END-IF        
*S**    END-IF          
*S**    /*  
*S**    /* CPS received date        
*S**    IF WFPKFNDD.FUND-RECVD-DATE(#FUND-SUB) NOT = ' '    
*S**      PERFORM CHECK-RECEIVED-DATE           
*S**      IF NOT #CHECK-RECVD-DATE  
*S**        ASSIGN #REJECT-RSN(#FUND-SUB) = #DATE-PASSED    
*S**        ESCAPE TOP  
*S**      END-IF        
*S**    END-IF          
*S**    /*  
*S**    ASSIGN WFPKPAKD.AWARD-AMT(#FUND-SUB) = 0
*S**    ASSIGN #AWARD-FC = 0        
*S**    ASSIGN #AWARD-NEED = 0      
*S**    ASSIGN #AWARD-MAX = 0       
*S**    RESET #CHECK-DEGREE         
*S**    /*  
*S**    DECIDE ON FIRST VALUE WFPKFNDD.FUND-CATEGORY(#FUND-SUB)         
*S**      /*
*S**      /* Fund specific packaging routines, must         
*S**      /* be kept in sync with institution fund list     
*S**      /*
*S**      /*  Pell      
*S**      VALUE 'PELL'  
*S**        PERFORM PACKAGE-PELL    
*S**      /*
*S**      /*  SEOG      
*S**      VALUE 'SEOG'  
*S**        PERFORM PACKAGE-SEOG    
*S**      /*
*S**      /*  State Grant           
*S**      VALUE 'STGRANT'           
*S**        PERFORM PACKAGE-STATE-GRANT         
*S**      /*
*S**      /*  TEACH     
*S**      VALUE 'TEACH' 
*S**        PERFORM PACKAGE-TEACH   
*S**      /*
*S**      /*  Work study
*S**      VALUE 'WORK'  
*S**        PERFORM PACKAGE-WORK    
*S**      /*
*S**      /*  GRADPLUS  
*S**      VALUE 'GRADPLUS'          
*S**        PERFORM PACKAGE-GRADPLUS
*S**      /*
*S**      /*  PLUS      
*S**      VALUE 'PLUS'  
*S**        PERFORM PACKAGE-PLUS    
*S**      /*
*S**      /*  DL Sub    
*S**      VALUE 'DLSUB' 
*S**        PERFORM PACKAGE-DLSUB   
*S**      /*
*S**      /*  DL Unsub  
*S**      VALUE 'DLUNSUB'           
*S**        PERFORM PACKAGE-DLUNSUB 
*S**      /*
*S**      NONE          
*S**        ASSIGN #REJECT-RSN(#FUND-SUB) = #PROG-NOT-FOUND 
*S**    END-DECIDE      
*S**    /*  
*S**    /* Update running totals fund rejected  
*S**    IF #REJECT-RSN(#FUND-SUB) NOT = ' '     
*S**      PERFORM PREPARE-BYPASS    
*S**    END-IF          
*S**    /*  
*S**    /* Accumulate paked awards to allow for check against total COA 
*S**    /*   to prevent potential overaward     
*S**    ADD WFPKPAKD.AWARD-AMT(#FUND-SUB) TO #TOTAL-PKG-AWDS
*S**    /*  
*S**  END-FOR           
*S**  /*    
*S**  /*    
*S**  /* Populate WW-PDA from WW-GDA
*S**  MOVE BY POSITION WW-GDA TO WW-PDA         
*S**  /*    
*S*************************************************************************         
*S**DEFINE SUBROUTINE CALL-INSTITUTIONAL-PKGING 
*S*************************************************************************         
*S**  /*    
*S**  /* This subroutine is used to invoke the institional  
*S**  /*   specific code, invoked from each program         
*S**  /*    
*S**  /* As #FUND-SUB is passed to institutional calc,      
*S**  /*    WFPKFNDD.FUND-CATEGORY(#FUND-SUB) is examined for           
*S**  /*    fund specific processing
*S**  /* Set #REJECT-RSN(#FUND-SUB) to non-blank to stop fund processing
*S**  /*    for student 
*S**  /*    
*S**  CALLNAT 'WXPKP27N' WW-GDA     
*S**           #FUND-SUB
*S**           #INST-PARMS          
*S**           WFPKPAKD 
*S**           WFPKFNDD 
*S**           WWSTDNTD WWSTDNTD-ID 
*S**           WFAIDYRD WFAIDYRD-ID 
*S**           WFFED27D WFFED27D-ID 
*S**           WFISR27D WFISR27D-ID 
*S**           WFNSL27D WFNSL27D-ID 
*S***       
*S**END-SUBROUTINE /* CALL-INSTITUTIONAL-PKGING 
*S***       
*S*************************************************************************         
*S**DEFINE SUBROUTINE CALL-OBJECT-AWARD         
*S*************************************************************************         
*S**  /*    
*S**  /* Call WF-AWARD file object subprogram   
*S**  CALLNAT 'WFAWARDO' WW-GDA     
*S**           WFAWARDD 
*S**           WFAWARDD-ID          
*S**           WFAWARDR 
*S**           WWAOBJ   
*S**END-SUBROUTINE /* CALL-OBJECT-AWARD         
*S***       
*S*************************************************************************         
*S**DEFINE SUBROUTINE CALL-OBJECT-FEDERAL       
*S*************************************************************************         
*S**  /*    
*S**  /* Call WF-FEDERAL-2627 file object subprogram        
*S**  CALLNAT 'WFFED27O' WW-GDA     
*S**           WFFED27D 
*S**           WFFED27D-ID          
*S**           WFFED27R 
*S**           WWAOBJ   
*S**END-SUBROUTINE /* CALL-OBJECT-FEDERAL       
*S***       
*S*************************************************************************         
*S**DEFINE SUBROUTINE CALL-OBJECT-ISIR          
*S*************************************************************************         
*S**  /*    
*S**  /* Call WF-ISIR-2627 file object subprogram           
*S**  CALLNAT 'WFISR27O' WW-GDA     
*S**           WFISR27D 
*S**           WFISR27D-ID          
*S**           WFISR27R 
*S**           WWAOBJ   
*S**END-SUBROUTINE /* CALL-OBJECT-ISIR          
*S***       
*S*************************************************************************         
*S**DEFINE SUBROUTINE CALL-OBJECT-NSLDS         
*S*************************************************************************         
*S**  /*    
*S**  /* Call WF-NSLDS-2627 file object subprogram          
*S**  CALLNAT 'WFNSL27O' WW-GDA     
*S**           WFNSL27D 
*S**           WFNSL27D-ID          
*S**           WFNSL27R 
*S**           WWAOBJ   
*S**END-SUBROUTINE /* CALL-OBJECT-NSLDS         
*S***       
*S*************************************************************************         
*S**DEFINE SUBROUTINE CALL-OBJECT-TRANSCRIPT    
*S*************************************************************************         
*S**  /*    
*S**  /* Call WF-TRANSCRIPT file object subprogram          
*S**  CALLNAT 'WFTSCPTO' WW-GDA     
*S**           WFTSCPTD 
*S**           WFTSCPTD-ID          
*S**           WFTSCPTR 
*S**           WWAOBJ   
*S**END-SUBROUTINE /* CALL-OBJECT-TRANSCRIPT    
*S***       
*S**INCLUDE WFPKPAKC    
*S***       
*S**END     
