[Fortran] syntaxhighlighter_viewsource syntaxhighlighter_copycode
IF(HIN.LT.0.0) THEN        !为非饱和状态
        IF(INDEX.EQ.0) THEN        !排水
        DO I=1,N
        IF(B(I,1).GT.BC) THEN
        IA(I,1)=-1 
        ENDIF
        IF(B(I,M).GT.BC) THEN
        IA(I,M)=-1
        ENDIF
        ENDDO
        DO J=2,M-1
        DO I=1,N
        IF(IA(I,J-1).EQ.-1.AND.B(I,J).GT.BC) THEN
        IA(I,J)=-1
        KI=I
   10 KI=KI-1
        IF(KI.GE.1) THEN
        IF(B(KI,J).GT.BC) THEN
        IA(KI,J)=-1
        GOTO 10
        ENDIF 
        ENDIF
        KI=I
   20 KI=KI+1
        IF(KI.LE.N) THEN
        IF(B(KI,J).GT.BC) THEN
        IA(KI,J)=-1
        GOTO 20
        ENDIF
        ENDIF
        ENDIF
        IF(IA(I,M-J+2).EQ.-1.AND.B(I,M-J+1).GT.BC) THEN
        IA(I,M-J+1)=-1
        KI=I
   30 KI=KI-1
        IF(KI.GE.1) THEN
        IF(B(KI,M-J+1).GT.BC) THEN
        IA(KI,M-J+1)=-1
        GOTO 30
        ENDIF
        ENDIF
        KI=I
   40 KI=KI+1
        IF(KI.LE.N) THEN
        IF(B(KI,M-J+1).GT.BC) THEN
        IA(KI,M-J+1)=-1
        GOTO 40
        ENDIF
        ENDIF
        ENDIF
        ENDDO
        ENDDO
        ELSE !吸水
        DO J=1,M
        DO I=1,N
        IF(B(I,J).EQ.0.0) B(I,J)=10.0
        ENDDO
        ENDDO
        DO I=1,N
        IF(B(I,1).LT.BC) THEN
        IA(I,1)=1 
        ENDIF
        IF(B(I,M).LT.BC) THEN
        IA(I,M)=1
        ENDIF
        ENDDO
        DO J=2,M-1
        DO I=1,N
        IF(IA(I,J-1).EQ.1.AND.B(I,J).LT.BC) THEN
        IA(I,J)=1
        KI=I
   50 KI=KI-1
        IF(KI.GE.1) THEN
        IF(B(KI,J).LT.BC) THEN
        IA(KI,J)=1
        GOTO 50
        ENDIF 
        ENDIF
        KI=I
   60 KI=KI+1
        IF(KI.LE.N) THEN
        IF(B(KI,J).LT.BC) THEN
        IA(KI,J)=1
        GOTO 60
        ENDIF
        ENDIF
        ENDIF
        IF(IA(I,M-J+2).EQ.1.AND.B(I,M-J+1).LT.BC) THEN
        IA(I,M-J+1)=1
        KI=I
   70 KI=KI-1
        IF(KI.GE.1) THEN
        IF(B(KI,M-J+1).LT.BC) THEN
        IA(KI,M-J+1)=1
        GOTO 70
        ENDIF
        ENDIF
        KI=I
   80 KI=KI+1
        IF(KI.LE.N) THEN
        IF(B(KI,M-J+1).LT.BC) THEN
        IA(KI,M-J+1)=1
        GOTO 80
        ENDIF
        ENDIF
        ENDIF
        ENDDO
        ENDDO
        DO J=1,M
        DO I=1,N
        IF(B(I,J).EQ.10.0) THEN
        B(I,J)=0.0 
        IA(I,J)=-1 !接触局域假设为充气
        ENDIF
        ENDDO
        ENDDO
        ENDIF
        ENDIF