C C Reading/writing global data array into data set on the disk file SUBROUTINE GLOBRW(READFL,PGL1,KDFN,NPG,MDOR) LOGICAL READFL DIMENSION PGL1(NPG) KZ=NPG/MDOR KOST=NPG-KZ*MDOR IF(KOST.NE.0)KZ=KZ+1 ISP=KDFN+1 K1=1 K2=MDOR C check size write (*,*) "size(PGL1)=", size(PGL1) C end check. Remove after debug IF(READFL) THEN DO 10 I=1,KZ IF(K2.GT.NPG) K2=NPG C READ(4,REC=ISP,ERR=20) (PGL1(K),K=K1,K2) READ(4,REC=ISP) (PGL1(K),K=K1,K2) ISP=ISP+1 K1=K2+1 K2=K2+MDOR 10 CONTINUE ELSE DO 11 I=1,KZ IF(K2.GT.NPG) K2=NPG WRITE(4,REC=ISP,ERR=21) (PGL1(K),K=K1,K2) ISP=ISP+1 K1=K2+1 K2=K2+MDOR 11 CONTINUE END IF RETURN 20 PRINT*,'Reading file ERROR!!! Record ',ISP RETURN 21 PRINT*,'Writing file ERROR!!! Record ',ISP RETURN END |