SUBROUTINE RDSIM(NFILE,ITER,WPP,G) C Entry RDSIM: Read an iteration record from the previously opened C simulation input file on unit NFILE. C Inputs: C NFILE Unit number for file C Outputs: C ITER Iteration number wread from first line C WPP(3) Log weight, log prior, log data p.d.f. read from 1st line C G(NPARS) Vector of simulated values read from succeeding lines C Entry RDSIM0: Open and read the first record from the C simulation output file on unit NFILE C Inputs: C NFILE Unit number for file C LD Maximum number of parameters allowed in vector G C Outputs: C NITER Number of iterations C NPARS Number of parameters IMPLICIT REAL*8 (A-H,O-Z) COMMON/ARDSIM/LDA,NPARSA DIMENSION WPP(3),G(LDA) READ(NFILE,*,END=110,ERR=120)ITER,(WPP(J),J=1,3),(G(J),J=1,NPARSA) RETURN ENTRY RDSIM0(NFILE,LD,NITER,NPARS) LDA=LD CALL FOPEN('Posterior simulation matrix',NFILE,.FALSE.) READ(NFILE,*,END=130,ERR=140)NITER,NPARS IF((NITER.LE.0).OR.(NPARS.LE.0))GO TO 150 IF(NPARS.GT.LD)GO TO 160 NPARSA=NPARS RETURN 110 WRITE(6,115)ITER 115 FORMAT(/,' *** UNEXPECTED END OF FILE AFTER ITERATION',I16,/, 1 ' INPUT SIMULATION FILE ') CALL TERM 120 WRITE(6,125)ITER 125 FORMAT(/,' *** READ ERROR AFTER ITERATION',I16,/, 1 ' INPUT SIMULATION FILE ') CALL TERM 130 WRITE(6,135) 135 FORMAT(/,' *** UNEXPECTED END OF FILE, FIRST RECORD OF',/, 1 ' INPUT SIMULATION FILE ') CALL TERM 140 WRITE(6,145) 145 FORMAT(/,' *** READ ERROR, FIRST RECORD OF',/, 1 ' INPUT SIMULATION FILE ') CALL TERM 150 WRITE(6,155)NITER,NPARS 155 FORMAT(/,' *** ILLEGAL FIRST RECORD OF INPUT SIMULATION FILE ', 1 /,2I16) CALL TERM 160 WRITE(6,165)NPARS,LD 165 FORMAT(/,' *** INPUT SIMULATION FILE ',/,I8, 1 ' PARAMETERS EXCEEDS LIMIT OF',I4) CALL TERM END SUBROUTINE WTSIM(NFILE,ITER,WPP,G) C Entry WTSIM: Write an iteration record on the previously opened C simulation output file on unit NFILE. C Inputs: C NFILE Unit number for file C ITER Iteration number written in first line C WPP(3) Log weight, log prior, log data p.d.f. written in 1st line C G(NPARS) Vector of simulated values written in succeeding lines C Entry WTSIM0: Write the first record on the previously opened C simulation output file on unit NFILE C Inputs: C NFILE Unit number for file C NITER Number of iterations C NPARS Number of parameters IMPLICIT REAL*8 (A-H,O-Z) COMMON/ATWSIM/NPARSA DIMENSION WPP(3),G(NPARSA) WRITE(NFILE,10)ITER,(WPP(J),J=1,3),(G(J),J=1,NPARSA) 10 FORMAT(I16,3(1PE16.7),/,(5(1PE16.7))) RETURN ENTRY WTSIM0(NFILE,NITER,NPARS) NPARSA=NPARS WRITE(NFILE,20)NITER,NPARS 20 FORMAT(2I16) RETURN END