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 / DCTFLW.FOR < prev    next >
Text File  |  1992-04-13  |  14KB  |  402 lines

  1.       SUBROUTINE DCTFLW(IDBG)
  2. C
  3. C  SET DUCT FLOWS FOR A MULTIZONE DUCT SYSTEM
  4. C  AND SET INTERZONE FLOWS
  5. C   IBRN(I)  =1 FOR "ON" AND =0 FOR "OFF" THERMOSTAT IN ZONE I
  6. CMDK MAXSECT
  7. CMDK NZN
  8. CMDK NWL
  9. CMDK NZW
  10. CMDK BLKICL
  11. CMDK BLSTBK
  12. CMDK DUCTS1
  13. CMDK DUCTS2
  14. CMDK DUCTS3
  15. CMDK ENCBK1
  16. CMDK HUMIDC
  17. CMDK INDIC1
  18. CMDK TIMEB
  19. CMDK TSTATC
  20. CMDK TSTB2
  21. CMDK TSTB4
  22.       LOGICAL FIRST
  23.       INTEGER IA(NZN),IAT(16,NZN),ICTRLZS(NZN),ICTR(NZN)
  24.       REAL ECFMD(16), PCTFLT(MAXSECT,16),CFHIZI(10,16)
  25.       REAL STBAKTS(NZN)
  26.       CHARACTER*2 IZFL1,IZFL2,IZFL3(3),IZFL4(6),IZFL5(10)
  27.       DATA STBAKTS/NZN*9999./
  28.       DATA ICTRLZS/NZN*9999/
  29.       DATA FIRST/.TRUE./
  30.       DATA IZFL1/' 1'/
  31.       DATA IZFL2/'12'/
  32.       DATA IZFL3/'12','13','23'/
  33.       DATA IZFL4/
  34.      +'12','13','14','23','24','34'/
  35.       DATA IZFL5/
  36.      +'12','13','14','15','23','24','25','34','35','45'/
  37.       IDBGSV=IDBG
  38. C     IF(TIME.GT.17.80)IDBG=1
  39.       IF(.NOT.FIRST)GO TO 14
  40. C - - - - - - - - - - - - - - - -
  41. C  THIS SECTION IS CALLED FROM BCLSD/DUCTIN/STRDAY.  NOTE::CARRIER
  42. C  SUPPLY DUCTS SHOULD NO LONGER BE USED WITH A MULTIZONE SIMULATION
  43. C   NZNFLW   NO. OF ZONES TO BE SUPPLIED WITH FLOW--WILL USUALLY BE =
  44. C            TO NROOMS
  45.           READ(2,*)NZNFLW
  46. C
  47. C  NSECT  (FROM BCLSD IN /DUCTS3/)  NO. OF SUPPLY DUCT SECTIONS
  48. C  ISECT(I) (FROM BCLSD IN /DUCTS3/  DUCT SECTION NO.
  49. C
  50. C  FIND THE NO. OF ZONE FLOW COMBINATIONS.  FOR EX: WITH NZNFLW=3,
  51. C  THE COMBINATIONS ARE  1,2,3,1&2,1&3,2&3,123=7
  52.           IF(NZNFLW.EQ.1)THEN
  53.               NSUM=1
  54.           ELSE
  55.               NSUM=0
  56.               DO 2 I=1,NZNFLW
  57.     2         NSUM=NSUM+I
  58.               NSUM=NSUM+1
  59.               ENDIF
  60.           WRITE(60,512)NZNFLW,NSUM
  61.           IF(NZNFLW.GT.5)STOP 'DCTFLW: NZNFLW CANT BE GT THAN NZN'
  62.           IF(NSUM.GT.16)STOP' DCTFLW:INCR J DIM:CFHIZI,ECFMD,PCTFLT'
  63. C  INITIALIZE IASET VALUES
  64.           CALL IASET(NZNFLW,IV,NSUM,IA,IAT,IDBG)
  65.           WRITE(60,518)
  66.           IF(NZNFLW.EQ.1)WRITE(60,513)1
  67.           IF(NZNFLW.EQ.2)WRITE(60,514)((IAT(I,J),J=1,NZNFLW),I=1,NSUM)
  68.           IF(NZNFLW.EQ.3)WRITE(60,515)((IAT(I,J),J=1,NZNFLW),I=1,NSUM)
  69.           IF(NZNFLW.EQ.4)WRITE(60,516)((IAT(I,J),J=1,NZNFLW),I=1,NSUM)
  70.           IF(NZNFLW.EQ.5)WRITE(60,517)((IAT(I,J),J=1,NZNFLW),I=1,NSUM)
  71. C
  72. C  NOW READ NSECT ROWS BY NSUM COLUMNS OF PERCENT FLOW RATIOS
  73.           DO 4 I=1, NSECT
  74.           READ(2,*)ISCT,(PCTFLT(I,J),J=1,NSUM)
  75.           IF(ISCT.NE.ISECT(I))WRITE(60,511)
  76.           WRITE(60,520)ISECT(I),(PCTFLT(I,J),J=1,NSUM)
  77.           DO 4 J=1,NSUM
  78.           PCTFLT(I,J)=PCTFLT(I,J)*0.01
  79.     4     CONTINUE
  80. C
  81. C    READ MULTIPLIER ON TOTAL FLOWS (SO ORIGINAL VALUES OF ECFMD CAN
  82. C    BE SCALED UP OR DOWN WITH OUT CHANGING VALUES FOR ECFMD)
  83.           READ(2,*)FLWMULT
  84. C  NOW READ NSUM TOTAL FLOWS (CFM)--FLOW CHANGES WHEN VARIOUS ZONES
  85. C   CALL FOR HEAT BECAUSE OF VARYING RESTRICTION IN DUCTING
  86.           READ(2,*)(ECFMD(I),I=1,NSUM)
  87.           WRITE(60,501)(ECFMD(I)*FLWMULT,I=1,NSUM)
  88. C  NOW READ INTERZONE FLOWS--FOR EACH ZONE COMB.(FOR EX.,
  89. C  WITH 4 ZONES, THE COMBINATIONS ARE:1-2,1-3,1-4,2-3,2-4,3-4)
  90. C    FIND NO. OF INTERZONE FLOWS
  91.       IF(NROOMS.LE.2)THEN
  92.           NCFHIZ=1
  93.       ELSE
  94.           NCFHIZ=0
  95.           NRM1=NROOMS-1
  96.           DO 6 I=1,NRM1
  97.     6     NCFHIZ=NCFHIZ+I
  98.           ENDIF
  99.       WRITE(60,508)NCFHIZ
  100.       IF(NZNFLW.EQ.1)WRITE(60,513)1
  101.       IF(NZNFLW.EQ.2)WRITE(60,514)((IAT(I,J),J=1,NZNFLW),I=1,NSUM)
  102.       IF(NZNFLW.EQ.3)WRITE(60,515)((IAT(I,J),J=1,NZNFLW),I=1,NSUM)
  103.       IF(NZNFLW.EQ.4)WRITE(60,516)((IAT(I,J),J=1,NZNFLW),I=1,NSUM)
  104.       IF(NZNFLW.EQ.5)WRITE(60,517)((IAT(I,J),J=1,NZNFLW),I=1,NSUM)
  105.       READ(2,*)((CFHIZI(I,J),J=1,NSUM),I=1,NCFHIZ)
  106.       CLOSE(2)
  107.       DO 8 I=1,NCFHIZ
  108.       IF(NCFHIZ.EQ.1)WRITE(60,509)IZFL1,(CFHIZI(I,J),J=1,NSUM)
  109.       IF(NCFHIZ.EQ.2)WRITE(60,509)IZFL2,(CFHIZI(I,J),J=1,NSUM)
  110.       IF(NCFHIZ.EQ.3)WRITE(60,509)IZFL3(I),(CFHIZI(I,J),J=1,NSUM)
  111.       IF(NCFHIZ.EQ.4)WRITE(60,509)IZFL4(I),(CFHIZI(I,J),J=1,NSUM)
  112.       IF(NCFHIZ.EQ.5)WRITE(60,509)IZFL5(I),(CFHIZI(I,J),J=1,NSUM)
  113.     8 CONTINUE
  114.  
  115. C - - - - - - - - - - - -
  116. C  THIS SECTION IS CALLED FROM THERMOSTAT DRIVER PROG, TSTATD,
  117. C        WHEN IBRN VALUES HAVE CHANGED
  118. C - - - - - - - -
  119.    14 CONTINUE
  120.           IZERO=0
  121.           IF(NZNFLW.EQ.1)THEN
  122.               ICOL=1
  123.               GO TO 30
  124.               ENDIF
  125.           IF(IDBG.NE.0)WRITE(60,500)
  126. C  FIND COLUMN NO. OF ZONE FLOW COMBINATION (ICOL)
  127.           DO 20 IV=1,NSUM
  128. C
  129. C  GENERATE A ROW OF IA VALUES
  130.           CALL IASET(NZNFLW,IV,NSUM,IA,IAT,IDBG)
  131. C  COMPARE ELEMENTS OF ZONE DAMPER STATES AND IA.  IF ALL AGREE,
  132. C   ICOL IS FOUND !!!!!!
  133.           IF(IMODE.EQ.2)THEN
  134. C   HEATING
  135.              CALL IFGSET(NZNFLW,IA,IBRN,IFLAG)
  136.           ELSE
  137. C   COOLING
  138.              CALL IFGSET(NZNFLW,IA,IACZ,IFLAG)
  139.              ENDIF
  140.           IF(IDBG.NE.0)THEN
  141.               WRITE(60,502)(IV,I,IBRN(I),IA(I),I=1,NZNFLW)
  142.               WRITE(60,506)IV,IFLAG,IMODE
  143.               ENDIF
  144.           IF(IFLAG.EQ.1)THEN
  145.               ICOL=IV
  146.               GO TO 30
  147.               ENDIF
  148.    20     CONTINUE
  149.  
  150. C  DUCT DAMPER PATTERN IS 000 HERE!
  151.           IBN=0
  152.           DO 22 I=1,NZNFLW
  153.    22     IBN=IBN+IBRN(I)
  154.           IF(IBN.NE.0)STOP 'DCTFLW:AFTER 22, ICOL NOT FOUND!!'
  155. C   SET ICOL TO OPEN ALL DAMPERS IN CONTROLLED ZONES WHEN IA VALUES
  156. C   ARE ALL = 0
  157.           IZERO=1
  158. C  NEXT CODE NEEDED TO ACCOMMODATE SETBACK OR CHANGE IN ICTRLZ
  159. C     ICTRLZ WAS CHANGED IN TSTATD TO ACCOMMODATE THE WAY
  160. C     DATA ON 121486 IN HOUSE A WAS RUN
  161.           DATA IZPU/0/
  162.           DO 23 I = 1, NROOMS
  163.           NRM=NRMA(I)
  164.           IF(STBAKT(NRM).NE.STBAKTS(NRM))IZPU=0
  165.    23     IF(ICTRLZ(NRM).NE.ICTRLZS(NRM))IZPU=0
  166.  
  167.           IF(IZPU.EQ.0)THEN
  168.           DO 231 I = 1, NROOMS
  169.           NRM=NRMA(I)
  170.           ICTR(NRM)=ICTRLZ(NRM)
  171.           IF(STBAKT(NRM).NE.STBAKTS(NRM).AND.STBAKT(NRM).NE.0.)THEN
  172. C  CLOSE DAMPER INTO ZONE THAT IS SETBACK, EVEN THOUGH ICTRLZ = 1 IN
  173. C  THAT ZONE
  174.             ICTR(NRM)=0
  175.             ENDIF
  176.   231     CONTINUE
  177. C  FIND IA PATTERN THAT IS THE SAME AS ICTR
  178.              IZPU=1
  179.              DO 24 IV=1,NSUM
  180.              CALL IASET(NZNFLW,IV,NSUM,IA,IAT,IDBG)
  181.              CALL IFGSET(NZNFLW,IA,ICTR,IFLAG)
  182.              IF(IFLAG.EQ.1)THEN
  183.                 ICOLU=IV
  184.                 GO TO 26
  185.                 ENDIF
  186.    24        CONTINUE
  187.              STOP 'DCTFLW:ICTRLZ NE IA AT LABEL 24'
  188.              ENDIF
  189.    26     ICOL=ICOLU
  190.    30     CONTINUE
  191.           IF(IDBG.NE.0)WRITE(60,503)ICOL
  192. C   NOW SET TOTAL FLOW
  193.           IF(IZERO.EQ.0)THEN
  194.              ECFMC1=ECFMD(ICOL)*FLWMULT
  195. C         ELSE
  196. C               SET FLOW TO MINIMUM IF ALL DAMPERS WERE SHUT
  197. C   NOTE: IN RETDUCT, MIN FLOW IS USED WHEN IEFAN (OR I10=1) IS 0
  198. C         REGARDLESS OF FLOW SET BELOW, SO BELOW STMT IS PROBABLY
  199. C         REDUNDANT AND NOT USED.
  200. C   IF MIN FLOW IS SET BELOW, PROGRAM WILL BOMB ON UNDERFLOW!!!!
  201. C            ECFMC1=ECFMC2
  202.              ENDIF
  203.           ECFMH1=ECFMC1
  204.           IF(IDBG.NE.0)WRITE(60,505)ECFMC1
  205. C   AND FLOW FRACTIONS IN ALL DUCT SECTIONS--
  206.           IF(IDBG.NE.0)WRITE(60,521)
  207.           DO 40 I=1,NSECT
  208.           PCTF(I)=PCTFLT(I,ICOL)
  209.           IF(IDBG.NE.0)WRITE(60,504)ISECT(I),PCTF(I)
  210.    40     CONTINUE
  211. C  CALC NEW RWSDCT VALUES
  212.           DO 50 I=1,NROOMS
  213.    50     RWSDCT(I)=0.
  214.           DO 60 I=1,NSECT
  215.           IZ=IZNSUP(I)
  216.    60     IF(IZ.GT.0.AND.PCTF(I).GT.0.)RWSDCT(IZ)=RWSDCT(IZ)+PCTF(I)
  217.           IF(IDBG.NE.0)THEN
  218.              WRITE(60,522)
  219.              DO 80 I=1,NROOMS
  220.              NRM=NRMA(I)
  221.              WRITE(60,507)NRM,RWSDCT(NRM)
  222.    80        CONTINUE
  223.              ENDIF
  224.       DO 82 I=1,10
  225.    82 CFHIZ(I)=0.
  226. C  SET INTERZONE FLOWS
  227. C    IF BLOWER IS OFF, LEAVE INTERZONE FLOWS AT ZERO
  228.       IF(IEFAN.NE.0)THEN
  229.          DO 90 I=1,NCFHIZ
  230.    90    CFHIZ(I)=CFHIZI(I,ICOL)
  231.          DATA IDCTI/30/
  232.          IDCTI=IDCTI+1
  233.          IF(IDCTI.LE.20.OR.IDBG.NE.0)THEN
  234.            WRITE(60,510)TIME,ICOL,(I,PCTF(I),I=1,NSECT)
  235.            WRITE(60,523)(I,CFHIZ(I),I=1,NCFHIZ)
  236.            ENDIF
  237.          ENDIF
  238.       IF(.NOT.FIRST)CALL DUCTN(IDBG)
  239.       DO 92 I = 1, NROOMS
  240.       NRM=NRMA(I)
  241.       ICTRLZS(NRM)=ICTRLZ(NRM)
  242.    92 STBAKTS(NRM)=STBAKT(NRM)
  243.       FIRST=.FALSE.
  244.       IDBG=IDBGSV
  245.       RETURN
  246.   500 FORMAT(1X,'DCTFLW:FIND INDICE OF ZONE FLOW COMBINATION -- '/
  247.      +'   FOUND WHEN EACH IB=IA')
  248.   501 FORMAT((1X,'BLWR FLOW,CFM= ',10F10.1))
  249.   502 FORMAT((1X,'IV,I,IB,IA= ',2I4,5X,2I4))
  250.   503 FORMAT(1X,'*--*--ICOL= ',I4)
  251.   504 FORMAT(1X,I3,G13.5)
  252.   505 FORMAT(1X,'NEW BLWR FLOW(ECFMH1),CFM= ',G13.5)
  253.   506 FORMAT(1X,'IV,IFLAG,IMODE= ',3I4)
  254.   507 FORMAT(1X,'ZONE NO.= ',I4,'  RWSDCT= ',F10.5)
  255.   508 FORMAT(1X,'INTERZONE AIR FLOWS,CFH--FOR EA SET',
  256.      +' OF'/'  OPERATING ZONES FOR EA INTERZONE FLOW'/
  257.      +'  FOR EX: WITH 3 ZONES, THE OPERATING ZONES MAY BE'/
  258.      +'             1,2,3,1&2,1&3,2&3,1&2&3 '/
  259.      +'          AND INTERZONE FLOW S ARE:'/
  260.      +'             1-2,1-3,2-3'/
  261.      +5X,'NCFHIZ= ',I4/1H0,10X,'TABLE OF INTERZONE FLOWS(CFH)')
  262.   509 FORMAT(1X,A2,16F8.1)
  263.   510 FORMAT(1X,'DCTFLW:TIME= ',G13.5,' ICOL= ',I5/
  264.      +(20X,'DUCT SECT#= ',I3,' PCTF= ',G13.5/))
  265.   511 FORMAT(1X,'DCTFLW:OOPS!!! ISCT ON READ OF PCTFLT NE ISECT')
  266.   512 FORMAT(1X,'DCTFLW:NZNFLW,NSUM= ',2I5)
  267.   513 FORMAT(3X,3X,I2)
  268.   514 FORMAT(3X,3(3X,I1,I1,3X))
  269.   515 FORMAT(3X,7(3X,I1,I1,I1,2X))
  270.   516 FORMAT(3X,11(2X,I1,I1,I1,I1,2X))
  271.   517 FORMAT(3X,16(2X,I1,I1,I1,I1,I1,1X))
  272.   518 FORMAT(1X,'DCT',15X,'FLOW FRACTIONS FOR EACH SET OF DAMPER',
  273.      +' SETTINGS'/1X,'SECT')
  274.   520 FORMAT(1X,I2,16F8.3)
  275.   521 FORMAT(1X,'DCT',2X,'FLOW FRACTION'/1X,'SECT')
  276.   522 FORMAT(1X,'RWSDCT(BELOW) IS DECIMAL FRACTION OF FLOW ',
  277.      +'DELIVERED TO ZONE')
  278.   523 FORMAT(1X,'DCTFLW:CFHIZ= ',/(15X,'ZONE= ',I3,'CFHIZ= ',G13.5/))
  279.       END
  280.       SUBROUTINE IFGSET(NZNFLW,IA,IB,IFLAG)
  281. C
  282. C  SET IFLAG=1 IF ALL ELEMENTS OF IB=THAT OF IA
  283. CMDK NZN
  284.       INTEGER IA(NZN),IB(NZN)
  285.       IFLAG=1
  286.       IQ=0
  287.       DO 10 I=1,NZNFLW
  288.       IF(IB(I).NE.IA(I))IQ=IQ+1
  289.    10 CONTINUE
  290.       IF(IQ.NE.0)IFLAG=0
  291.       RETURN
  292.       END
  293.       SUBROUTINE IASET(NZNFLW,IV,NSUM,IA,IAT,IDBG)
  294. C
  295. C  SET VALUES IN IA ARRAY REPRESENTING ON-OFF VECTOR OF ZONE DAMPERS
  296. C    CONTROLLED BY A THERMOSTAT IN EACH ZONE
  297. C  IV  IS INTERZONE FLOW INDICE
  298. CMDK NZN
  299.       DIMENSION IA(NZN),IAT(16,NZN)
  300.       LOGICAL FIRST
  301.       DATA FIRST/.TRUE./
  302.       IF(NZNFLW.GT.5)STOP 'IASET:I DIM. OF IAT(I,J) MUST BE INCR'
  303.       IF(NSUM.GT.16)STOP 'IASET:J DIM. OF IAT(I,J) MUST BE INCR'
  304.       IF(.NOT.FIRST)GO TO 68
  305. C  SET UP IAT ARRAY FOR POSSIBLE DAMPER SETTINGS IN ALL ZONES
  306. C     SET PATTERN:  1 0 0 (MEANS ZONE 1 ONLY)
  307. C                   0 1 0 (MEANS ZONE 2 ONLY)  FOR EX. FOR 3 ZONES
  308. C                   0 0 1 (MEANS ZONE 3 ONLY)
  309. C                   1 1 0 (MEANS ZONE 1 AND 2 ONLY,ETC)
  310. C                   1 0 1
  311. C                   0 1 1
  312. C                   1 1 1
  313.           DO 10 IQ=1,NZNFLW
  314.           DO 10 I=1,NZNFLW
  315.           IF(I.EQ.IQ)THEN
  316.               IAT(IQ,I)=1
  317.           IF(IDBG.NE.0)CALL IAOUT(1,IQ,I,IAT(IQ,I))
  318.           ELSE
  319.               IAT(IQ,I)=0
  320.           IF(IDBG.NE.0)CALL IAOUT(2,IQ,I,IAT(IQ,I))
  321.               ENDIF
  322.    10     CONTINUE
  323. C  NOW FILL IN THE REST OF THE PATTERN
  324.           IROW=NZNFLW
  325.           NZ1=NZNFLW
  326. C
  327.           DO 60 IQR=1,NZNFLW
  328.           NZ1=NZ1-1
  329.           IF(NZ1.EQ.0)THEN
  330.               DO 20 I=1,NZNFLW
  331.               IAT(NSUM,I)=1
  332.               IF(IDBG.NE.0)CALL IAOUT(3,NSUM,I,IAT(NSUM,I))
  333.    20         CONTINUE
  334.               GO TO 65
  335.               ENDIF
  336. C  FIND NO. OF LEADING ZEROS
  337.           NZER=NZNFLW-1-NZ1
  338.           IF(NZER.EQ.0)THEN
  339. C  SET LEADING 1 S
  340.               DO 30 IR=1,NZ1
  341.               IRR=IROW+IR
  342.               IAT(IRR,1)=1
  343.               IF(IDBG.NE.0)CALL IAOUT(4,IRR,1,IAT(IRR,1))
  344.    30         CONTINUE
  345.           ELSE
  346. C  SET LEADING ZEROS
  347.               DO 40 IR=1,NZ1
  348.               DO 40 IS=1,NZER
  349.               IRR=IROW+IR
  350.               IAT(IRR,IS)=0
  351.               IF(IDBG.NE.0)CALL IAOUT(5,IRR,IS,IAT(IRR,IS))
  352.    40         CONTINUE
  353. C  SET A COLUMN OF 1 S  FOLLOWING THE LEADING ZEROS
  354.               DO 42 IR=1,NZ1
  355.               IRR=IROW+IR
  356.               NZER1=NZER+1
  357.               IAT(IRR,NZER1)=1
  358.               IF(IDBG.NE.0)CALL IAOUT(6,IRR,NZER1,IAT(IRR,NZER1))
  359.    42         CONTINUE
  360.               ENDIF
  361. C  NOW GO BACK AND FILL IN VALUES FOR THIS NZ1 SET
  362.           NZR1=NZER+1
  363.           IF(NZ1.EQ.1)THEN
  364.               IR1=IROW+1
  365.               IAT(IR1,NZNFLW)=1
  366.               IF(IDBG.NE.0)CALL IAOUT(7,IR1,NZNFLW,IAT(IR1,NZNFLW))
  367.               GO TO 60
  368.               ENDIF
  369.           DO 50 IQ=1,NZ1
  370.           IROW=IROW+1
  371.           ND=NZR1
  372.           DO 50 I=1,NZ1
  373.           ND=ND+1
  374.           IF(I.EQ.IQ)THEN
  375.               IAT(IROW,ND)=1
  376.               IF(IDBG.NE.0)CALL IAOUT(8,IROW,ND,IAT(IROW,ND))
  377.           ELSE
  378.               IAT(IROW,ND)=0
  379.               IF(IDBG.NE.0)CALL IAOUT(9,IROW,ND,IAT(IROW,ND))
  380.               ENDIF
  381.    50     CONTINUE
  382.    60     CONTINUE
  383.    65     IF(IDBG.NE.0)WRITE(60,500)((IAT(I,J),J=1,NZNFLW),I=1,NSUM)
  384.           FIRST=.FALSE.
  385.           RETURN
  386. C  * * * * * * * * * SET IA ARRAY BELOW
  387.    68  CONTINUE
  388.           DO 70 I=1,NZNFLW
  389.    70     IA(I)=IAT(IV,I)
  390.           RETURN
  391. C  FORMAT BELOW IS FOR NZNFLW=3
  392.   500 FORMAT(1H0,'IASET:IAT VALUES'/
  393.      +((10X,3I5/)))
  394.       END
  395.       SUBROUTINE IAOUT(ICOD,I,J,IAT)
  396. C
  397. C  PRINT IAT VALUES FOR DEBUG
  398.       WRITE(60,500)ICOD,I,J,IAT
  399.       RETURN
  400.   500 FORMAT(1X,'IASET:ICOD= ',I5,' I,J= ',2I5,'  IAT= ',I5)
  401.       END
  402.