*DECK G$DTAIL 
USETEXT CCTTEXT 
USETEXT DNTEXT
USETEXT RPTEXT
PROC G$DTAIL; 
          BEGIN 
          ITEM   CTPTR, 
                 WORD,
                 TYPETEMP;
*CALL RGCOMM1 
*CALL RGCOMM2 
*CALL CTEXT 
*CALL CTXTVALS
*CALL GETSET
*CALL TABLNAMES 
  
          #THIS ROUTINE#
          #- GENERATES A COBOL DETAIL ROUTINE IN CTEXT FORM.# 
  
PROC G$MOVE;
          BEGIN 
          #GENERATE A MOVE STATEMENT THAT WILL FORMAT ONE#
          #ITEM INTO THE PRINT LINE#
  
  # * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *#
  # * #   EPTRACE("G$MOVE ")                                       # * #
  # * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *#
  
          DNATPTR = RWGET1(PL$DNATDE  #CURRDEPLPTR#); 
          IF DNATPTR EQ 0 
          THEN
              # ITEM IS NOT PRINTABLE # 
              # MAYBE, COLUMN CLAUSE WAS OMITTED #
             RETURN;
          LINENUM = GETQUICK(DN$LINE,DNAT$,DNATPTR);
          GENEOC #LINENUM# ;
  
          GENMOVE;
          IF  RWGET1(ITEMTYPEDE  #CURRDEPLPTR#) EQ 0
              #VALUE# 
          THEN
              BEGIN 
              IF  RWGET1(ALLVALUE$DE  #CURRDEPLPTR#) EQ 1 
              THEN
                  BEGIN 
                  GENALL; 
                  END 
              PLTPNTR = RWGET1(PI$SOURCEDE  #CURRDEPLPTR#); 
              GENVLIT #PLTPNTR# ; 
              GOTO IPGENTO; 
              END 
          IF  RWGET1(ITEMTYPEDE  #CURRDEPLPTR#) EQ 1
              #SOURCE#
          THEN
              BEGIN 
              IF  RWGET1(SISOURCE$DE  #CURRDEPLPTR#) EQ 1 
              THEN
                  BEGIN 
                  SAUXINDEX = RWGET1(PI$SOURCEDE  #CURRDEPLPTR#); 
                  #GET DATA OUT OF RP-AUX-TABLE#
                  DNATPTR = RWGET(RASRCEIDNAT,SAUXINDEX); 
                  GENDNREF #DNATPTR# ;
SILOOP1:  
                  SAUXINDEX = SAUXINDEX + 1;
                  PSICTEXTATOM = RWGET(RASICTEXT,SAUXINDEX);
                  GENSUBINDX #PSICTEXTATOM# ; 
                  IF RWGET(RALASTSINTRY,SAUXINDEX) EQ 1 
                  THEN
                      GOTO IPGENTO; 
                  GOTO SILOOP1; 
                  END 
              #ELSE#
  
              DNATPTR =  RWGET1(PI$SOURCEDE  #CURRDEPLPTR#);
              GENDNREF #DNATPTR# ;
              GOTO IPGENTO; 
              END 
IPGENTO:  
          GENTO;
          DNATPTR =  RWGET1(PL$DNATDE  #CURRDEPLPTR#);
          GENDNREF #DNATPTR# ;
  
  # * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *#
  # * #   EXTRACE("G$MOVE ")                                       # * #
  # * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *#
  
          END #G$MOVE#
          CONTROL EJECT;
PROC G$SUBTO; 
          BEGIN 
          #GENERATE ANY REQUIRED ADD FOR SUBTOTALLING#
          #ADD DATA-NAME-1 TO  SUM-CNTR-1#
          #ADD IDENT-1, IDENT-2  TO SUM-CNTR-2# 
          #ETC.#
  
  # * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *#
  # * #   EPTRACE("G$SUBTO")                                       # * #
  # * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *#
  
  
          IF  RWGET1(BASE$SUBTOTL  #CURRIRTPTR#)  EQ 0
          THEN
              GOTO ENDGSUBT;
          #IS NO SUBTOTALLING FOR THIS REPORT#
          CURRSUBTOPTR =  RWGET1(BASE$SUBTOTL  #CURRIRTPTR#); 
  
          #SEARCH THRU SUBT. TABLE TO SEE IF CURRENT DETAIL REPORT# 
          #GROUP APPEARS IN IT# 
  
          CURRDERGPTR = RWGET1(RGBASERGTABL  #CURRRPTGRPTR#); 
SUBTSERCHLOP: 
          IF RWGET1(SUBT$DETAIL  #CURRSUBTOPTR#)  EQ
             RWGET1(RG$NAMEDE  #CURRDERGPTR#) 
          THEN
              GOTO SUMCNTRLOOP; 
          IF RWGET1(SUBT$DELIM  #CURRSUBTOPTR#)  EQ  0
          THEN
              GOTO ENDGSUBT;
          #NO MORE ENTRIES IN TABLE#
          CURRSUBTOPTR =  RWGET1(SUBT$LINK  #CURRSUBTOPTR#);
          GOTO SUBTSERCHLOP;
SUMCNTRLOOP:  
          GENADD; 
IDENTLOOP:  
          DNATPTR = RWGET1(SUBT$SCIDENT  #CURRSUBTOPTR#); 
          GENDNREF #DNATPTR# ;
          #IF SUBSCRIPTS WERE USED, MOVE THEM FROM THEIR# 
          #ORIGINAL POSITION IN CTEXT TO THE CURRENT SPOT#
  
          SAUXINDEX = RWGET1(SUBT$SITABLE #CURRSUBTOPTR#);
SUBTSILOOP: 
          IF SAUXINDEX NQ 0 THEN
              BEGIN 
              IF RWGET(REPTAUXTYPE,SAUXINDEX) EQ SUBINDXTYPE
                THEN
                  BEGIN 
                  PSICTEXTATOM = RWGET(RASICTEXT,SAUXINDEX);
                  GENSUBINDX; 
                  IF RWGET(RALASTSINTRY,SAUXINDEX) EQ 1 THEN
                      GOTO SUBT$KTINU;
                  SAUXINDEX = SAUXINDEX + 1;
                  GOTO SUBTSILOOP;
                  END 
              END 
SUBT$KTINU: 
          NXTSUBTENPTR = RWGET1(SUBT$LINK  #CURRSUBTOPTR#); 
          IF RWGET(SUBT$DETAIL,NXTSUBTENPTR) NQ 
             RWGET1(SUBT$DETAIL  #CURRSUBTOPTR#)
          THEN
              BEGIN 
              GENTO;
              DNATPTR = RWGET1(SUBT$SUMCNTR  #CURRSUBTOPTR#); 
              GENDNREF #DNATPTR# ;
              GOTO ENDGSUBT;
              END 
          IF RWGET(SUBT$SUMCNTR, NXTSUBTENPTR)
              NQ  RWGET1(SUBT$SUMCNTR  #CURRSUBTOPTR#)
          THEN
              BEGIN 
              GENTO;
              DNATPTR = RWGET1(SUBT$SUMCNTR  #CURRSUBTOPTR#); 
              GENDNREF #DNATPTR# ;
              CURRSUBTOPTR =  RWGET1(SUBT$LINK  #CURRSUBTOPTR#);
              GOTO SUMCNTRLOOP; 
              END 
          CURRSUBTOPTR   =  RWGET1(SUBT$LINK  #CURRSUBTOPTR#);
          GOTO IDENTLOOP; 
ENDGSUBT: 
  
  # * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *#
  # * #   EXTRACE("G$SUBTO")                                       # * #
  # * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *#
  
          END #G$SUBTO# 
          CONTROL EJECT;
  
          #G$DTAIL1#
  
  # * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *#
  # * #   EPTRACE("G$DTAIL")                                       # * #
  # * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *#
  
  
          #GENERATE ROUTINE-NAME AND FIRST 3 STATEMENTS ALWAYS# 
          #DETAIL-NAME.#
          #ENTER C.RWMSG USING RWVRBLINE RWERR4#
          #PERFORM INITIATE THRU INITIATE-EXIT.#
          #MOVE 1 TO GENERATE-FLAG# 
  
          PNATPTR = RWGET1(RGPARANAME1  #CURRRPTGRPTR#);
          GENPNDEF #PNATPTR# ;
          GENPERIOD;
          GENIF;
          DNATPTR =  RWGET1(INITIATEFLAG  #CURRIRTPTR#);
          GENDNREF #DNATPTR# ;
          GENEQUAL; 
          PLTPNTR =  RWGET1(IRTINTZERO  #CURRIRTPTR#);
          GENLIT0 #PLTPNTR# ; 
          GENENTER; 
          PLTPNTR = RWGET1(OSINCIDENCE #CURRIRTPTR#); 
          GENLIT #PLTPNTR#; 
          GENUSING; 
          DNATPTR = CCTRWVRBLINE; 
          GENDNREF #DNATPTR#; 
          PLTPNTR = RWGET1(DETAILERRPLT #CURRIRTPTR#);
          GENLIT #PLTPNTR#; 
          GENPERFORM; 
          PNATPTR =  RWGET1(INITIATE  #CURRIRTPTR#);
          GENPNREF #PNATPTR# ;
          GENTHRU;
          PNATPTR =  RWGET1(INITIATEXIT  #CURRIRTPTR#); 
          GENPNREF #PNATPTR# ;
          GENPERIOD;
          GENMOVE;
          PLTPNTR =  RWGET1(IRTINTONE  #CURRIRTPTR#); 
          GENLIT1 #PLTPNTR# ; 
          GENTO;
          DNATPTR =  RWGET1(GENERATEFLAG  #CURRIRTPTR#);
          GENDNREF #DNATPTR# ;
  
          #GENPCONTROLS#
  
          #GENERATE PERFORM OF CONTROLS-RT (PICK UP PARAGRAPH#
          #NAMES FROM WHERE G$CNTRL LEFT THEM.)#
          #PERFORM CONTROLS THRU CONTROLS-EXIT# 
  
          GENPERFORM; 
          PNATPTR = PICONTROLS; 
          GENPNREF #PNATPTR# ;
          GENTHRU;
          PNATPTR = PICEXIT;
          GENPNREF #PNATPTR# ;
  
          #GSUBTOTALING#
  
          #GENERATE ANY REQUIRED ADDS FOR SUBTOTALING#
          G$SUBTO;
  
          #IS THIS A CASE OF SUMMARY REPORTING WHERE NO ACTUAL DETAIL#
          #REPORT GROUP EXISTS & IF SO, GO TO GENEXITPARAG.#
  
          IF  RWGET1(SUMRY$NODETQ  #CURRIRTPTR#) EQ 1 
          THEN
              GOTO GENEXITPARAG;
  
          #GENUBR#
  
          #GEN. CTEXT FOR FOR USE BEFORE REPORTING AND# 
          #SUPPRESS CHECK#
          #NEWVERB DETAIL-R-G-NAME  DETAIL-EXIT-P#
  
          GENRWVERB;
          CURRDERGPTR = RWGET1(RGBASERGTABL  #CURRRPTGRPTR#); 
          DNATPTR =  RWGET1(RG$NAMEDE  #CURRDERGPTR#);
          GENDNREF #DNATPTR# ;
          PNATPTR = RWGET1(RGPARANAME2  #CURRRPTGRPTR#);
          GENPNREF #PNATPTR# ;
  
          #IS DETAIL REPORT GROUP PRINTABLE&  IF THERE WERE NO LINE#
          #NUMBERS SPECIFIED, GO TO  GENEXITPARAG.# 
  
          IF  RWGET1(DELN$BASE  #CURRDERGPTR#) EQ 0 
          THEN
              GOTO GENEXITPARAG;
  
          #GENSUMMARY#
  
          #GEN TEST FOR SUMMARY REPORTING#
          #IF SUMMARY-REPORTING-SWITCH  NOT =  0# 
          #GO TO DETAIL-EXIT-PARAGRAPH# 
  
          GENIF;
          DNATPTR =  RWGET1(SUMREPSWITCH  #CURRIRTPTR#);
          GENDNREF #DNATPTR# ;
          GENNOT; 
          GENEQUAL; 
          PLTPNTR =  RWGET1(IRTINTZERO  #CURRIRTPTR#);
          GENLIT0 #PLTPNTR# ; 
          GENGO;
          GENTO;
          PNATPTR = RWGET1(RGPARANAME2  #CURRRPTGRPTR#);
          GENPNREF #PNATPTR# ;
          GENPERIOD;
  
          #DID CONDITION 4D (PRESENTATION RULES TABLE 3) OCCUR &# 
  
          IF RWGET1(COND4DDE  #CURRDERGPTR#)  EQ 0
          THEN
              BEGIN 
              #GENERATE#
              #MOVE BP-DETAIL-TABLE  TO BP-TABLE# 
              #PERFORM BODY-PAGING THRU BP-EXIT#
  
              GENMOVE;
              DNATPTR =  RWGET1(BPTBL$DNATDE  #CURRDERGPTR#); 
              GENDNREF #DNATPTR# ;
              GENTO;
              DNATPTR =  RWGET1(BP$TABLE  #CURRIRTPTR#);
              GENDNREF #DNATPTR# ;
              GENPERFORM; 
              PNATPTR =  RWGET1(BODYPAGING  #CURRIRTPTR#);
              GENPNREF #PNATPTR# ;
              GENTHRU;
              PNATPTR =  RWGET1(BP$EXIT  #CURRIRTPTR#); 
              GENPNREF #PNATPTR# ;
              END 
          IF RWGET1(COND4DDE  #CURRDERGPTR#) EQ 1 
          THEN
              BEGIN 
              #GENERATE#
              #ADD LINE-COUNTER, 1ST-REL  GIVING S-L-N# 
              #PERFORM SPACING# 
  
              GENADD; 
              DNATPTR =  RWGET1(IRTLCINDEX  #CURRIRTPTR#);
              GENDNREF #DNATPTR# ;
              CURRDELNPTR = RWGET1(DELN$BASE  #CURRDERGPTR#); 
              PLTPNTR = RWGET1(LNINT$PLTDE  #CURRDELNPTR#); 
              GENILIT #PLTPNTR# ; 
              GENGIVING;
              DNATPTR =  RWGET1(SLN  #CURRIRTPTR#); 
              GENDNREF #DNATPTR# ;
              GENPERFORM; 
              PNATPTR =  RWGET1(SPACING  #CURRIRTPTR#); 
              GENPNREF #PNATPTR# ;
              END 
  
          #GD1# 
  
          CURRDELNPTR =  RWGET1(DELN$BASE  #CURRDELNPTR#);
          #"INITIALIZE" FOR  "GEN-CALL-SPACING-1"#
          CURRDELNPTR = RWGET1(DELNLINK  #CURRDELNPTR#);
          CURRDEPLPTR = RWGET1(DEPL$BASE  #CURRDERGPTR#); 
GENPRINTLINE: 
          GPLFLAG = 1;
          INITBAS4LINE = CURRDEPLPTR; 
          GIITEMSFLAG = 0;
          #TEST TO SEE IF THIS IS A CASE WHERE NO ITEMS IN A# 
          #PRINT LINE WERE PRINTABLE# 
  
          IF  RWGET1(PL$DNATDE  #CURRDEPLPTR#) EQ 0 
          THEN
              GOTO GPL3;
DETESTGROUPI: 
          IF  RWGET1(GROUPINDITEM  #CURRDEPLPTR#) EQ 1
              #YES# 
          THEN
              BEGIN 
              #SETFLAG TO INDICATE THAT THERE ARE GROUP-INDICATED#
              #ITEMS IN THIS PRINT LINE#
  
              GIITEMSFLAG = 1;
              GOTO  GPL1; 
              END 
  
          #GENMOVE1#
  
          #GENERATE A MOVE# 
          #MOVE (SOURCE-ITEM) TO (COL.=/PRINT LINE POSITION)# 
  
          G$MOVE; 
GPL1: 
          #PRINT LINE DELIMITER ASS. WITH THIS ENTRY&#
  
          IF  RWGET1(PL$DE$DELIM  #CURRDEPLPTR#) EQ 1 
          THEN
              GOTO GPL2;
          #ALL  NON-GROUP-INDICATED ITEMS ARE#
          #NOW IN PRINT LINE# 
          IF  RWGET1(PL$DE$DELIM  #CURRDEPLPTR#) EQ 2 
          THEN
              GOTO  GPL2; 
  
          #ELSE BUMP AND LOOP FOR NEXT PRINT LINE ITEM# 
          CURRDEPLPTR =  RWGET1(DEPLLINK  #CURRDEPLPTR#); 
          GOTO DETESTGROUPI;
GPL2: 
  
          #ANY GROUP-INDICATED ITEMS IN THIS LINE&# 
  
          IF GIITEMSFLAG EQ 0 
          THEN
              GOTO GPL3;
  
          #ELSE IF ARE GROUP-INDICATED ITEMS# 
          #GENERATE THE FOLLOWING#
          #IF GROUP-INDICATE-FLAG-1  NOT =  0#
  
          GENIF;
          CURRGRINDPTR = RWGET1(BASE$GRPIND  #CURRIRTPTR#); 
GPL2A:  
          IF  RWGET1(DEGROUPDNAT  #CURRGRINDPTR#) EQ
              RWGET1(RG$NAMEDE  #CURRDERGPTR#)
          THEN
              BEGIN 
              DNATPTR = RWGET1(GIFLAG$DNAT  #CURRGRINDPTR#);
              GOTO GPL2B; 
              END 
          CURRGRINDPTR = RWGET1(GRINDLINK  #CURRGRINDPTR#); 
          GOTO GPL2A; 
GPL2B:  
          GENDNREF #DNATPTR# ;
          GENNOT; 
          GENEQUAL; 
          PLTPNTR =  RWGET1(IRTINTZERO  #CURRIRTPTR#);
          GENLIT0 #PLTPNTR# ; 
  
          #REINITIALIZE  CURRDEPLPTR TO ITS VALUE#
          #ON ENTRANCE# 
  
          CURRDEPLPTR = INITBAS4LINE; 
GPL2C:  
          IF  RWGET1(GROUPINDITEM  #CURRDEPLPTR#) EQ 1
              #YES# 
          THEN
              G$MOVE; 
          IF  RWGET1(PL$DE$DELIM  #CURRDEPLPTR#) EQ 1 
              OR
              RWGET1(PL$DE$DELIM  #CURRDEPLPTR#) EQ 2 
          THEN
              GOTO GPLPERIOD; 
          CURRDEPLPTR = RWGET1(DEPLLINK  #CURRDEPLPTR#);
          GOTO GPL2C; 
GPLPERIOD:  
          #TO END THE IF STATEMENT# 
          GENPERIOD;
GPL3: 
          IF  RWGET1(PL$DE$DELIM  #CURRDEPLPTR#) EQ 2 
          THEN
              GPLFLAG = 0;
          CURRDEPLPTR   =  RWGET1(DEPLLINK  #CURRDEPLPTR#); 
  
          #END OF GENPRINTLINE# 
  
  
          #GENWRITE#
  
          #GENERATE#
          #WRITE  RECORD-NAME-1#
  
          GENWRITE; 
          DNATPTR =  RWGET1(RECORD$NAME1  #CURRIRTPTR#);
          GENDNREF #DNATPTR# ;
          IF GPLFLAG NQ  0
          THEN
              BEGIN 
  
              #GENCSPACING1#
  
  
              #GENERATE#
              #MOVE 2ND-ABS-LN  TO  S-L-N#
              #OR#
              #ADD LINE-COUNTER, 2ND-REL-LN GIVING  S-L-N#
              #AND THEN#
              #PERFORM SPACING# 
  
  
              #NOTE#
              #CURRDELNPTR WAS SET UP PROPERLY AT  GD1# 
  
              IF  RWGET1(KIND$LNINTDE  #CURRDELNPTR#) EQ 1
              THEN
                  BEGIN 
                  GENMOVE;
                  PLTPNTR = RWGET1(LNINT$PLTDE  #CURRDELNPTR#); 
                  GENILIT #PLTPNTR# ; 
                  GENTO;
                  DNATPTR =  RWGET1(SLN  #CURRIRTPTR#); 
                  GENDNREF #DNATPTR# ;
                  GOTO GEN$PS1; 
                  END 
              IF  RWGET1(KIND$LNINTDE  #CURRDELNPTR#) EQ 2
              THEN
                  BEGIN 
                  GENADD; 
                  DNATPTR =  RWGET1(IRTLCINDEX  #CURRIRTPTR#);
                  GENDNREF #DNATPTR# ;
                  PLTPNTR = RWGET1(LNINT$PLTDE  #CURRDELNPTR#); 
                  GENILIT #PLTPNTR# ; 
                  GENGIVING;
                  DNATPTR =  RWGET1(SLN  #CURRIRTPTR#); 
                  GENDNREF #DNATPTR# ;
                  END 
GEN$PS1:  
              GENPERFORM; 
              PNATPTR =  RWGET1(SPACING  #CURRIRTPTR#); 
              GENPNREF #PNATPTR# ;
  
              #UPDATE CURRDELNPTR#
  
              CURRDELNPTR =  RWGET1(DELNLINK  #CURRDELNPTR#); 
              GOTO GENPRINTLINE;
              END 
  
          #ELSE -#
          #ARE NO MORE PRINT LINES IN THIS REPORT GROUP, SO#
  
  
          #DID THIS REPORT GROUP HAVE A NEXT GROUP PHRASE& IF NOT, GO#
          #TO GD2.# 
  
          IF  RWGET1(NG$INFODE  #CURRDERGPTR#) EQ 0 
          THEN
              GOTO GD2; 
  
          #DID CONDITION 6F OCCUR& (REF. TABLE 3 PRESENTATION RULES)# 
  
          IF  RWGET1(COND6FDE  #CURRDERGPTR#) EQ  1 
          THEN
              BEGIN 
  
              #GEN-CALL-SPACING-2#
  
              #GENERATE CODE FOR CALLING SPACING# 
              #ADD 1, REL-NG-INT, LINE-COUNTER  GIVING S-L-N# 
              #PERFORM SPACING# 
              #SUBTRACT 1 FROM LINE-COUNTER#
  
              GENADD; 
              PLTPNTR =  RWGET1(IRTINTONE  #CURRIRTPTR#); 
              GENLIT1 #PLTPNTR# ; 
              PLTPNTR =  RWGET1(NG$INFODE  #CURRDERGPTR#);
              GENILIT #PLTPNTR# ; 
              DNATPTR = RWGET1(IRTLCINDEX  #CURRIRTPTR#); 
              GENDNREF #DNATPTR# ;
              GENGIVING;
              DNATPTR =  RWGET1(SLN  #CURRIRTPTR#); 
              GENDNREF #DNATPTR# ;
              GENPERFORM; 
              PNATPTR =  RWGET1(SPACING  #CURRIRTPTR#); 
              GENPNREF #PNATPTR# ;
              GENSUBTRACT;
              PLTPNTR =  RWGET1(IRTINTONE  #CURRIRTPTR#); 
              GENLIT1 #PLTPNTR# ; 
              GENFROM;
              DNATPTR =  RWGET1(IRTLCINDEX  #CURRIRTPTR#);
              DNATPTR =  RWGET1(IRTLCINDEX  #CURRIRTPTR#);
              GENDNREF #DNATPTR# ;
              END 
          IF  RWGET1(COND6FDE  #CURRDERGPTR#) EQ 0
          THEN
              BEGIN 
  
              #GENCALLBNG#
  
              #GENERATE CODE FOR CALLING BODY-NEXT-GROUP# 
              #MOVE NG-DETAIL-TABLE TO NG-TABLE#
              #PERFORM BODY-NEXT-GROUP THRU B-N-G-EXIT# 
  
              GENMOVE;
              DNATPTR =  RWGET1(NG$INFODE  #CURRDERGPTR#);
              GENDNREF #DNATPTR# ;
              GENTO;
              DNATPTR =  RWGET1(NG$TABLE  #CURRIRTPTR#);
              GENDNREF #DNATPTR# ;
              GENPERFORM; 
              PNATPTR =  RWGET1(BODYNEXTGRUP  #CURRIRTPTR#);
              GENPNREF #PNATPTR# ;
              GENTHRU;
              PNATPTR =  RWGET1(BNG$EXIT  #CURRIRTPTR#);
              GENPNREF #PNATPTR# ;
              END 
GD2:  
  
          #GENZEROGI# 
  
          #GEN CODE FOR REINITIALIZING  GROUP-INDICATED-FLAG# 
          #IF ONE EXISTS FOR THIS REPORT GROUP# 
          #MOVE 0 TO GROUP-INDICATED-FLAG-1#
  
          CURRGRINDPTR = RWGET1(BASE$GRPIND  #CURRIRTPTR#); 
GDLOOKFORMAT: 
          IF  RWGET1(DEGROUPDNAT  #CURRGRINDPTR#) EQ
              RWGET1(RG$NAMEDE  #CURRDERGPTR#)
          THEN
              GOTO GDCHKGI; 
          IF  RWGET1(GITEOT$DELIM  #CURRGRINDPTR#) EQ 1 
          THEN
              GOTO GSS; 
          CURRGRINDPTR = RWGET1(GRINDLINK  #CURRGRINDPTR#); 
          GOTO GDLOOKFORMAT;
GDCHKGI:  
          IF  RWGET1(GIFLAG$DNAT  #CURRGRINDPTR#) EQ 0
          THEN
              GOTO GSS; 
          GENMOVE;
          PLTPNTR =  RWGET1(IRTINTZERO  #CURRIRTPTR#);
          GENLIT0 #PLTPNTR# ; 
          GENTO;
          DNATPTR =  RWGET1(GIFLAG$DNAT  #CURRGRINDPTR#); 
          GENDNREF #DNATPTR# ;
GSS:  
  
          #GENSETSWITCH#
  
          #GENERATE CODE FOR SETTING P-ON-THIS-PAGE-SWITCH# 
          #MOVE 1 TO PRESENTED-ON-THIS-PAGE-SWITCH# 
  
          GENMOVE;
          PLTPNTR =  RWGET1(IRTINTONE  #CURRIRTPTR#); 
          GENLIT1 #PLTPNTR# ; 
          GENTO;
          DNATPTR =  RWGET1(POTP$SWITCH  #CURRIRTPTR#); 
          GENDNREF #DNATPTR# ;
GENEXITPARAG: 
          #GEN THE FOLLOWING CODE#
          #(INCLUDING THE "PRECEDING" PERIOD)#
          #.# 
          #DETAIL-EXIT-PARAGRAPH.#
          #MOVE 0 TO SUMMARY-REPORTING-SWITCH-1.# 
          #DETAIL-EXIT.#
          #EXIT.# 
  
          GENPERIOD;
          PNATPTR = RWGET1(RGPARANAME2  #CURRRPTGRPTR#);
          GENPNDEF #PNATPTR# ;
          GENPERIOD;
          GENMOVE;
          PLTPNTR =  RWGET1(IRTINTZERO  #CURRIRTPTR#);
          GENLIT0 #PLTPNTR# ; 
          GENTO;
          DNATPTR =  RWGET1(SUMREPSWITCH  #CURRIRTPTR#);
          GENDNREF #DNATPTR# ;
          GENPERIOD;
          PNATPTR = RWGET1(RGPARANAME3  #CURRRPTGRPTR#);
          GENPNDEF #PNATPTR# ;
          GENPERIOD;
          GENEXIT;
          GENPERIOD;
  
  # * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *#
  # * #   EXTRACE("G$DTAIL")                                       # * #
  # * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *#
  
          END #G$DTAIL# 
          TERM
