Opened 12 years ago

Closed 12 years ago

#555 closed defect (Fixed)

Corrections due to F90/F95 strict compliance

Reported by: arango Owned by: arango
Priority: major Milestone: Release ROMS/TOMS 3.6
Component: Nonlinear Version: 3.6
Keywords: Cc:

Description

Corrected several routines to impose strict compliance of the F90/F95 standard. These error appear when using the following flags in the ifort compiler:

-g -check bounds -traceback -check uninit -warn interfaces,nouncalled -gen-interfaces

For example, we cannot pass a scalar argument to a routine is an array is expected. In read_phypar.F we need to have:

      integer :: Ivalue(1)

      ...

            CASE ('Ngrids')
              Npts=load_i(Nval, Rval, 1, Ivalue)
              Ngrids=Ivalue(1)

instead of

            CASE ('Ngrids')
              Npts=load_i(Nval, Rval, 1, Ngrids)

The load_* routines expect a vector in the output argument. So for processing scalars we need an array of size one.

Also, several routines including get_data.F, get_idata.F, set_data.F, and their TLM, RPM, and ADM versions were modified to strict compliance with the pointer arguments in the calling routines and dummy arguments in the generic NetCDF processing routines.

Many thanks to Mathieu Dutour-Sikiric and Aron Roland for pointing this to my attention.

Change History (1)

comment:1 by arango, 12 years ago

Resolution: Fixed
Status: newclosed
Note: See TracTickets for help on using tickets.