PROGRAM JPVAX07 C*****GENERATE JOB FILE LIST OF PARAMETER NAMES, INITIAL VALUES, AND C PERTURBATION STANDARD DEVIATION FOR RPVAX07 FROM DATA FILE DPVAX07 C.....FILE DPVAX07 IS DATA FOR RETROSPECTIVE ANALYSIS BY RPVAX07 C FIRST 4 FIELDS, WHICH WILL BE READ BY RPVAX07, ARE C (1) LOG CENSUS POINT ESTIMATE C CODED AS -99 FOR NO CENSUS THAT TIME STEP C (2) LOG SPACE ERROR STD DEV OF POINT ESTIMATE C CODED AS -99 FOR NO CENSUS THAT TIME STEP C (3) MODE OF NORMAL PRIOR ON POPULATION SIZE IN C THAT TIME STEP (ORIGINAL SPACE) C (4) STD DEV OF NORMAL PRIOR ON POPULATION SIZE IN C THAT TIME STEP (ORIGINAL SPACE), IGNORING THE TRUNCATION AT 0 C.....NOTATION C NDT NUMBER OF DATA RECORDS C SP PERTURBATION STANDARD DEVIATION FOR POPULATION SIZE C ERBSP PERTURBATION STANDARD DEVIATION FOR MEAN EXPONENTIAL RATE C ERSSP PERTURBATION STANDARD DEVIATION FOR STD OF EXPONENTIAL RATE C.....DYNAMICS C ER MEAN EXPONENTIAL GROWTH RATE C SR STD DEV OF NORMAL DISTRIBUTION OF EXPONENTIAL GROWTH RATE C.....STATE C EN POPULATION SIZE C AN LOG POPULATION SIZE C.....OBSERVATIONS C AX LOG CENSUS POINT ESTIMATE, UNBIASED IN THE LOG SPACE C X CENSUS POINT ESTIMATE IN ORIGINAL SPACE C***** C VERSION OF APR 24, 2011 C***** DIMENSION XV(500),SMXV(500) C.....SET DEVICES, INPUT DATA FILE AND OUTPUT FILE LUNS=6 LUNF=7 LUND=8 OPEN (LUND,FILE='DPVAX07.DAT') OPEN (LUNF,FILE='JPVAX07.OUT') C.....SPECIFICATIONS NDT=25 C.....READ DATA LOG CENSUS POINT ESTIMATE INTO VECTOR, C CONVERTING TO ORIGINAL SPACE C..... DO 1010 I=1,NDT READ (LUND,*) AX XV(I)=EXP(AX) 1010 CONTINUE C.....FORM VECTOR OF 3-POINT MOVING AVERAGES SMXV(1)=XV(1) SMXV(NDT)=XV(NDT) NM1=NDT-1 DO 1060 I=2,NM1 IM=I-1 IP=I+1 BAR=0.0 K=0 DO 1030 L=IM,IP X=XV(L) IF (X) 1030,1030,1020 1020 K=K+1 BAR=BAR+X 1030 CONTINUE IF (K) 9999,1050,1040 1040 FLK=FLOAT(K) SMXV(I)=BAR/FLK GO TO 1060 1050 SMXV(I)=-99.9 1060 CONTINUE C.....INTERPOLATE ANY GAPS BFL=SMXV(1) DO 1110 I=1,NM1 SMX=SMXV(I) IF (SMX) 1070,1070,1090 1070 DO 1090 J=I,NDT SMXJ=SMXV(J) IF (SMXJ) 1090,1090,1080 1080 BFN=SMXJ GO TO 1100 1090 CONTINUE 1100 SMXV(I)=(BFL+BFN)/2.0 1110 CONTINUE C.....INITIALIZE CUMULATORS ERBAR=0.0 ERVAR=0.0 XRBAR=0.0 XRVAR=0.0 C.....MOMENTS OF ER, TREATING SMOOTHED SERIES AS TRUE POPULATION DO 1120 I=1,NM1 SMX=SMXV(I) X=XV(I) SMXN=SMXV(I+1) ER=ALOG(SMXN/SMX) ERBAR=ERBAR+ER ERVAR=ERVAR+ER*ER XR=X-SMX XRBAR=XRBAR+XR XRVAR=XRVAR+XR*XR 1120 CONTINUE SMX=SMXV(NDT) X=XV(NDT) XR=X-SMX XRBAR=XRBAR+XR XRVAR=XRVAR+XR*XR C.....NORMALIZE FNM=FLOAT(NM1) ERBAR=ERBAR/FNM ERVAR=ERVAR/FNM-ERBAR*ERBAR ERSTD=SQRT(ERVAR) FN=FLOAT(NDT) XRBAR=XRBAR/FN XRVAR=XRVAR/FN-XRBAR*XRBAR XRSTD=SQRT(XRVAR) C.....SET PERTURBATION STANDARD DEVIATIONS SP=5.0 ERBSP=ERBAR/10.0 ERSSP=ERSTD/10.0 C.....WRITE JOB FILE FRAGMENTS ND1=NDT+1 ND2=NDT+2 IF (NDT-10) 1130,1160,1160 1130 DO 1140 I=1,NDT WRITE (LUNS,9010) I,I WRITE (LUNF,9010) I,I 9010 FORMAT (2X,I2,':{ N0',I1,66X,'} :') 1140 CONTINUE WRITE (LUNS,9020) ND1 WRITE (LUNF,9020) ND1 9020 FORMAT (2X,I2,':{ MEAN R',63X,'} :') WRITE (LUNS,9030) ND2 WRITE (LUNF,9030) ND2 9030 FORMAT (2X,I2,':{ STD R',64X,'} :') DO 1150 I=1,NDT WRITE (LUNS,9040) I,I,SMXV(I),SP WRITE (LUNF,9040) I,I,SMXV(I),SP 9040 FORMAT (2X,I2,':|{ N0',I1,4X,'}|{',1P,E9.3,'}|{',E9.3, * '}|{ }|{ }|{ }|{ }|{ }:') 1150 CONTINUE WRITE (LUNS,9050) ND1,ERBAR,ERBSP WRITE (LUNF,9050) ND1,ERBAR,ERBSP 9050 FORMAT (2X,I2,':|{ MEAN R }|{',1P,E9.3,'}|{',E9.3, * '}|{ }|{ }|{ }|{ }|{ }:') WRITE (LUNS,9060) ND2,ERSTD,ERSSP WRITE (LUNF,9060) ND2,ERSTD,ERSSP 9060 FORMAT (2X,I2,':|{ STD R }|{',1P,E9.3,'}|{',E9.3, * '}|{ }|{ }|{ }|{ }|{ }:') GO TO 9999 1160 DO 1170 I=1,9 WRITE (LUNS,9010) I,I WRITE (LUNF,9010) I,I 1170 CONTINUE DO 1180 I=10,NDT WRITE (LUNS,9070) I,I WRITE (LUNF,9070) I,I 9070 FORMAT (2X,I2,':{ N',I2,66X,'} :') 1180 CONTINUE WRITE (LUNS,9020) ND1 WRITE (LUNF,9020) ND1 WRITE (LUNS,9030) ND2 WRITE (LUNF,9030) ND2 DO 1190 I=1,9 WRITE (LUNS,9040) I,I,SMXV(I),SP WRITE (LUNF,9040) I,I,SMXV(I),SP 1190 CONTINUE DO 1200 I=10,NDT WRITE (LUNS,9080) I,I,SMXV(I),SP WRITE (LUNF,9080) I,I,SMXV(I),SP 9080 FORMAT (2X,I2,':|{ N',I2,4X,'}|{',1P,E9.3,'}|{',E9.3, * '}|{ }|{ }|{ }|{ }|{ }:') 1200 CONTINUE WRITE (LUNS,9050) ND1,ERBAR,ERBSP WRITE (LUNF,9050) ND1,ERBAR,ERBSP WRITE (LUNS,9060) ND2,ERSTD,ERSSP WRITE (LUNF,9060) ND2,ERSTD,ERSSP C.....PROGRAM COMPLETE 9999 STOP END