Scheduled Downtime
On Tuesday 24 October 2023 @ 5pm MT the forums will be in read only mode in preparation for the downtime. On Wednesday 25 October 2023 @ 5am MT, this website will be down for maintenance and expected to return online later in the morning.
Normal Operations
The forums are back online with normal operations. If you notice any issues or errors related to the forums, please reach out to help@ucar.edu

Problem with reading sst input data

Hi,
I am running a 35 year experiment with compset F.
I have 35 years' daily sst input data and 35 years' monthly sea-ice input data.
The time series of my sst file is [0, 0.75, 1.5, 2.5, 3.5, ..., 12773.5, 12774.5];
The time series of my sea-ice file is [0, 22, 44, 73.5, 104, 134.5, 165, 195.5, 226.5, 257, ..., 12636.5, 12667, 12697.5, 12728, 12758.5];
How should I specify "DOCN_SSTDATA_YEAR_START", "DOCN_SSTDATA_YEAR_END", "model_year_align", "model_year_start" and "model_year_end"?
I tried
DOCN_SSTDATA_YEAR_START=1
DOCN_SSTDATA_YEAR_END=35
model_year_align=1
model_year_start=1
model_year_end=35
But the model skipped the first 29 years of the input data and started reading from year 30. I also tried other combinations but they didn't work either. I don't know how this works.
Could anyone please help?
Thank you very much.
Jie
 

hannay

Cecile Hannay
AMWG Liaison
Staff member
Do you have 2 datasets (one for SST and one for ice) ?

You should have a single dataset and ice and sst that provide sst and ice at the same time.

Your dataset should have variables that have names and units compatible with what the model is expecting.


For instance:
netcdf sst_HadOIBl_bc_10x15_1850_2010_c110526 {
dimensions:
lon = 24 ;
lat = 19 ;
time = UNLIMITED ; // (1932 currently)
variables:
int date(time) ;
date:long_name = "current date (YYYYMMDD)" ;
int datesec(time) ;
datesec:long_name = "current seconds of current date" ;
double lon(lon) ;
lon:long_name = "longitude" ;
lon:units = "degrees_east" ;
double lat(lat) ;
lat:long_name = "latitude" ;
lat:units = "degrees_north" ;
double time(time) ;
time:units = "days since 1850-01-01 00:00:00" ;
time:calendar = "365_day" ;
float ice_cov(time, lat, lon) ;
ice_cov:long_name = "BCS Pseudo Sea-ice concentration" ;
ice_cov:units = "fraction" ;
float SST_cpl(time, lat, lon) ;
SST_cpl:long_name = "BCS Pseudo SST" ;
SST_cpl:units = "deg_C" ;
 
Thank you for replying hannay!
I have to use two datasets because my sst data and sea-ice data are of different time resolutions. sst is daily and sea-ice is monthly.
The model could actually read the two datasets. The problem is that the time series of the input data could not be aligned correctly with the model calender.

My sst file looks like this:
nc{'time'} = ncfloat('time'); %% 12776 elements.
nc{'time'}.long_name = ncchar(''time'');
nc{'time'}.units = ncchar(''days since 0001-01-01 00:00:00'');
nc{'time'}.calendar = ncchar(''noleap'');
nc{'lat'} = ncfloat('lat'); %% 182 elements.
nc{'lat'}.long_name = ncchar(''latitude'');
nc{'lat'}.units = ncchar(''degrees_north'');
nc{'lon'} = ncfloat('lon'); %% 362 elements.
nc{'lon'}.long_name = ncchar(''longitude'');
nc{'lon'}.units = ncchar(''degrees_east'');
nc{'mask'} = ncfloat('lat', 'lon'); %% 65884 elements.
nc{'mask'}.long_name = ncchar(''domain mask'');
nc{'mask'}.comment = ncchar(''0 value indicates cell is not in model domain'');
nc{'area'} = ncfloat('lat', 'lon'); %% 65884 elements.
nc{'area'}.long_name = ncchar(''area of grid cell'');
nc{'area'}.units = ncchar(''radians**2'');
nc{'sst'} = ncfloat('time', 'lat', 'lon'); %% 841733984 elements.
nc{'sst'}.units = ncchar(''degree_C'');
nc{'sst'}.long_name = ncchar(''sea surface temperature'');
nc{'sst'}.cell_method = ncchar(''time: mean'');
 
Top