Oh, and the old-tech issues aren't just NASA. Every government agency that buys equipment spec'd by an agency via low-bidder contract has this problem to some extent.
It can take several years to agree on a spec, then another year to write the contract and solicit bids, and more time to get the funds allotted. By the time bids are taken and the equipment delivered, the equipment is often obsolete, particularly when it is high-tech stuff with a rapid generational change.
IIRC there are a fair number of government employees who are hired or kept on solely because they know cobol and other dead computer languages. Your high school Latin teacher would be proud.
Stiles said:
IIRC there are a fair number of government employees who are hired or kept on solely because they know cobol and other dead computer languages. Your high school Latin teacher would be proud.
Old programming languages never die. At least not as long as they're in such widespread use as COBOL.
Stiles said:
IIRC there are a fair number of government employees who are hired or kept on solely because they know cobol and other dead computer languages. Your high school Latin teacher would be proud.
Old programming languages never die. At least not as long as they're in such widespread use as COBOL.
c-----------------------------------------------------------------------
c
c readnet.f
c This file is a fortran template file designed to read the given
c netCDF file into memory.
c
c History:
c Date Name Action
c --------- ------------ --------------------------------------------
c ?? ??? ?? cids Created.
c
c-----------------------------------------------------------------------
c Do not forget to include the -I path_to_netcdf_includes in your
c compile statement
c Required includes.
include 'netcdf.inc'
c Define Variables.
c Variable ids run sequentially from 1 to nvars = 07
parameter (nvars = 7) ! number of variables
parameter (nrec= 8760) ! change this 'to generalize
parameter (ndims = 2) ! number of dimensions
parameter (primary_dimension = 8760)
parameter (position_dimension = 1)
integer*4 rcode ! error code
integer*4 recdim ! record dimension
real*4 sea_level(nrec)
character*1 sea_level_quality_flag(nrec)
real*4 woce_time_of_day(nrec)
character*1 woce_time_of_day_quality_flag(nrec)
real*8 woce_date(nrec)
real*4 latitude(position_dimension
+
+ )
real*4 longitude(position_dimension
+
+ )
integer*4 start(ndims) ! hyperslab starting index
integer*4 count(ndims) ! hyperslab count from start
integer vdims(ndims) ! max # of var dims
character*1024 strbuf ! string buffer for var
! and attr names
c Open netCDF file.
ncid=ncopn('b0033379.cdf',ncnowrit,rcode)
c Get info on the record dimension for this file.
call ncinq(ncid,ndims,nvars,ngatts,recdim,rcode)
call ncdinq(ncid,recdim,strbuf,nrecs,rcode)
c nrecs now contains the # of records for this file
c Retrieve data for sea_level variable.
call ncvinq(ncid, 1,strbuf,nctype,nvdim,vdims,nvatts,rcode)
lenstr=1
do j=1,nvdim
call ncdinq(ncid,vdims(j),strbuf,ndsize,rcode)
lenstr=lenstr*ndsize
start(j)=1
count(j)=ndsize
end do
call ncvgt(ncid, 1,start,count,sea_level,rcode)
c Retrieve data for sea_level_quality_flag variable.
call ncvinq(ncid, 2,strbuf,nctype,nvdim,vdims,nvatts,rcode)
lenstr=1
do j=1,nvdim
call ncdinq(ncid,vdims(j),strbuf,ndsize,rcode)
lenstr=lenstr*ndsize
start(j)=1
count(j)=ndsize
end do
call ncvgtc(ncid, 2,start,count,sea_level_quality_flag,lenstr,rc
+ode)
c Retrieve data for woce_time_of_day variable.
call ncvinq(ncid, 3,strbuf,nctype,nvdim,vdims,nvatts,rcode)
lenstr=1
do j=1,nvdim
call ncdinq(ncid,vdims(j),strbuf,ndsize,rcode)
lenstr=lenstr*ndsize
start(j)=1
count(j)=ndsize
end do
call ncvgt(ncid, 3,start,count,woce_time_of_day,rcode)
c Retrieve data for woce_time_of_day_quality_flag variable.
call ncvinq(ncid, 4,strbuf,nctype,nvdim,vdims,nvatts,rcode)
lenstr=1
do j=1,nvdim
call ncdinq(ncid,vdims(j),strbuf,ndsize,rcode)
lenstr=lenstr*ndsize
start(j)=1
count(j)=ndsize
end do
call ncvgtc(ncid, 4,start,count,woce_time_of_day_quality_flag,le
+nstr,rcode)
c Retrieve data for woce_date variable.
call ncvinq(ncid, 5,strbuf,nctype,nvdim,vdims,nvatts,rcode)
lenstr=1
do j=1,nvdim
call ncdinq(ncid,vdims(j),strbuf,ndsize,rcode)
lenstr=lenstr*ndsize
start(j)=1
count(j)=ndsize
end do
call ncvgt(ncid, 5,start,count,woce_date,rcode)
c Retrieve data for latitude variable.
call ncvinq(ncid, 6,strbuf,nctype,nvdim,vdims,nvatts,rcode)
lenstr=1
do j=1,nvdim
call ncdinq(ncid,vdims(j),strbuf,ndsize,rcode)
lenstr=lenstr*ndsize
start(j)=1
count(j)=ndsize
end do
call ncvgt(ncid, 6,start,count,latitude,rcode)
c Retrieve data for longitude variable.
call ncvinq(ncid, 7,strbuf,nctype,nvdim,vdims,nvatts,rcode)
lenstr=1
do j=1,nvdim
call ncdinq(ncid,vdims(j),strbuf,ndsize,rcode)
lenstr=lenstr*ndsize
start(j)=1
count(j)=ndsize
end do
call ncvgt(ncid, 7,start,count,longitude,rcode)
Stiles
Oakland, CA
November 2002
NOV 19, 2008 05:14 PM