c 26_JANUARY_2004 c c AUTHOR: Viktor Gouretski c BSH, Hamburg c program read_allpar_climatology c this program reads gridded file of the WOCE GLOBAL HYDROGRAPHIC CLIMATOLOGY character*80 filein real*4 par(13,100),error(5,100) real*4 var(6,100) integer*4 levels(6,100) ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc parameter( xmin=0.,xmax=359.5,ymin=-80.,ymax=90.,dxy=.5) real t(720,341,50) integer jjj character*(150) str, bstr c/ nbrlev - number of gridded levels c/ radbub - radius of the influence bubble (km) c/ radcor - decorrelation length scale (km) c/ depthml - mixed layer depth (m) write(6,*)'input grid-file' read(5,80)filein open(20,file=filein,status='old') do i=1,150 bstr(i:i) = ' ' enddo 80 format(a80) 3033 format(i2,1x,3f6.0) 5030 format(2f6.1,3f6.0,3f10.6, *f8.3,f8.2,2f8.3, *5f5.2,5i4, *6f8.3,4f10.6) do 1 i=1,720 ! start longitude loop do 11 j=1,341 ! start latitude loop read(20,3033,end=2,err=2) *nbrlev,radbub,radcor,depthml do k=1,nbrlev ! start standard level loop read(20,5030)xgrid,ygrid,etdep, *(par(ipa,k),ipa=1,9), *(error(ipa,k),ipa=1,5), *(levels(ipa,k),ipa=1,5), *(var(ipa,k),ipa=1,6), *(par(ipa,k),ipa=10,13) ipos=(xgrid-xmin)/dxy +1 jpos=(ygrid-ymin)/dxy +1 CEH3 write(6,*)i,j,k,xgrid,ygrid,etdep,par(1,k) str(1:150) = bstr(1:150) write(str,*) i,j,k,xgrid,ygrid,etdep, & (par(jjj,k),jjj=1,9) write(10,'(a)') str IF (nbrlev .EQ. 45) THEN write(*,*) k, par(1,k) ENDIF end do c xgrid - grid-node longitude (from 0 to 359.5E) c ygrid - grid-node latitude (from -80S to 90N) c etdep - grid-node ETOPO5 depth (m) c par(1,k) - depth (m) of the k-th level c par(2,k) - pressure (dbar) c par(3,k) - t_in-situ c par(4,k) - theta c par(5,k) - salinity c par(6,k) - oxygen (ml/l) c par(7,k) - silicate (umol/kg) c par(8,k) - nitrate (umol/kg) c par(9,k) - phosphate (umol/kg) c par(10,k) - gamma-n c par(11,k) - sig-0 c par(12,k) - sig-2 c par(13,k) - sig-4 c error(1,k) - relative optimum interpolation error for T, Theta & S c error(2,k) - relative optimum interpolation error for Oxygen c error(3,k) - relative optimum interpolation error for Silicate c error(4,k) - relative optimum interpolation error for Nitrate c error(5,k) - relative optimum interpolation error for Phosphate c levels(1,k) - actual number of observations used for the optimal interpolation of T, Theta & S c levels(2,k) - actual number of observations used for the optimal interpolation of Oxygen c levels(3,k) - actual number of observations used for the optimal interpolation of Silicate c levels(4,k) - actual number of observations used for the optimal interpolation of Nitarte c levels(5,k) - actual number of observations used for the optimal interpolation of Phosphate c var(1,k) - temperature standard deviation from the mean (within the influence radius = radcor) c var(2,k) - salinity standard deviation from the mean (within the influence radius = radcor) c var(3,k) - oxygen standard deviation from the mean (within the influence radius = radcor) c var(4,k) - silicate standard deviation from the mean (within the influence radius = radcor) c var(5,k) - nitrate standard deviation from the mean (within the influence radius = radcor) c var(6,k) - phosphate standard deviation from the mean (within the influence radius = radcor) 11 continue !j-loop write(6,*) 'meridian has been read: i=',i,' xgrid=',xgrid 1 continue !i-loop 2 stop end