﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
902	VERY IMPORTANT: Updated I/O processing with the PIO library	arango		"In this update, several files were modified, so the PIO library works in applications with tidal and river forcing.

* The reading routines **nf_fread2d.F**, **nf_fread3d.F**, **nf_fread4d.F**, **nf_fread2d_bry.F**, and **nf_fread3d_bry.F** were updated to compute the checksum values in a compact way. For example, in **nf_fread3d.F**, we have:
 {{{
      IF (Lchecksum) THEN
        Npts=(Imax-Imin+1)*(Jmax-Jmin+1)*(UBk-LBk+1)
        IF (.not.associated(Cwrk)) allocate ( Cwrk(Npts) )
        Cwrk=PACK(Adat(Imin:Imax, Jmin:Jmax, LBk:UBk), .TRUE.)
        CALL get_hash (Cwrk, Npts, checksum, .TRUE.)
        IF (associated(Cwrk)) deallocate (Cwrk)
      END IF
}}}

* Corrected routine **pio_nfread2d** in **nf_fread2d.F** module to work processing fields that need regridding.

* Restructured **get_ngfld.F** and **get_ngfldr.F** to clearly distinguish when processing input arrays of rank 1, 2, and 3. The PIO library expects the **start** and **total** arguments to NetCDF reading with congruent ranks. In addition, those routines have a new logical variable argument, **recordless**, to distinguish when processing variables with time records or not:
 {{{
!
!  Tidal Period.
!
      IF (LprocessTides(ng)) THEN
        IF (iic(ng).eq.0) THEN
          CALL get_ngfld (ng, iNLM, idTper, TIDE(ng)%ncid,              &
# if defined PIO_LIB && defined DISTRIBUTE
     &                    TIDE(ng)%pioFile,                             &
# endif
     &                    1, TIDE(ng), recordless, update(1),           &
     &                    1, MTC, 1, 1, 1, NTC(ng), 1,                  &
     &                    TIDES(ng) % Tperiod)
          IF (FoundError(exit_flag, NoError, __LINE__, MyFile)) RETURN
        END IF
      END IF
#endif
}}}
 All the calls to **get_ngfld** in **get_data.F**, **rp_get_data.F**, and **tl_get_data.F** were updated.  Similarly, all the calls to **get_ngfldr** in **ad_get_data.F**.

 Many thanks to Dave Robertson for bringing this issue to my attention.
"	defect	closed	major	Release ROMS/TOMS 4.0	Nonlinear	3.9	Fixed		
