C REVIEW.FOR SUBROUTINE REVIEW( MREF, IBASE, MRH0, MRH1, FREQ ) DOUBLE PRECISION H0, H1, DZMAX, FREQ INTEGER MREF(*) COMMON /APM/ NSMPL, NSMDEF COMMON /G/ H0, H1 COMMON /LUNIT/ LUPLP, LUPLT, LUPRT COMMON /MESH/ DZH0, DZH1, INPDZ, FIXDZ COMMON /NORM/ N12221, N14241 COMMON /PARAM3/ IMESH, NMESH, MSHRAT, OPTMZ COMMON /PARAM4/ MESHI, MESHN 200 FORMAT(1X,//' *** WARNING FROM SUB REVIEW: ',/, & 5X,' TO MEET DEFAULT ACCURACY CRITERIA ON MODE AMPLITUDES ',/, & 5X,' WE CHOOSE TO USE THEM ON MESH No.',I2,'.',/, & 5X,' (Standard choice is on MESH No. 1).',/) C THIS CHECK IS APPLIED ONLY WHEN NONE OF THE RELEVANT "DEFAULT" PARAMETERS C HAS BEEN REDEFINED IN THE INPUT DATA FILE (See "CHANGING DEFAULT PARAMETERS" C in the manual for C-SNAP). IF( (MESHI .NE. 1) .OR. (MESHN .NE. 4) .OR. & (MSHRAT .NE. 0) .OR. (INPDZ .GT. 0) .OR. & (FIXDZ .GT. 0) .OR. (NSMPL .NE. NSMDEF) ) RETURN C MAXMSH= 12 C DZMAX IS MAXIMUM ACCEPTABLE VERTICAL GRID SIZE FOR ACCURACY CRITERIA. C THIS WILL GUARANTEE THAT NO SOURCE/RECEIVER DEPTH CAN BE MORE THAN C 1/6th OF A WAVELENGTH AWAY FROM A COMPUTED MODE AMPLITUDE VALUE. DZMAX= 1500.0/(3.0*FREQ) IF( H0 .GT. 0.0 ) THEN NPH0= ANINT(H0/DZMAX) IF(N14241 .EQ. 1) NPH0= NPH0 + MOD(NPH0,2) C WOULD ANY OF THE SPECIFIED MESHES SOLVE THE PROBLEM ? DO 2000 I= MESHI, MESHN IF( MRH0*MREF(IBASE + I-1) .GE. NPH0 ) GO TO 2600 2000 CONTINUE C NO MESH SATISFIES THE CRITERIA C WHAT SHOULD "MRH0" BE ON THE LAST MESH ? MRH0= NPH0/MREF(IBASE + MESHN -1) + 1 IF(MESHN .GT. 1) THEN MESHI= MESHN PRINT 200, MESHN END IF GO TO 2800 2600 CONTINUE IF( I .NE. MESHI ) THEN MESHI= I PRINT 200, MESHI END IF 2800 CONTINUE END IF IF( H1 .GT. 0.0 ) THEN NPH1= H1/DZMAX IF(N14241 .EQ. 1) NPH1= NPH1 + MOD(NPH1,2) C WOULD ANY OF THE SPECIFIED MESHES SOLVE THE PROBLEM ? DO 3000 I= MESHI, MESHN IF( MRH1*MREF(IBASE + I-1) .GE. NPH1 ) GO TO 3600 3000 CONTINUE C NO MESH SATISFIES THE CRITERIA C WHAT SHOULD "MRH1" BE ON THE LAST MESH ? MRH1= NPH1/MREF(IBASE + MESHN -1) + 1 IF(MESHN .GT. 1) THEN MESHI= MESHN PRINT 200, MESHI END IF GO TO 3800 3600 CONTINUE IF( I .NE. MESHI ) THEN MESHI= I PRINT 200, MESHI END IF 3800 CONTINUE END IF RETURN END