home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / World_Of_Computer_Software-02-387-Vol-3of3.iso / h / house_ii.zip / FOR / RESETE.FOR < prev    next >
Text File  |  1992-04-15  |  4KB  |  112 lines

  1.       SUBROUTINE RESETE(NRM,N2,NK2,NK2I,IDBG) 
  2. C  RESET ENCLOSURE ARRAYS TO REDUCE STORAGE 
  3. C  INPUTS 
  4. C    NRM  ZONE NO.
  5. C    N2   TOTAL NO. OF ENCLOSURE ELE IN ZONE NRM BEFORE CONSOLIDATION 
  6. C    NK2  NO. OF EFFECTIVE ENCLOSURE ELEMENTS IN THIS ZONE
  7. C    NK2I ARRAY OF EFFECTIVE K2 VALUES FOR THIS ZONE
  8. C  OUTPUTS
  9. C    RESET ENCLOSURE ARRAYS 
  10. C    IZT  IZW INDICE NO. AT END OF THIS ZONE
  11. C - - - CONSTANTS 
  12. CMDK NWL
  13. CMDK NZN
  14. CMDK NZW
  15. C - - - COMMON BLOCKS 
  16. CMDK ENCBK1
  17. CMDK IZPART
  18. CMDK IZZQ
  19.       DIMENSION NK2I(NWL) 
  20.       IDBGSV=IDBG 
  21. C     IDBG=1
  22. C   RESET ENCLOSURE ARRAYS
  23.       IF(IDBG.NE.0)THEN 
  24.           WRITE(60,501)NRM 
  25.           WRITE(60,512)NRM,(NK2I(NK),NK=1,NK2) 
  26.           WRITE(60,513)NRM,(NK,NENC(NRM,NK),NK=1,N2) 
  27.           ENDIF 
  28.       DO 2 JT=1,NROOMS
  29.       NRMQ=NRMA(JT) 
  30.       IF(NRMQ.EQ.NRM)GO TO 2
  31.       N2Q=NWALLA(NRMQ)
  32.       IF(N2Q.EQ.0)GO TO 2 
  33.       IF(IDBG.NE.0)WRITE(60,513)NRMQ,(NK,NENC(NRMQ,NK),NK=1,N2Q) 
  34.     2 CONTINUE
  35.       IZ=IZT
  36.       DO 4 K2I=1,NK2
  37.       K2=NK2I(K2I)
  38.     4 IZWACT(K2I)=NENC(NRM,K2)
  39. C  SORT THESE VALUES IN ASCENDING ORDER W/ BUBBLE SORT
  40.       DO 6 I=1,NK2
  41.       DO 6 J=1,NK2-1
  42.       IF(IZWACT(J+1).LT.IZWACT(J))THEN
  43.           IDUM=IZWACT(J+1)
  44.           IZWACT(J+1)=IZWACT(J) 
  45.           IZWACT(J)=IDUM
  46.           ENDIF 
  47.     6     CONTINUE
  48.       IF(IDBG.NE.0)WRITE(60,514)NRM,(I,IZWACT(I),I=1,NK2)
  49.       DO 40 K2I=1,NK2 
  50.       IZW=IZWACT(K2I) 
  51.       IZ=IZ+1 
  52.       CALL RESUTL(NRM,K2I,IZW,IZ,IDBG)
  53. C *    *     *    *   *   *  BOTTOM OF MAIN LOOP!!!!
  54.    40 CONTINUE
  55. C  NOW CHECK TO SEE IF IZW IN OTHER ZONES CAN BE MOVED TO LOWER IZ
  56. C  NEXT STMT:  NO POINT IN MOVING IZW S IN LAST ZONE TO LOWER VALUES 
  57. C              BECAUSE CONSOLID WONT REDUCE STORAGE REQD TO THIS POINT
  58.       IF(NRM.EQ.NROOMS)GO TO 70 
  59.       NRM1=NRM+1
  60.       DO 60 JT=NRM1,NROOMS
  61.       NRMQ=NRMA(JT) 
  62.       IF(NRMQ.EQ.0)GO TO 60 
  63.       N2Q=NWALLA(NRMQ)
  64.       IF(N2Q.EQ.0)GO TO 60
  65.       DO 50 K2Q=1,N2Q 
  66.       IZWQ=NENC(NRMQ,K2Q) 
  67.       IF(IZWQ.EQ.(IZ+1))THEN
  68.           IZ=IZ+1 
  69.           IF(IDBG.NE.0)WRITE(60,506)IZWQ 
  70.           GO TO 50
  71.           ENDIF 
  72.       IF(IZWQ.GT.(IZ+1))THEN
  73.           IZ=IZ+1 
  74.           CALL RESUTL(NRMQ,K2Q,IZWQ,IZ,IDBG)
  75.           ENDIF 
  76.    50 CONTINUE
  77.    60 CONTINUE
  78. C  SET NO. OF ENCLOSURE ELEMENTS AT END OF THIS ZONE
  79.    70 IZT=IZ
  80.       IDBG=IDBGSV 
  81.       RETURN
  82.   500 FORMAT(20X,'FOR ZONE ',I4,' ENCLOSURE NO.(IZW) ',I3,
  83.      +'  CHANGED TO ',I4) 
  84.   501 FORMAT(1H0,9(1H*),'RESET ENCLOSURE ARRAYS TO REDUCE STORAGE', 
  85.      +' FOR ZONE ',I4)
  86.   502 FORMAT(10X,'BEGIN SEARCH FOR FEASIBLE IZ; K2I,IZW,IZ= ',3I5)
  87.   503 FORMAT(12X,'IZW=IZ, SO NO NEED TO RESET;IZW= ',I3)
  88.   504 FORMAT(15X,'NRMQ,K2Q,IZWQ,IZ= ',4I5)
  89.   505 FORMAT(12X,'IZW LT IZ, SO DONT RESET:IZW,IZ= ',2I3) 
  90.   506 FORMAT(15X,'FOUND IZW IN ZONE ',I3,' THAT = IZ, SO ', 
  91.      +'INCREMENT IZ;IZW FOUND= ',I3)
  92.   507 FORMAT(20X,'POINTER FOR OLD IZ(K2J)= ',I5,'  POINTER FOR NEW',
  93.      +' IZ(K2I)= ',I5/20X,'IZW AT OLD IZ(NENC(NRM,K2I))= ',I4)
  94.   508 FORMAT(15X,'LOOKING FOR EXISTING IZW=IZ IN ZONE ',I4) 
  95.   509 FORMAT(15X,'   **DIDNT FIND AN EXISTING IZW=IZ IN ZONE ',I4)
  96.   510 FORMAT(20X,'LOOKING FOR K2 AT ORIG IZW=NEW IZ') 
  97.   511 FORMAT(20X,'  K2J,IZWQ,IZ= ',3I4) 
  98.   512 FORMAT(1X,'K2 POINTERS TO ACTIVE IZWS IN ZONE ',I3,' ARE:'/ 
  99.      +2X,24I3)
  100.   513 FORMAT(1X,'FOR ZONE ',I3,' AVAILABLE IZW S ARE: '/
  101.      +(20X,'K2,IZW= ',2I4)) 
  102.   514 FORMAT(10X,'HERE ARE SORTED ACTIVE IZW S IN ZONE =',I3/ 
  103.      +(20X,'K2,IZW= ',2I4)) 
  104.       END 
  105.