﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
781	Miscelaneous Update	arango		"This update includes several improvements to ROMS code:

* Several ROMS array allocation routines are called from '''read_phypar''' after several of the dimension parameters values are known after processed from the standard input script '''ocean.in'''.  It has come to my attention that some users repeat such important parameters (like '''Ngrids''' and '''NtileJ''') without commenting on (!) the previous assignment. The entries in '''ocean.in'''  can  be repeated, but the user needs to be aware the ROMS read each value and retains the last value processed.  Anyway, a safeguard is coded in the following routines located in their associated modules:
 * '''allocate_param''' ('''mod_param.F''')
 * '''allocate_parallel''' ('''mod_parallel.F''')
 * '''allocate_iounits''' ('''mod_iounits.F''')
 * '''allocate_stepping''' ('''mod_stepping.F''')
 * '''allocate_fourdvar''' ('''mod_fourdvar.F''')
 * '''allocate_scalars''' ('''mod_scalars.F''')
 * '''allocate_ncparam''' ('''mod_ncparam.F''')

 to suppress allocation errors because variables were already allocated.   Each variable in the above modules are tested for allocation:
{{{
      IF (.not.allocated(VAR)) THEN
        allocate ( VAR(...) )
      END IF
}}}
 Warning: If the entries for '''Ngrids''' and '''NtileJ''' are repeated, ROMS will use the first processed value to allocate variables in the above modules.  Therefore, the user needs to be careful when setting their values in '''ocean.in'''.

* Routine '''read_phypar.F''' now use the '''I0''' formatted statement for an nteger in a couple of places:

{{{
  70  FORMAT (/,' Resolution, Grid ',i2.2,': ',i0,'x',i0,'x',i0,        &
     &        ',',2x,'Parallel Nodes: ',i0,',',2x,'Tiling: ',i0,        &
     &        'x',i0)

  90  FORMAT (/,' Resolution, Grid ',i2.2,': ',i0,'x',i0,'x',i0,        &
     &        ',',2x,'Parallel Threads: ',i0,',',2x,'Tiling: ',i0,      &
     &        'x',i0)
}}}
 to avoid overflow error in the integer format. The '''Iw.m''' descriptor with '''w=0''' is allowed in the '''Fortran 2003 Standard''', and it is supported by all modern compilers. '''The I0.m edit descriptor produces a reult with at leas m digits, and as many more digits as are necessary to represent th integer value'''.

* Increased the integer format in '''timers.F''' to avoid overflow of large integers in the number of CPUs used:

{{{
  10       FORMAT (a,i5,a,f12.3)
}}}

* The Proleptic Calendar attribute is renamed in '''dateclock.F''' to it is standard CF compliance value so it can be used by third-party software:
{{{
        calendar='proleptic_gregorian'
}}}
 Many thanks to Ivica Janekovic for [https://www.myroms.org/forum/viewtopic.php?f=19&t=4865&p=18891&hilit=dateclock#p18891 bringing] it to my attention."	upgrade	closed	major	Release ROMS/TOMS 3.7	Nonlinear	3.7	Done		
