This archive contains answers to questions sent to Unidata support through mid-2025. Note that the archive is no longer being updated. We provide the archive for reference; many of the answers presented here remain technically correct, even if somewhat outdated. For the most up-to-date information on the use of NSF Unidata software and data services, please consult the Software Documentation first.
Hi John, > To: address@hidden > From: address@hidden (John Sheldon) > Subject: netCDF 2.4.3 prefill on Cray > Organization: Princeton/GFDL > Keywords: 199611160003.AA04557 In the above message you wrote: > I finally got around to testing out 2.4.3 on our Cray IEEE T90. > Unfortunately, I did not see any improvement in the speed of pre-fill. > > I'll paste my short test code at the end of this mail, but the bottom > line is that I can write the test file in 0.7 CP sec without prefill, > but it takes ~150 CP sec with prefill. There was no significant > difference between 2.4.2 and 2.4.3. (all this is with > NETCDF_FFIOSPEC=cachea:512:2 ) > > Am I missing something?? > > Thanks once again- > John P. Sheldon > address@hidden > > =============================================== > PROGRAM TIME_PREFILL > > C Test program to time netCDF "pre-filling" on Cray.... > C > C Modified 4/26/96 to demonstrate Cray problem with inconsistent > C precision in writing FLOAT's to attributes vs. data... > > #include "netcdf.inc" > > PARAMETER (NI=360, NJ=180, NK=40, NL=3) > DIMENSION ARR(NI,NJ,NK), ID_DIM(4), ISTART(4), ICOUNT(4) > > > SPVAL=1.E35 > > DO K=1,NK > DO J=1,NJ > DO I=1,NI > ARR(I,J,K) = SPVAL > ENDDO > ENDDO > ENDDO > > CALL NCPOPT(NCVERBOS+NCFATAL) > > NCID = NCCRE('time_prefill.nc', NCCLOB, IRET) > > ID_DIM(1) = NCDDEF(NCID, 'lon', NI, IRET) > ID_DIM(2) = NCDDEF(NCID, 'lat', NJ, IRET) > ID_DIM(3) = NCDDEF(NCID, 'sigma', NK, IRET) > ID_DIM(4) = NCDDEF(NCID, 'time', 0, IRET) > > IDV = NCVDEF(NCID, 'TEMP', NCFLOAT, 4, ID_DIM, IRET) > > CALL NCAPT(NCID, IDV, 'missing_value', NCFLOAT, 1, SPVAL,IRET) > > c IFMODE = NCSFIL (NCID, NCNOFILL, IRET) > IFMODE = NCSFIL (NCID, NCFILL, IRET) > > CALL NCENDF(NCID, IRET) > > ISTART(1)=1 > ISTART(2)=1 > ISTART(3)=1 > ICOUNT(1)=NI > ICOUNT(2)=NJ > ICOUNT(3)=NK > ICOUNT(4)=1 > > DO L=1,NL > PRINT *,'Writing out time level ',L > ISTART(4)=L > CALL NCVPT(NCID, 1, ISTART, ICOUNT, ARR, IRET) > ENDDO > > CALL NCCLOS(NCID) > > END If I understand correctly, you're wondering why it takes only 0.7 CP seconds to "manually" write the entire netCDF dataset, but 150 CP seconds when pre-fill is enabled. At the moment, I don't know. I'll discuss it with Glenn Davis, however, and get back to you. -------- Steve Emmerson <address@hidden>