Table Of Contents

This Page

Troubleshooting with ROMS

ERROR: Abnormal termination: NetCDF INPUT


I used your hiig.h and from /home/natarov/hioos/nlm-hycom/, compile the code in serial and run it for 10 days (1920 time steps), starting from the time step 00280513 (which seems to be taken from your initial condition files that I also use):

NL ROMS/TOMS: started time-stepping: (Grid: 01 TimeSteps: 00280513 - 00282433)

Attached is the log file. I do not get any output files (history or average). Instead, I am getting the following error at the end of the log:

/ROMS/TOMS - Input error ............. exit_flag:   2

ERROR: Abnormal termination: NetCDF INPUT.
REASON: No error

This might be a common error easy to fix. Any idea?




The problem occurs because your run starts on day 2922 and the data in the forcing files don’t have data for this file (see lines 579 and below in the eddies.log file). This happened because the file that your are using is for 2009. I forgot to mention it to you. I am going to set up a correct initialization file for you some time after the servers come back up and walk you through the procedure tomorrow. Cheers and sorry about the confusion,


Pb in reading meta grid data like theta_s, theta_b, etc


a history file typically contains the meta grid data: theta_s, theta_b, etc. This is the case in yours and in my recent run. However, when I read the history file to extract the value of theta_s, I obtain not a scalar but a ‘ncvar’ object:

grid.theta_s = his_fid{'theta_s'}

NetCDF_Variable: 'theta_s'
           itsType: 'double'
     itsDimensions: ''
        itsLengths: [1x0 double]
    itsOrientation: [1x0 double]
           itsVars: {}
        itsSrcsubs: {}
      itsDstsubs: {}
      nAttributes: 1
  itIsAutoscaling: 0
  itIsAutoNaNing: 0
      itIsUnsigned: 0
         itIsQuick: 0

Any idea on how to get the actual data?


PS: In Brian’s routine grid_read.m, the reading of theta_s from a history file is made different than in the above:

if (nc_isvar(file,'theta_s'))
   grid.theta_s = nc_varget(file, 'theta_s');

I used a different version because my version of MATLAB does not have all these netcdf routines nc_isvar.m, nc_varget.m, etc, but I have the feeling I would run into the same problem if I was using these. I may be wrong.

nc_varget.m works.

Working qith a closed domain


the run with the topography being flattened and no mask for continents seems to blow up. This may be not surprising given that I did not change the (your) boundary conditions and these may carry some information on topography that may be inconsistent with the topography of the grid file. To test that –and in the same time to gain confidence in the model by playing with it–, I would like to run the model with closed boundaries. Question: Is there a switch that I can turn on/off to do that –I cannot find it? Or do I have to apply manually a mask for continents all along the edges of the domain in the grid file –and in that case, the model will not care of any input relative to boundary conditions?

Thanks again for the information.



To make close boundaries you need to specify in your *.h file: