C $LARGE C CONNEC3D.FOR VER.11-NOV-2002 C C PROGRAM FOR CONNECTIVITY ANALYSIS OF A 3D INDICATOR MAP C C GIVEN AN INDICATOR FIELDS (VALUES 0 AND 1 ONLY), THE RANDOM SET C WITH VALUES 1 IS ANALYSED FOR CONNECTIVITY. C C INPUT PARAMETER FILE WITH C C IPHA : 0 OR 1 FOR CONNECTIVITY ANALYSIS OF PHASE 0 OR 1. C ICON : 6, 18 OR 26-CONNECTIVITY. C CINP : INPUT FILE WITH INDICATOR VARIABLE (VALUS 0/1 ONLY) C NX NY NZ : NUMBER OF POINTS IN X AND Y C DX DY DZ : GRID DIMENSIONS IN X AND Y C N2 : NUMBER OF LAGS FOR CONNECTIVITY FUNCTION CALCULATION C COUT : OUTPUT FILE WITH STATISTICS C COU2 : OUTPUT FILE WITH CONNECTED COMPONENTS C COU3 : OUTPUT FILE WITH CONNECTIVITY FUNCITON C C DX,DY,DZ ARE ONLY USED FOR CONVERTING GRID UNITS TO REAL UNITS. C NX : NUMBER OF POINTS ALONG THE X DIRECTION C NY : NUMBER OF POINTS ALONG THE Y DIRECTION C NZ : NUMBER OF POINTS ALONG THE Z DIRECTION C C IND(I,J,L) : 0/1 INDICATOR VALUE C AT THE TERMINATION OF THE PROGRAM THE MATRIX IND(I,J) CONTAINS C THE CONNECTED COMPONENTS WITH VALUES 1,2,3,4,5,... FOR FIRST, C SECOND, THIRD, ... ETC CONNECTED COMMPONENTS. C THE VALUE 0 REMAINS 0. C COUT : OUTPUT FILE WITH STATISTICS AND CONNECTIVITY FUNCTION. C COU2 : OUTPUT FILE WITH THE CONNECTED COMPONENTS. C COU3 : OUTPUT FILE WITH CONNECTIVITY FUNCTION C C FOR THE CONNECTIVITY FUNCTION: C NPX(K): NUMBER OF PAIRS OF VALUES SEPARATED A DISTANCE K ALONG C THE X DIRECTION AND THAT BELONG TO FACIES 1. C NPCX(K): NUMBER OF THE PREVIOUS VALUES THAT ARE CONNECTED. C NPY(K): NUMBER OF PAIRS OF VALUES SEPARATED A DISTANCE K ALONG C THE Y DIRECTION AND THAT BELONG TO FACIES 1. C NPCY(K): NUMBER OF THE PREVIOUS VALUES THAT ARE CONNECTED. C NPZ(K): NUMBER OF PAIRS OF VALUES SEPARATED A DISTANCE K ALONG C THE Z DIRECTION AND THAT BELONG TO FACIES 1. C NPCZ(K): NUMBER OF THE PREVIOUS VALUES THAT ARE CONNECTED. C C C PPHA : PROPORTION OF FACIES 1. C NCC : NUMBER OF CONNECTED COMPONENTS. C RISM : MEAN CONNECTED COMPONENT SIZE IN PIXELS. C RSME : MRAN SIZE IN REAL UNITS. C RTOT : MEAN SIZE RELATIVE TO SIZE OF FACIES 1. C RXME : MEAN LENGTH ALONG THE X DIRECTION. C RYME : MEAN LENGTH ALONG THE Y DIRECTION. C RZME : MEAN LENGTH ALONG THE Z DIRECTION. C ICOM : NUMBER OF THE LARGEST COMPONENT. C ISMA : SIZE IN PIXELS (Of LARGEST COMPONENT). C RSIZ : SIZE RELATIVE TO SIZE OF FACIES 1. C IXMA : MAXIMUM LENGTH ALONG X. C IYMA : MAXIMUM LENGTH ALONG Y. C IZMA : MAXIMUM LENGTH ALONG Z. C ISMI : SIZE OF SMALLEST COMPONENT. C IXMI : MINIMUM LENGTH ALONG X. C IYMI : MINIMUM LENGTH ALONG Y. C IZMI : MINIMUM LENGTH ALONG Z. C IPX : NUMBER OF PERCOLATING COMPONENTS ALONG X. C IPY : NUMBER OF PERCOLATING COMPONENTS ALONG Y. C IPZ : NUMBER OF PERCOLATING COMPONENTS ALONG Z. C CCFU(.,.) : CONNECTIVITY FUNCTION. C C CCFU(.,1): CONNECTIVITY FUNCTION ALONG X (E-W). C CCFU(.,2): CONNECTIVITY FUNCTION ALONG Y (N-S). C CCFU(.,3): CONNECTIVITY FUNCTION ALONG Z (VERTICAL). C CCFU(.,4): CONNECTIVITY FUNCTION ALONG 3D FIRST DIAGONAL. C CCFU(.,5): CONNECTIVITY FUNCTION ALONG 3D SECOND DIAGONAL. C CCFU(.,6): CONNECTIVITY FUNCTION ALONG 3D THIRD DIAGONAL. C CCFU(.,7): CONNECTIVITY FUNCTION ALONG 3D FOURTH DIAGONAL. C CCFU(.,8): MEAN CONNECTIVITY FUNCTION ALONG X AND Y. C CCFU(.,9): MEAN CONNECTIVITY FUNCTION ALONG X,Y,Z. C CCFU(.,10): MEAN CONNECTIVITY FUNCTION ALONG THE 3D DIAGONALS. C CCFU(.,11): CONNECTIVITY FUNCTION ALONG FIRST DIAGONAL X-Y PLANE. C CCFU(.,12): CONNECTIVITY FUNCTION ALONG SECOND DIAGONAL X-Y PLANE. C CCFU(.,13): CONNECTIVITY FUNCTION ALONG FIRST DIAGONAL X-Z PLANE. C CCFU(.,14): CONNECTIVITY FUNCTION ALONG SECOND DIAGONAL X-Z PLANE. C CCFU(.,15): CONNECTIVITY FUNCTION ALONG FIRST DIAGONAL Y-Z PLANE. C CCFU(.,16): CONNECTIVITY FUNCTION ALONG SECOND DIAGONAL Y-Z PLANE. C C C ---------------------------------------------------------------- C ( cambie ind) DIMENSION IND(64,64,64),NPX(256),NPY(256),NPCX(256),NPCY(256) DIMENSION NPZ(256),NPCZ(256),NP1(256),NP2(256),NP3(256) DIMENSION NP4(256),NPC1(256),NPC2(256),NPC3(256),NPC4(256) DIMENSION CCFU(256,16) DIMENSION NXY1(256),NXY2(256),NXZ1(256),NXZ2(256) DIMENSION NYZ1(256),NYZ2(256),NCXY1(256),NCXY2(256) DIMENSION NCXZ1(256),NCXZ2(256),NCYZ1(256),NCYZ2(256) C CHARACTER*12 CPAR,CINP,COUT,COU2,COU3,DATALE C C MATRIX DIMENSION LIMITATION (lo cambie) C---------------------------------------------------------- NXM=101 NYM=101 NZM=101 C ZINVERSAE=0.367879 ZGAMMA=0.0 C PARAMETER (INVERSAE=0.367879)----------------------------------------------- C C WRITE (6,400) aca cambie para que tome archivo entrada directo CPAR="coninput.txt" OPEN (1,FILE=CPAR) READ (1,*) IPHA IF (IPHA.NE.0.AND.IPHA.NE.1) THEN WRITE (6,*)'ERROR IN PARAMETER FILE !!!' WRITE (6,*)'THE FIRST LINE IN THE PARAMETER FILE' WRITE (6,*)'MUST BE A 0 OR A 1' WRITE (6,*)'0 FOR CONNECTIVITY ANALYSIS OF PHASE 0' WRITE (6,*)'1 FOR CONNECTIVITY ANALYSIS OF PHASE 1' WRITE (6,*)'THE ACTUAL VALUE IN THE PARAMETER FILE IS: ',IPHA STOP END IF READ (1,*) ICON IF (ICON.NE.6.AND.ICON.NE.18.AND.ICON.NE.26) THEN WRITE (6,*)'ERROR IN PARAMETER FILE !!!' WRITE (6,*)'THE SECOND LINE IN THE PARAMETER FILE' WRITE (6,*)'MUST BE 6, 18 OR 26' WRITE (6,*)'6 MEANS 6-CONNECTIVITY (FACE CONNECTIVITY)' WRITE (6,*)'18 MEANS 18-CONNECTIVITY (FACE+EDGE CONNECTIVITY)' WRITE (6,*)'26 MEANS 26-CONNECTIVITY (FACE+EDGE+VERTEX CONN.)' WRITE (6,*)'THE ACTUAL VALUE IN THE PARAMETER FILE IS: ',ICON STOP END IF READ (1,100) CINP READ (1,*) NX,NY,NZ READ (1,*) DX,DY,DZ READ (1,*) N2 READ (1,100) COUT READ (1,100) COU2 READ (1,100) COU3 READ (1,100) DATALE CLOSE (1) IF (NX.GT.NXM) THEN WRITE (6,*)'ERROR IN PARAMETER FILE !!!' WRITE (6,*)'MAXIMUM ALLOWED NX IS ',NXM WRITE (6,*)'ACTUAL VALUE IS ',NX STOP END IF IF (NY.GT.NYM) THEN WRITE (6,*)'ERROR IN PARAMETER FILE !!!' WRITE (6,*)'MAXIMUM ALLOWED NY IS ',NYM WRITE (6,*)'ACTUAL VALUE IS ',NY STOP END IF IF (NZ.GT.NZM) THEN WRITE (6,*)'ERROR IN PARAMETER FILE !!!' WRITE (6,*)'MAXIMUM ALLOWED NZ IS ',NZM WRITE (6,*)'ACTUAL VALUE IS ',NZ STOP END IF C C READING EXPERIMENTAL INDICATOR DATA 3D FIELD Ccambie el orden de los 3 DO----------------------------------------- OPEN (1,FILE=CINP) JPHA=0 DO 1 L=1,NZ DO 2 J=1,NY DO 3 I=1,NX READ (1,*) VAL IND(I,J,L)=INT(VAL) IF (IPHA.EQ.0) THEN IF (INT(VAL).EQ.0) THEN IND(I,J,L)=1 ELSE IND(I,J,L)=0 END IF END IF IF (IND(I,J,L).NE.1.AND.IND(I,J,L).NE.0) THEN WRITE (6,*)'EXPERIMENTAL DATA MUST BE INDICATOR DATA 0/1' WRITE (6,*)'ACTUAL VALUE : ',IND(I,J,L) STOP END IF IF (IPHA.EQ.0) THEN IF (INT(VAL).EQ.0) THEN IND(I,J,L)=1 ELSE IND(I,J,L)=0 END IF END IF IF (IND(I,J,L).EQ.1) JPHA=JPHA+1 3 CONTINUE 2 CONTINUE 1 CONTINUE CLOSE (1) IARE=NX*NY*NZ PPHA=FLOAT(JPHA)/IARE WRITE (6,*) IF (ICON.EQ.6) WRITE (6,*)'6-CONNECTIVITY ANALYSIS' IF (ICON.EQ.18) WRITE (6,*)'18-CONNECTIVITY ANALYSIS' IF (ICON.EQ.26) WRITE (6,*)'26-CONNECTIVITY ANALYSIS' WRITE (6,*) WRITE (6,*)'PROPORTION OF PHASE 1 IS: ',PPHA C C C LOOKING FOR CONNECTED COMPONENTS C NCC=0 C 5 DO 6 I=1,NX DO 7 J=1,NY DO 67 L=1,NZ IF (IND(I,J,L).EQ.1) THEN IAI=I IAJ=J IAL=L GOTO 8 END IF 67 CONTINUE 7 CONTINUE 6 CONTINUE C NO MORE CONNECTED COMPONENTS SENDING CONTROL TO LABEL 20 GOTO 20 C C A NEW COMPONEND HAS BEEN FOUND, INCREASE NUMBER OF C CONNECTED COMPONENTS BY 1 C C 8 NCC=NCC+1 C WRITE (6,*)'NCC : ',NCC-------------------------------------- C C LOOKING FOR COMPONENT NCC WITH LABEL NNC+1 C IND(IAI,IAJ,IAL)=NCC+1 DO 9 I=IAI,NX DO 10 J=IAJ,NY DO 68 L=IAL,NZ C C 6-CONNECTIVITY C IF ((I-1).GT.0) THEN IF (IND(I-1,J,L).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) IND(I-1,J,L)=NCC+1 END IF END IF IF (I+1.LE.NX) THEN IF (IND(I+1,J,L).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) IND(I+1,J,L)=NCC+1 END IF END IF IF (J-1.GT.0) THEN IF (IND(I,J-1,L).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) IND(I,J-1,L)=NCC+1 END IF END IF IF (J+1.LE.NY) THEN IF (IND(I,J+1,L).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) IND(I,J+1,L)=NCC+1 END IF END IF IF (L-1.GT.0) THEN IF (IND(I,J,L-1).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) IND(I,J,L-1)=NCC+1 END IF END IF IF (L+1.LE.NZ) THEN IF (IND(I,J,L+1).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) IND(I,J,L+1)=NCC+1 END IF END IF C C 18-CONNECTIVITY C IF (ICON.GT.6) THEN IF ((J-1).GT.0.AND.(L-1).GT.0) THEN IF (IND(I,J-1,L-1).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) IND(I,J-1,L-1)=NCC+1 END IF END IF IF ((J+1).LE.NY.AND.(L-1).GT.0) THEN IF (IND(I,J+1,L).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) IND(I,J+1,L-1)=NCC+1 END IF END IF IF ((J-1).GT.0.AND.(L+1).LE.NZ) THEN IF (IND(I,J-1,L+1).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) IND(I,J-1,L+1)=NCC+1 END IF END IF IF ((J+1).LE.NY.AND.(L+1).LE.NZ) THEN IF (IND(I,J+1,L+1).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) IND(I,J+1,L+1)=NCC+1 END IF END IF IF ((I-1).GT.0.AND.(L-1).GT.0) THEN IF (IND(I-1,J,L-1).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) IND(I-1,J,L-1)=NCC+1 END IF END IF IF ((I+1).LE.NX.AND.(L-1).GT.0) THEN IF (IND(I+1,J,L).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) IND(I+1,J,L-1)=NCC+1 END IF END IF IF ((I-1).GT.0.AND.(L+1).LE.NZ) THEN IF (IND(I-1,J,L+1).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) IND(I-1,J,L+1)=NCC+1 END IF END IF IF ((I+1).LE.NX.AND.(L+1).LE.NZ) THEN IF (IND(I+1,J,L+1).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) IND(I+1,J,L+1)=NCC+1 END IF END IF IF ((I+1).LE.NX.AND.(J+1).LE.NY) THEN IF (IND(I+1,J+1,L).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) IND(I+1,J+1,L)=NCC+1 END IF END IF IF ((I+1).LE.NX.AND.(J-1).GT.0) THEN IF (IND(I+1,J-1,L).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) IND(I+1,J-1,L)=NCC+1 END IF END IF IF ((I-1).GT.0.AND.(J+1).LE.NY) THEN IF (IND(I-1,J+1,L).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) IND(I-1,J+1,L)=NCC+1 END IF END IF IF ((I-1).GT.0.AND.(J-1).GT.0) THEN IF (IND(I-1,J-1,L).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) IND(I-1,J-1,L)=NCC+1 END IF END IF END IF C C 26-CONNECTIVITY C IF (ICON.GT.18) THEN IF ((I-1).GT.0.AND.(J-1).GT.0.AND.(L-1).GT.0) THEN IF (IND(I-1,J-1,L-1).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) IND(I-1,J-1,L-1)=NCC+1 END IF END IF IF ((I+1).LE.NX.AND.(J-1).GT.0.AND.(L-1).GT.0) THEN IF (IND(I+1,J-1,L-1).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) IND(I+1,J-1,L-1)=NCC+1 END IF END IF IF ((I-1).GT.0.AND.(J+1).LE.NY.AND.(L-1).GT.0) THEN IF (IND(I-1,J+1,L-1).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) IND(I-1,J+1,L-1)=NCC+1 END IF END IF IF ((I+1).LE.NX.AND.(J+1).LE.NY.AND.(L-1).GT.0) THEN IF (IND(I+1,J+1,L-1).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) IND(I+1,J+1,L-1)=NCC+1 END IF END IF IF ((I-1).GT.0.AND.(J-1).GT.0.AND.(L+1).LE.NZ) THEN IF (IND(I-1,J-1,L+1).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) IND(I-1,J-1,L+1)=NCC+1 END IF END IF IF ((I+1).LE.NX.AND.(J-1).GT.0.AND.(L+1).LE.NZ) THEN IF (IND(I+1,J-1,L+1).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) IND(I+1,J-1,L+1)=NCC+1 END IF END IF IF ((I-1).GT.0.AND.(J+1).LE.NY.AND.(L+1).LE.NZ) THEN IF (IND(I-1,J+1,L+1).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) IND(I-1,J+1,L+1)=NCC+1 END IF END IF IF ((I+1).LE.NX.AND.(J+1).LE.NY.AND.(L+1).LE.NZ) THEN IF (IND(I+1,J+1,L+1).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) IND(I+1,J+1,L+1)=NCC+1 END IF END IF END IF 68 CONTINUE 10 CONTINUE 9 CONTINUE DO 40 I=IAI,1,-1 DO 41 J=IAJ,1,-1 DO 69 L=IAL,1,-1 C C 6-CONNECTIVITY C IF ((I-1).GT.0) THEN IF (IND(I-1,J,L).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) IND(I-1,J,L)=NCC+1 END IF END IF IF (I+1.LE.NX) THEN IF (IND(I+1,J,L).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) IND(I+1,J,L)=NCC+1 END IF END IF IF (J-1.GT.0) THEN IF (IND(I,J-1,L).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) IND(I,J-1,L)=NCC+1 END IF END IF IF (J+1.LE.NY) THEN IF (IND(I,J+1,L).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) IND(I,J+1,L)=NCC+1 END IF END IF IF (L-1.GT.0) THEN IF (IND(I,J,L-1).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) IND(I,J,L-1)=NCC+1 END IF END IF IF (L+1.LE.NZ) THEN IF (IND(I,J,L+1).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) IND(I,J,L+1)=NCC+1 END IF END IF C C 18-CONNECTIVITY C IF (ICON.GT.6) THEN IF ((J-1).GT.0.AND.(L-1).GT.0) THEN IF (IND(I,J-1,L-1).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) IND(I,J-1,L-1)=NCC+1 END IF END IF IF ((J+1).LE.NY.AND.(L-1).GT.0) THEN IF (IND(I,J+1,L).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) IND(I,J+1,L-1)=NCC+1 END IF END IF IF ((J-1).GT.0.AND.(L+1).LE.NZ) THEN IF (IND(I,J-1,L+1).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) IND(I,J-1,L+1)=NCC+1 END IF END IF IF ((J+1).LE.NY.AND.(L+1).LE.NZ) THEN IF (IND(I,J+1,L+1).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) IND(I,J+1,L+1)=NCC+1 END IF END IF IF ((I-1).GT.0.AND.(L-1).GT.0) THEN IF (IND(I-1,J,L-1).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) IND(I-1,J,L-1)=NCC+1 END IF END IF IF ((I+1).LE.NX.AND.(L-1).GT.0) THEN IF (IND(I+1,J,L).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) IND(I+1,J,L-1)=NCC+1 END IF END IF IF ((I-1).GT.0.AND.(L+1).LE.NZ) THEN IF (IND(I-1,J,L+1).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) IND(I-1,J,L+1)=NCC+1 END IF END IF IF ((I+1).LE.NX.AND.(L+1).LE.NZ) THEN IF (IND(I+1,J,L+1).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) IND(I+1,J,L+1)=NCC+1 END IF END IF IF ((I+1).LE.NX.AND.(J+1).LE.NY) THEN IF (IND(I+1,J+1,L).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) IND(I+1,J+1,L)=NCC+1 END IF END IF IF ((I+1).LE.NX.AND.(J-1).GT.0) THEN IF (IND(I+1,J-1,L).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) IND(I+1,J-1,L)=NCC+1 END IF END IF IF ((I-1).GT.0.AND.(J+1).LE.NY) THEN IF (IND(I-1,J+1,L).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) IND(I-1,J+1,L)=NCC+1 END IF END IF IF ((I-1).GT.0.AND.(J-1).GT.0) THEN IF (IND(I-1,J-1,L).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) IND(I-1,J-1,L)=NCC+1 END IF END IF END IF C C 26-CONNECTIVITY C IF (ICON.GT.18) THEN IF ((I-1).GT.0.AND.(J-1).GT.0.AND.(L-1).GT.0) THEN IF (IND(I-1,J-1,L-1).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) IND(I-1,J-1,L-1)=NCC+1 END IF END IF IF ((I+1).LE.NX.AND.(J-1).GT.0.AND.(L-1).GT.0) THEN IF (IND(I+1,J-1,L-1).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) IND(I+1,J-1,L-1)=NCC+1 END IF END IF IF ((I-1).GT.0.AND.(J+1).LE.NY.AND.(L-1).GT.0) THEN IF (IND(I-1,J+1,L-1).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) IND(I-1,J+1,L-1)=NCC+1 END IF END IF IF ((I+1).LE.NX.AND.(J+1).LE.NY.AND.(L-1).GT.0) THEN IF (IND(I+1,J+1,L-1).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) IND(I+1,J+1,L-1)=NCC+1 END IF END IF IF ((I-1).GT.0.AND.(J-1).GT.0.AND.(L+1).LE.NZ) THEN IF (IND(I-1,J-1,L+1).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) IND(I-1,J-1,L+1)=NCC+1 END IF END IF IF ((I+1).LE.NX.AND.(J-1).GT.0.AND.(L+1).LE.NZ) THEN IF (IND(I+1,J-1,L+1).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) IND(I+1,J-1,L+1)=NCC+1 END IF END IF IF ((I-1).GT.0.AND.(J+1).LE.NY.AND.(L+1).LE.NZ) THEN IF (IND(I-1,J+1,L+1).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) IND(I-1,J+1,L+1)=NCC+1 END IF END IF IF ((I+1).LE.NX.AND.(J+1).LE.NY.AND.(L+1).LE.NZ) THEN IF (IND(I+1,J+1,L+1).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) IND(I+1,J+1,L+1)=NCC+1 END IF END IF END IF 69 CONTINUE 41 CONTINUE 40 CONTINUE C 62 NNN=0 DO 60 I=1,NX DO 61 J=1,NY DO 70 L=1,NZ C C 6-CONNECTIVITY C IF ((I-1).GT.0) THEN IF (IND(I-1,J,L).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) THEN IND(I-1,J,L)=NCC+1 NNN=NNN+1 END IF END IF END IF IF (I+1.LE.NX) THEN IF (IND(I+1,J,L).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) THEN IND(I+1,J,L)=NCC+1 NNN=NNN+1 END IF END IF END IF IF (J-1.GT.0) THEN IF (IND(I,J-1,L).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) THEN IND(I,J-1,L)=NCC+1 NNN=NNN+1 END IF END IF END IF IF (J+1.LE.NY) THEN IF (IND(I,J+1,L).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) THEN IND(I,J+1,L)=NCC+1 NNN=NNN+1 END IF END IF END IF IF (L-1.GT.0) THEN IF (IND(I,J,L-1).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) THEN IND(I,J,L-1)=NCC+1 NNN=NNN+1 END IF END IF END IF IF (L+1.LE.NZ) THEN IF (IND(I,J,L+1).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) THEN IND(I,J,L+1)=NCC+1 NNN=NNN+1 END IF END IF END IF C C 18-CONNECTIVITY C IF (ICON.GT.6) THEN IF ((J-1).GT.0.AND.(L-1).GT.0) THEN IF (IND(I,J-1,L-1).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) THEN IND(I,J-1,L-1)=NCC+1 NNN=NNN+1 END IF END IF END IF IF ((J+1).LE.NY.AND.(L-1).GT.0) THEN IF (IND(I,J+1,L).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) THEN IND(I,J+1,L-1)=NCC+1 NNN=NNN+1 END IF END IF END IF IF ((J-1).GT.0.AND.(L+1).LE.NZ) THEN IF (IND(I,J-1,L+1).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) THEN IND(I,J-1,L+1)=NCC+1 NNN=NNN+1 END IF END IF END IF IF ((J+1).LE.NY.AND.(L+1).LE.NZ) THEN IF (IND(I,J+1,L+1).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) THEN IND(I,J+1,L+1)=NCC+1 NNN=NNN+1 END IF END IF END IF IF ((I-1).GT.0.AND.(L-1).GT.0) THEN IF (IND(I-1,J,L-1).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) THEN IND(I-1,J,L-1)=NCC+1 NNN=NNN+1 END IF END IF END IF IF ((I+1).LE.NX.AND.(L-1).GT.0) THEN IF (IND(I+1,J,L).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) THEN IND(I+1,J,L-1)=NCC+1 NNN=NNN+1 END IF END IF END IF IF ((I-1).GT.0.AND.(L+1).LE.NZ) THEN IF (IND(I-1,J,L+1).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) THEN IND(I-1,J,L+1)=NCC+1 NNN=NNN+1 END IF END IF END IF IF ((I+1).LE.NX.AND.(L+1).LE.NZ) THEN IF (IND(I+1,J,L+1).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) THEN IND(I+1,J,L+1)=NCC+1 NNN=NNN+1 END IF END IF END IF IF ((I+1).LE.NX.AND.(J+1).LE.NY) THEN IF (IND(I+1,J+1,L).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) THEN IND(I+1,J+1,L)=NCC+1 NNN=NNN+1 END IF END IF END IF IF ((I+1).LE.NX.AND.(J-1).GT.0) THEN IF (IND(I+1,J-1,L).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) THEN IND(I+1,J-1,L)=NCC+1 NNN=NNN+1 END IF END IF END IF IF ((I-1).GT.0.AND.(J+1).LE.NY) THEN IF (IND(I-1,J+1,L).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) THEN IND(I-1,J+1,L)=NCC+1 NNN=NNN+1 END IF END IF END IF IF ((I-1).GT.0.AND.(J-1).GT.0) THEN IF (IND(I-1,J-1,L).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) THEN IND(I-1,J-1,L)=NCC+1 NNN=NNN+1 END IF END IF END IF END IF C C 26-CONNECTIVITY C IF (ICON.GT.18) THEN IF ((I-1).GT.0.AND.(J-1).GT.0.AND.(L-1).GT.0) THEN IF (IND(I-1,J-1,L-1).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) THEN IND(I-1,J-1,L-1)=NCC+1 NNN=NNN+1 END IF END IF END IF IF ((I+1).LE.NX.AND.(J-1).GT.0.AND.(L-1).GT.0) THEN IF (IND(I+1,J-1,L-1).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) THEN IND(I+1,J-1,L-1)=NCC+1 NNN=NNN+1 END IF END IF END IF IF ((I-1).GT.0.AND.(J+1).LE.NY.AND.(L-1).GT.0) THEN IF (IND(I-1,J+1,L-1).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) THEN IND(I-1,J+1,L-1)=NCC+1 NNN=NNN+1 END IF END IF END IF IF ((I+1).LE.NX.AND.(J+1).LE.NY.AND.(L-1).GT.0) THEN IF (IND(I+1,J+1,L-1).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) THEN IND(I+1,J+1,L-1)=NCC+1 NNN=NNN+1 END IF END IF END IF IF ((I-1).GT.0.AND.(J-1).GT.0.AND.(L+1).LE.NZ) THEN IF (IND(I-1,J-1,L+1).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) THEN IND(I-1,J-1,L+1)=NCC+1 NNN=NNN+1 END IF END IF END IF IF ((I+1).LE.NX.AND.(J-1).GT.0.AND.(L+1).LE.NZ) THEN IF (IND(I+1,J-1,L+1).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) THEN IND(I+1,J-1,L+1)=NCC+1 NNN=NNN+1 END IF END IF END IF IF ((I-1).GT.0.AND.(J+1).LE.NY.AND.(L+1).LE.NZ) THEN IF (IND(I-1,J+1,L+1).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) THEN IND(I-1,J+1,L+1)=NCC+1 NNN=NNN+1 END IF END IF END IF IF ((I+1).LE.NX.AND.(J+1).LE.NY.AND.(L+1).LE.NZ) THEN IF (IND(I+1,J+1,L+1).EQ.1) THEN IF (IND(I,J,L).EQ.NCC+1) THEN IND(I+1,J+1,L+1)=NCC+1 NNN=NNN+1 END IF END IF END IF END IF 70 CONTINUE 61 CONTINUE 60 CONTINUE IF (NNN.GT.0) GOTO 62 GOTO 5 C C THE CONNECTED COMPONENT IS THE COMPONENT WITH VALUES C IA(I,J,L)=NCC, WE SUBSTRACT 1 FROM THE LEBEL C 20 DO 50 I=1,NX DO 51 J=1,NY DO 71 L=1,NZ IF (IND(I,J,L).NE.0) IND(I,J,L)=IND(I,J,L)-1 71 CONTINUE 51 CONTINUE 50 CONTINUE C C STATISTICS ON CONNECTED COMPONENTS C ISME=0 IXME=0 IYME=0 IZME=0 ISMI=NX*NY*NZ ISMA=1 IXMI=NX IXMA=1 IYMI=NY IYMA=1 IZMI=NZ IZMA=1 IPX=0 IPY=0 IPZ=0 WRITE (6,*) WRITE (6,*)'NUMBER OF CONNECTED COMPONENTS: ',NCC DO 14 III=1,NCC IS=0 IX1=NX IY1=NY IZ1=NZ IX2=1 IY2=1 IZ2=1 DO 11 I=1,NX DO 12 J=1,NY DO 72 L=1,NZ IF (IND(I,J,L).EQ.III) THEN IS=IS+1 IF (I.LT.IX1) IX1=I IF (I.GT.IX2) IX2=I IF (J.LT.IY1) IY1=J IF (J.GT.IY2) IY2=J IF (L.LT.IZ1) IZ1=L IF (L.GT.IZ2) IZ2=L END IF 72 CONTINUE 12 CONTINUE 11 CONTINUE IXSI=IX2-IX1+1 IYSI=IY2-IY1+1 IZSI=IZ2-IZ1+1 ISME=ISME+IS IXME=IXME+IXSI IYME=IYME+IYSI IZME=IZME+IZSI IF (IS.LT.ISMI) ISMI=IS IF (IS.GT.ISMA) THEN ISMA=IS ICOM=III END IF IF (IXSI.LT.IXMI) IXMI=IXSI IF (IXSI.GT.IXMA) IXMA=IXSI IF (IYSI.LT.IYMI) IYMI=IYSI IF (IYSI.GT.IYMA) IYMA=IYSI IF (IZSI.LT.IZMI) IZMI=IZSI IF (IZSI.GT.IZMA) IZMA=IZSI IF (IXSI.EQ.NX) IPX=IPX+1 IF (IYSI.EQ.NY) IPY=IPY+1 IF (IZSI.EQ.NZ) IPZ=IPZ+1 C--------------------------armo la gamma renard, sumo los cuadrados de los elementos de cada cluster, fui dividiendo por np para no quil ZTEMP=FLOAT(IS)/FLOAT(JPHA) ZGAMMA=ZGAMMA+ZTEMP*ZTEMP C WRITE (6,*)'ZGAMMA1 ',ZSUMA C---------------------- 14 CONTINUE C C -----------------------------------------------------------OUTPUT 1 C C OPEN (1,FILE=COUT) C IF (ICON.EQ.6) WRITE (1,430) CPAR C IF (ICON.EQ.18) WRITE (1,440) CPAR C IF (ICON.EQ.26) WRITE (1,450) CPAR C WRITE (1,110) CINP C WRITE (1,120) NX C WRITE (1,130) NY C WRITE (1,131) NZ C WRITE (1,140) DX C WRITE (1,150) DY C WRITE (1,151) DZ C WRITE (1,160) IPHA,PPHA C WRITE (1,170) NCC RSME=DX*DY*DZ*ISME/FLOAT(NCC) RISM=FLOAT(ISME)/NCC RTOT=RISM/JPHA C WRITE (1,175) C WRITE (1,180) RISM C WRITE (1,190) RSME C WRITE (1,200) IPHA,RTOT RXME=FLOAT(IXME)/NCC RYME=FLOAT(IYME)/NCC RZME=FLOAT(IZME)/NCC C WRITE (1,210) RXME C WRITE (1,240) RYME C WRITE (1,241) RZME C WRITE (1,177) C WRITE (1,235) ICOM C WRITE (1,236) ISMA RSIZ=FLOAT(ISMA)/JPHA C WRITE (1,237) IPHA,RSIZ C WRITE (1,230) IXMA C WRITE (1,260) IYMA C WRITE (1,261) IZMA C WRITE (1,176) C WRITE (1,238) ISMI C WRITE (1,220) IXMI C WRITE (1,250) IYMI C WRITE (1,251) IZMI C WRITE (1,178) C WRITE (1,270) IPX cuantos clusters percolan en x C WRITE (1,280) IPY C WRITE (1,281) IPZ C WRITE (1,290) COU2 C WRITE (1,295) COU3 C C CONNECTIVITY FUNCTION C CALCULATED FOR N2 LAGS C C NP4(I)=0 C C NPCX(I)=0 C C NPCY(I)=0 C C NPCZ(I)=0 C C NPC1(I)=0 C C NPC2(I)=0 C C NP C C DO 595 I=1,N2 C C NPX(I)=0 C C NP Y(I)=0 C C NPZ(I)=0 C C NP1(I)=0 C C NP2(I)=0 C C NP3(I)=0 C C3(I)=0 C C NPC4(I)=0 C 595 CONTINUE C C DO 30 I=1,NX C C DO 31 J=1,NY C C DO 73 L=1,NZ C C I1=IND(I,J,L) C IF (I1.EQ.0) GOTO 73 C DO 32 K=1,N2 C C ALONG X C C IF (I+K.LE.NX) THEN C IF (IND(I+K,J,L).NE.0) THEN C NPX(K)=NPX(K)+1 C IF (I1.EQ.IND(I+K,J,L)) NPCX(K)=NPCX(K)+1 C END IF C END IF C C C ALONG Y C C C IF (J+K.LE.NY) THEN C IF (IND(I,J+K,L).NE.0) THEN C NPY(K)=NPY(K)+1 C IF (I1.EQ.IND(I,J+K,L)) NPCY(K)=NPCY(K)+1 C END IF C END IF C C C C ALONG Z C C C IF (L+K.LE.NZ) THEN C IF (IND(I,J,L+K).NE.0) THEN C NPZ(K)=NPZ(K)+1 C IF (I1.EQ.IND(I,J,L+K)) NPCZ(K)=NPCZ(K)+1 C END IF C END IF C C C C ALONG 3D DIAGONAL 1 (I+, J+, K+) C C C IF ((J+K.LE.NY).AND.(I+K.LE.NX).AND.(L+K.LE.NZ)) THEN C IF (IND(I+K,J+K,L+K).NE.0) THEN C NP1(K)=NP1(K)+1 C IF (I1.EQ.IND(I+K,J+K,L+K)) NPC1(K)=NPC1(K)+1 C END IF C END IF C C C C ALONG 3D DIAGONAL 2 (I+, J-, K+) C C C IF ((J-K.GT.0).AND.(I+K.LE.NX).AND.(L+K.LE.NZ)) THEN C IF (IND(I+K,J-K,L+K).NE.0) THEN C NP2(K)=NP2(K)+1 C IF (I1.EQ.IND(I+K,J-K,L+K)) NPC2(K)=NPC2(K)+1 C END IF C END IF C C C C ALONG 3D DIAGONAL 3 (I-, J-, K+) C C C IF ((J-K.GT.0).AND.(I-K.GT.0).AND.(L+K.LE.NZ)) THEN C IF (IND(I-K,J-K,L+K).NE.0) THEN C NP3(K)=NP3(K)+1 C IF (I1.EQ.IND(I-K,J-K,L+K)) NPC3(K)=NPC3(K)+1 C END IF C END IF C C C C ALONG 3D DIAGONAL 4 (I-, J+, K+) C C C IF ((J+K.LE.NY).AND.(I-K.GT.0).AND.(L+K.LE.NZ)) THEN C IF (IND(I-K,J+K,L+K).NE.0) THEN C NP4(K)=NP4(K)+1 C IF (I1.EQ.IND(I-K,J+K,L+K)) NPC4(K)=NPC4(K)+1 C END IF C END IF C C C C FIRST DIAGONAL IN THE PLANE X-Y C C C IF ((I+K.LE.NX).AND.(J+K.LE.NY)) THEN C IF (IND(I+K,J+K,L).NE.0) THEN C NXY1(K)=NXY1(K)+1 C IF (I1.EQ.IND(I+K,J+K,L)) NCXY1(K)=NCXY1(K)+1 C END IF C END IF C C C C SECOND DIAGONAL IN THE PLANE X-Y C C C IF ((I+K.LE.NX).AND.(J-K.GT.0)) THEN C IF (IND(I+K,J-K,L).NE.0) THEN C NXY2(K)=NXY2(K)+1 C IF (I1.EQ.IND(I+K,J-K,L)) NCXY2(K)=NCXY2(K)+1 C END IF C END IF C C C C FIRST DIAGONAL IN THE PLANE X-Z C C C IF ((I+K.LE.NX).AND.(L+K.LE.NZ)) THEN C IF (IND(I+K,J,L+K).NE.0) THEN C NXZ1(K)=NXZ1(K)+1 C IF (I1.EQ.IND(I+K,J,L+K)) NCXZ1(K)=NCXZ1(K)+1 C END IF C END IF C C C C SECOND DIAGONAL IN THE PLANE X-Z C C C IF ((I+K.LE.NX).AND.(L-K.GT.0)) THEN C IF (IND(I+K,J,L-K).NE.0) THEN C NXZ2(K)=NXZ2(K)+1 C IF (I1.EQ.IND(I+K,J,L-K)) NCXZ2(K)=NCXZ2(K)+1 C END IF C END IF C C C C FIRST DIAGONAL IN THE PLANE Y-Z C C C IF ((J+K.LE.NY).AND.(L+K.LE.NZ)) THEN C IF (IND(I,J+K,L+K).NE.0) THEN C NYZ1(K)=NYZ1(K)+1 C IF (I1.EQ.IND(I,J+K,L+K)) NCYZ1(K)=NCYZ1(K)+1 C END IF C END IF C C C C SECOND DIAGONAL IN THE PLANE Y-Z C C C IF ((J+K.LE.NY).AND.(L-K.GT.0)) THEN C IF (IND(I,J+K,L-K).NE.0) THEN C NYZ2(K)=NYZ2(K)+1 C IF (I1.EQ.IND(I,J+K,L-K)) NCYZ2(K)=NCYZ2(K)+1 C END IF C END IF C32 CONTINUE C73 CONTINUE C31 CONTINUE C30 CONTINUE C aca calcula con func y la ----le saque toda la escritura al archivo de estadisticas y solo calcu 1 func conec C WRITE (1,300) C ZACUMCC=0.0 C DO 33 I=1,N2 C CCFU(I,1)=FLOAT(NPCX(I))/AMAX0(1,NPX(I)) C ZACUMCC=ZACUMCC+CCFU(I,1) C WRITE (1,310) I*DX,CCFU(I,1),NPCX(I),NPX(I)----------------------------------------------- C33 CONTINUE C WRITE (1,320) C DO 34 I=1,N2 C CCFU(I,2)=FLOAT(NPCY(I))/AMAX0(1,NPY(I)) C WRITE (1,310) I*DY,CCFU(I,2),NPCY(I),NPY(I) C34 CONTINUE C WRITE (1,321) C DO 36 I=1,N2 C CCFU(I,3)=FLOAT(NPCZ(I))/AMAX0(1,NPZ(I)) C WRITE (1,310) I*DZ,CCFU(I,3),NPCZ(I),NPZ(I) C36 CONTINUE DXYZ=SQRT(DX*DX+DY*DY+DZ*DZ) DXY=SQRT(DX*DX+DY*DY) DXZ=SQRT(DX*DX+DZ*DZ) DYZ=SQRT(DY*DY+DZ*DZ) C WRITE (1,322) C DO 37 I=1,N2 C CCFU(I,4)=FLOAT(NPC1(I))/AMAX0(1,NP1(I)) C WRITE (1,310) I*DXYZ,CCFU(I,4),NPC1(I),NP1(I) C37 CONTINUE C WRITE (1,323) C DO 81 I=1,N2 C CCFU(I,5)=FLOAT(NPC2(I))/AMAX0(1,NP2(I)) C WRITE (1,310) I*DXYZ,CCFU(I,5),NPC2(I),NP2(I) C81 CONTINUE C WRITE (1,324) C DO 82 I=1,N2 C CCFU(I,6)=FLOAT(NPC3(I))/AMAX0(1,NP3(I)) C WRITE (1,310) I*DXYZ,CCFU(I,6),NPC3(I),NP3(I) C82 CONTINUE C WRITE (1,325) C DO 83 I=1,N2 C CCFU(I,7)=FLOAT(NPC4(I))/AMAX0(1,NP4(I)) C WRITE (1,310) I*DXYZ,CCFU(I,7),NPC4(I),NP4(I) C83 CONTINUE C WRITE (1,330) C DO 35 I=1,N2 C CCFU(I,8)=(NPCX(I)+NPCY(I))/AMAX0(1,(NPX(I)+NPY(I))) C WRITE (1,310) I*0.5*(DX+DY),CCFU(I,8),NPCX(I)+NPCY(I) C * ,NPX(I)+NPY(I) C35 CONTINUE C WRITE (1,328) C DO 84 I=1,N2 C CCFU(I,9)=(NPCX(I)+NPCY(I)+NPCZ(I))/AMAX0(1,(NPX(I)+NPY(I) C * +NPZ(I))) C WRITE (1,310) I*(DX+DY+DZ)/3.0,CCFU(I,9),NPCX(I)+NPCY(I) C * +NPCZ(I),NPX(I)+NPY(I)+NPZ(I) C84 CONTINUE C WRITE (1,327) C DO 38 I=1,N2 C CCFU(I,10)=(NPC1(I)+NPC2(I)+NPC3(I)+NPC4(I)) C * /AMAX0(1,(NP1(I)+NP2(I)+NP3(I)+NP4(I))) C WRITE(1,310) I*DXYZ,CCFU(I,10), C * NPC1(I)+NPC2(I)+NPC3(I)+NPC4(I),NP1(I)+NP2(I)+NP3(I)+NP4(I) C38 CONTINUE C WRITE (1,329) C DO 91 I=1,N2 C CCFU(I,11)=FLOAT(NCXY1(I))/AMAX0(1,NXY1(I)) C WRITE (1,310) I*DXY,CCFU(I,11),NCXY1(I),NXY1(I) C91 CONTINUE C WRITE (1,331) C DO 92 I=1,N2 C CCFU(I,12)=FLOAT(NCXY2(I))/AMAX0(1,NXY2(I)) C WRITE (1,310) I*DXY,CCFU(I,12),NCXY2(I),NXY2(I) C92 CONTINUE C WRITE (1,332) C DO 93 I=1,N2 C CCFU(I,13)=FLOAT(NCXZ1(I))/AMAX0(1,NXZ1(I)) C WRITE (1,310) I*DXZ,CCFU(I,13),NCXZ1(I),NXZ1(I) C93 CONTINUE C WRITE (1,333) C DO 94 I=1,N2 C CCFU(I,14)=FLOAT(NCXZ2(I))/AMAX0(1,NXZ2(I)) C WRITE (1,310) I*DXZ,CCFU(I,14),NCXZ2(I),NXZ2(I) C94 CONTINUE C WRITE (1,334) C DO 95 I=1,N2 C CCFU(I,15)=FLOAT(NCYZ1(I))/AMAX0(1,NYZ1(I)) C WRITE (1,310) I*DYZ,CCFU(I,15),NCYZ1(I),NYZ1(I) C95 CONTINUE C WRITE (1,335) C DO 96 I=1,N2 C CCFU(I,16)=FLOAT(NCYZ2(I))/AMAX0(1,NYZ2(I)) C WRITE (1,310) I*DYZ,CCFU(I,16),NCYZ2(I),NYZ2(I) C96 CONTINUE C CLOSE (1) C --------------------aca abro archivo salida ------------------- c-------------------------------------------volale VOLALE=FLOAT(ISMA)/FLOAT(IARE) ZINTCC=ZGAMMA*FLOAT(JPHA)/FLOAT(NX*NY*NZ) ZNCC=FLOAT(NCC) ZIPZ=FLOAT(IPZ) OPEN (1,FILE=DATALE) C DO 555 I=1,N2 C WRITE (6,*) CCFU(I,1) C IF (CCFU(I,1).LE.ZINVERSAE) THEN C CONCAR=I C WRITE (6,*) ZINTCC C WRITE (6,*) ZACUMCC C WRITE (6,*) VOLALE C WRITE (6,*) ZGAMMA C EXIT C END IF C555 CONTINUE WRITE (1,500) ZINTCC, VOLALE, ZGAMMA, ZIPZ, ZNCC, PPHA C WRITE (1,500) CONCAR, ZACUMCC, VOLALE, ZGAMMA, ZNCC, ZIPX, PPHA C WRITE (1,'(F8.5)') CONCAR CLOSE (1) C --------------------aca CIERRO archivo salida ----------------- C OUTPUT FILE WITH CONNECTED COMPONENTS CC -----------------------------------------------------------OUTPUT 2 C OPEN (1,FILE=COU2) C C DO 15 I=1,NX C DO 16 J=1,NY C DO 85 L=1,NZ C WRITE (1,*) IND(I,J,L) C85 CONTINUE C16 CONTINUE C15 CONTINUE C C CLOSE (1) C--------------------------------------------------------------- CLOSE (2) C OPEN (1,FILE=COU3) C DO 17 I=1,N2 C WRITE (1,*) I*DX,CCFU(I,1),NPCX(I),NPX(I) C17 CONTINUE C WRITE (1,*) C DO 18 I=1,N2 C WRITE (1,*) I*DY,CCFU(I,2),NPCY(I),NPY(I) C18 CONTINUE C WRITE (1,*) C DO 86 I=1,N2 C WRITE (1,*) I*DZ,CCFU(I,3),NPCZ(I),NPZ(I) C86 CONTINUE C WRITE (1,*) C DO 19 I=1,N2 C WRITE (1,*) I*DXYZ,CCFU(I,4),NPC1(I),NP1(I) C19 CONTINUE C WRITE (1,*) C DO 23 I=1,N2 C WRITE (1,*) I*DXYZ,CCFU(I,5),NPC2(I),NP2(I) C23 CONTINUE C WRITE (1,*) C DO 87 I=1,N2 C WRITE (1,*) I*DXYZ,CCFU(I,6),NPC3(I),NP3(I) C87 CONTINUE C WRITE (1,*) C DO 88 I=1,N2 C WRITE (1,*) I*DXYZ,CCFU(I,7),NPC4(I),NP4(I) C88 CONTINUE C WRITE (1,*) C DO 21 I=1,N2 C WRITE (1,*) I*0.5*(DX+DY),CCFU(I,8),NPCX(I)+NPCY(I) C * ,NPX(I)+NPY(I) C21 CONTINUE C WRITE (1,*) C DO 89 I=1,N2 C WRITE (1,*) I*(DX+DY+DZ)/3.0,CCFU(I,9),NPCX(I)+NPCY(I) C * +NPCZ(I),NPX(I)+NPY(I)+NPZ(I) C89 CONTINUE C WRITE (1,*) C DO 22 I=1,N2 C WRITE (1,*) I*DXYZ,CCFU(I,10),NPC1(I)+NPC2(I)+NPC3(I)+NPC4(I) C * ,NP1(I)+NP2(I)+NP3(I)+NP4(I) C22 CONTINUE C WRITE (1,*) C DO 111 I=1,N2 C CCFU(I,11)=FLOAT(NCXY1(I))/AMAX0(1,NXY1(I)) C WRITE (1,*) I*DXY,CCFU(I,11),NCXY1(I),NXY1(I) C111 CONTINUE C WRITE (1,*) C DO 112 I=1,N2 C CCFU(I,12)=FLOAT(NCXY2(I))/AMAX0(1,NXY2(I)) C WRITE (1,*) I*DXY,CCFU(I,12),NCXY2(I),NXY2(I) C112 CONTINUE C WRITE (1,*) C DO 113 I=1,N2 C CCFU(I,13)=FLOAT(NCXZ1(I))/AMAX0(1,NXZ1(I)) C WRITE (1,*) I*DXZ,CCFU(I,13),NCXZ1(I),NXZ1(I) C113 CONTINUE C WRITE (1,*) C DO 114 I=1,N2 C CCFU(I,14)=FLOAT(NCXZ2(I))/AMAX0(1,NXZ2(I)) C WRITE (1,*) I*DXZ,CCFU(I,14),NCXZ2(I),NXZ2(I) C114 CONTINUE C WRITE (1,*) C DO 115 I=1,N2 C CCFU(I,15)=FLOAT(NCYZ1(I))/AMAX0(1,NYZ1(I)) C WRITE (1,*) I*DYZ,CCFU(I,15),NCYZ1(I),NYZ1(I) C115 CONTINUE C WRITE (1,*) C DO 116 I=1,N2 C CCFU(I,16)=FLOAT(NCYZ2(I))/AMAX0(1,NYZ2(I)) C WRITE (1,*) I*DYZ,CCFU(I,16),NCYZ2(I),NYZ2(I) C116 CONTINUE C CLOSE (1) C---------------------------------------------------------------- C WRITE (6,410) COUT C WRITE (6,420) COU2 C WRITE (6,425) COU3 STOP C 100 FORMAT (A) 110 FORMAT (1X,'INPUT INDICATOR FILE : ',A12) 120 FORMAT (1X,'NX : ',I6) 130 FORMAT (1X,'NY : ',I6) 131 FORMAT (1X,'NZ : ',I6) 140 FORMAT (1X,'DX : ',F10.3) 150 FORMAT (1X,'DY : ',F10.3) 151 FORMAT (1X,'DZ : ',F10.3) 160 FORMAT (1X,'PROPORTION OF FACIES ',I1,' : ',F10.4) 170 FORMAT (/1X,'CONNECTED COMPONENTS STATISTICS'// * /1X,'NUMBER OF CONNECTED COMPONENTS : ',I6) 175 FORMAT (/1X,'AVERAGES'/1X,8('=')) 176 FORMAT (/1X,'MINIMA'/1X,6('=')) 177 FORMAT (/1X,'MAXIMA'/1X,6('=')) 178 FORMAT (/1X,'PERCOLATION'/1X,11('=')) 180 FORMAT (1X,'MEAN SIZE IN PIXELS : ',F10.4) 190 FORMAT (1X,'MEAN SIZE REAL UNITS : ',F12.4) 200 FORMAT (1X,'MEAN SIZE RELATIVE TO TOTAL AREA OF FACIES ',I1, * ' : ',F10.4) 210 FORMAT (1X,'MEAN LENGTH ALONG X (IN PIXELS) : ',F10.4) 220 FORMAT (1X,'MINIMUM LENGTH ALONG X (IN PIXELS) : ',I6) 230 FORMAT (1X,'MAXIMUM LENGTH ALONG X (IN PIXELS) : ',I6) 235 FORMAT (1X,'THE LARGEST COMPONENT IS NUMBER : ',I6) 236 FORMAT (1X,'WITH MAXIMUM SIZE IN PIXELS : ',I6) 237 FORMAT (1X,'AND RELATIVE TO TOTAL AREA OF FACIES ' * ,I1,' : ',F10.4) 238 FORMAT (1X,'SIZE IN PIXELS OF SMALLEST COMPONENT : ',I6) 240 FORMAT (1X,'MEAN LENGTH ALONG Y (IN PIXELS) : ',F10.4) 241 FORMAT (1X,'MEAN LENGTH ALONG Z (IN PIXELS) : ',F10.4) 250 FORMAT (1X,'MIMIMUN LENGTH ALONG Y (IN PIXELS) : ',I6) 260 FORMAT (1X,'MAXIMUM LENGTH ALONG Y (IN PIXELS) : ',I6) 251 FORMAT (1X,'MIMIMUN LENGTH ALONG Z (IN PIXELS) : ',I6) 261 FORMAT (1X,'MAXIMUM LENGTH ALONG Z (IN PIXELS) : ',I6) 270 FORMAT (1X,'NUMBER OF PERCOLATING COMPONENTS IN X : ',I6) 280 FORMAT (1X,'NUMBER OF PERCOLATING COMPONENTS IN Y : ',I6) 281 FORMAT (1X,'NUMBER OF PERCOLATING COMPONENTS IN Z : ',I6) 290 FORMAT (/1X,'OUTPUT FILE WITH CONNECTED COMPONENTS : ',A12) 295 FORMAT (/1X,'OUTPUT FILE WITH CONNECTIVIY FUNCTION : ',A12) 300 FORMAT (/1X,'CONNECTIVITY FUNCTION'/1X,21('=') * //1X,'ALONG THE X DIRECTION (1,0,0)') 310 FORMAT (F10.3,F12.6,2I12) 320 FORMAT (/1X,'ALONG THE Y DIRECTION (0,1,0)') 321 FORMAT (/1X,'ALONG THE Z DIRECTION (0,0,1)') 322 FORMAT (/1X,'ALONG THE FIRST 3D DIAGONAL (1,1,1)') 323 FORMAT (/1X,'ALONG THE SECOND 3D DIAGONAL (1,-1,1)') 324 FORMAT (/1X,'ALONG THE THIRD 3D DIAGONAL (-1,-1,1)') 325 FORMAT (/1X,'ALONG THE FOURTH 3D DIAGONAL (-1,1,1)') 327 FORMAT (/1X,'AVERAGE ALONG THE 3D DIAGONALS') 330 FORMAT (/1X,'AVERAGE ALONG X AND Y') 328 FORMAT (/1X,'AVERAGE ALONG X, Y AND Z') 329 FORMAT (/1X,'FIRST DIAGONAL ON THE X-Y PLANE (1,1,0)') 331 FORMAT (/1X,'SECOND DIAGONAL ON THE X-Y PLANE (1,-1,0') 332 FORMAT (/1X,'FIRST DIAGONAL ON THE X-Z PLANE (1,0,1)') 333 FORMAT (/1X,'SECOND DIAGONAL ON THE X-Z PLANE (1,0,-1)') 334 FORMAT (/1X,'FIRST DIAGONAL ON THE Y-Z PLANE (0,1,1)') 335 FORMAT (/1X,'SECOND DIAGONAL ON THE Y-Z PLANE (0,1,-1)') 400 FORMAT (25(/),1X,'CONNEC3D PROGRAM VER. 1.0'/1X,27('=')/// * 1X,'INPUT PARAMETER FILE ---> ',$) 410 FORMAT (/1X,'OUTPUT FILE WITH STATISTICS AND CONNECTIVITY ' * 'FUNCTION: ',A12) 420 FORMAT (/1X,'OUTPUT FILE WITH CONNECTED COMPONENTS: ',A12) 425 FORMAT (/1X,'OUTPUT FILE WITH CONNECTIVITY FUNCTION: ',A12) 430 FORMAT (1X,'OUTPUT RESULTS OF CONNEC3D'//1X'6-CONNECTIVITY' * ' ANALYSIS'/1X,'PARAMETER FILE WAS : ',A12//) 440 FORMAT (1X,'OUTPUT RESULTS OF CONNEC3D'//1X'18-CONNECTIVITY' * ' ANALYSIS'/1X,'PARAMETER FILE WAS : ',A12//) 450 FORMAT (1X,'OUTPUT RESULTS OF CONNEC3D'//1X'26-CONNECTIVITY' * ' ANALYSIS'/1X,'PARAMETER FILE WAS : ',A12//) C-----agregue este format concar (cuando cae abajo 1/e), zacum (integral cc),volale (vol largest cluster / vol tot),gamma,ppha C- WRITE (1,500) CONCAR, VOLALE, ZGAMMA, ZIPZ, ZNCC, PPHA 500 FORMAT (1X,F8.7,' ',F8.7,' ',F8.7,' ',F8.2,' ',F8.2,' ',F8.5) C500 FORMAT (1X,F8.2,' ',F8.5,' ',F8.5,' ',F8.7,' ',F8.2,' ',F8.5) END