program Test_AG20 implicit none integer MAXN1, MAXPER parameter (MAXN1=1000, MAXPER=30) character*80 file1, file2, regName, dummy integer region(MAXN1), nPer, iPer, i, nScen, iPrint, iflag integer MSAS_flag(MAXN1), ACadjfac(MAXN1) real mag(MAXN1), evType(MAXN1), ZTOR(MAXN1), Rrup(MAXN1), vs30(MAXN1), 1 z25(MAXN1) real period(MAXPER) real rockPGA, period1, mu, tau, phi, sigma , specT, vs30_rock, 1 phiSS, sigmaSS, phi_S2S integer iBasin write (*,'( 2x,''Enter run file'')') read (*,'( a80)') file1 open (10,file=file1,status='old') read (10,'( a80)') file2 open (20,file=file2,status='unknown') read (10,'( a80)') file2 open (21,file=file2,status='unknown') read (10,'( a80)') file2 open (22,file=file2,status='unknown') c Read periods read (10,*) nPer write (*,'( i5)') nPer if ( nPer .gt. MAXPER ) then write (*,'( 2x,''reduce nPeriods to less than '',i5)') MAXPER stop 99 endif read (10,*,err=2001) (period(iPer),iPer=1,nPer) c Read scenario parameters read (10,*) nScen write (*,'( i5)') nScen read (10,'( a80)') dummy if ( nScen .gt. MAXN1 ) then write (*,'( 2x,''reduce nScenario to less than '',i5)') MAXN1 stop 99 endif do i=1,nScen read (10,*,err=2000) region(i), mag(i), evType(i), ZTOR(i), Rrup(i), 1 vs30(i), z25(i), MSAS_flag(i), ACadjfac(i) write (*,'( 2i5,f10.3)') i, region(i), mag(i) enddo c write header to output file write (20,1001) write (21,1002) write (22,1003) c Compute GMM do i=1,nScen rockPGA = 0. period1 = 0. iprint = 0 c compute median PGA for rock specT = 0.0 vs30_rock = 1000. iBasin = 0 call AG2020 ( mag(i), evType(i), rRup(i), vs30_rock, z25(i), ztor(i), region(i), 1 mu, sigma, phi, tau, rockPGA, specT, period1, iFlag, ACadjfac(i), 1 MSAS_flag(i), regName, sigmaSS, phiSS, phi_S2S, iBasin ) rockPGA = exp(mu) do iPer=1,nPer specT = period(iPer) iBasin = 1 call AG2020 ( mag(i), evType(i), rRup(i), vs30(i), z25(i), ztor(i), region(i), 1 mu, sigma, phi, tau, rockPGA, specT, period1, iFlag, ACadjfac(i), 1 MSAS_flag(i), regName, sigmaSS, phiSS, phi_S2S, iBasin ) write ( *,1000) region(i), mag(i), evType(i), ZTOR(i), Rrup(i), 1 vs30(i), z25(i), rockPGA, period(iPer), exp(mu), tau , phi, sigma 1 , phiSS, sigmaSS, phi_S2S, RegName write ( 20,1000) region(i), mag(i), evType(i), ZTOR(i), Rrup(i), 1 vs30(i), z25(i), rockPGA, period(iPer), exp(mu), tau , phi, sigma 1 , phiSS, sigmaSS, phi_S2S, RegName enddo enddo close (20) write (*,'( 2x,''normal termination'')') stop 1000 format (i5,f8.2,f8.0,4f8.2,2f9.4, f10.4, 6f8.3,2x,a20) 1001 format (2x,'Region Mag EvType ZTOR RRUP VS30 Z25 rockPGA', 1 ' period Median Tau Phi Sigma phiSS sigmaSS PhiS2S Region Name') 1002 format (2x,'Region Mag EvType ZTOR RRUP VS30 Z25 rockPGA', 1 ' period mu eq_3_1 f_mag f_ztor f_site f_slab*F f_basin ') 1003 format (1x,'Region RRUP VS30 rockPGA', 1 ' period tau_LIN phi1 phi2 phi3 phi_LIN ', 2 'PhiS2S phiSS_Lin phi_NL tau_NL sigma_NL phiSS_NL sigmaSS_NL partial ', 2 'A_phi2 f2_phi2 A_phi3 f2_phi3') 2000 write (*,'( 2x,''error in input line '',i5)') i goto 2100 2001 write (*,'( 2x,''Error in periods'')') goto 2100 2100 backspace (10) read (10,'( a80)') dummy write (*,'( a80)') dummy stop end