netcdf pe_icon_out {
dimensions:
	tlat = 84 ;
	tlon = 53 ;
	vlat = 84 ;
	vlon = 53 ;
	level = 20 ;
	outlev = 20 ;
	vector = 2 ;
	time = UNLIMITED ; // (61 currently)
	axis2 = 2 ;
	axis3 = 3 ;
	tslev = 61 ;
	usrdim1 = 10 ;
	usrdim2 = 20 ;
	len24 = 24 ;
	len80 = 80 ;
variables:
	char titlrun(len80) ;
	char titlmdl(len80) ;
	char titleic(len80) ;
	char titlebc(len80) ;
	char runic(len24) ;
	int imt ;
		imt:long_name = "number of tracer points in the x-direction" ;
	int jmt ;
		jmt:long_name = "number of tracer points in the y-direction" ;
	int km ;
		km:long_name = "number of vertical levels" ;
	int nt ;
		nt:long_name = "number of tracer type variables" ;
	int lseg ;
		lseg:long_name = "maximum number of sets of Start and End indices" ;
	int misle ;
		misle:long_name = "maximum number of islands in the model basin" ;
	int lbc ;
		lbc:long_name = "number of arrays of slab incidental data" ;
	int nfirst ;
		nfirst:long_name = "start/restart switch" ;
		nfirst:option_0 = "restart" ;
		nfirst:option_1 = "start from scratch" ;
	int nlast ;
		nlast:long_name = "number of timesteps to calculate" ;
	int nnergy ;
		nnergy:long_name = "number of timesteps between energy diagnostics" ;
	int ntsout ;
		ntsout:long_name = "number of timesteps between output of data" ;
		ntsout:valid_min = 1 ;
	int ntsi ;
		ntsi:long_name = "number of timesteps between print of information" ;
		ntsi:valid_min = 1 ;
	int nmix ;
		nmix:long_name = "number of timesteps between mixing timesteps" ;
	int mxscan ;
		mxscan:long_name = "maximum number of iterations for relaxation" ;
	int mixvel ;
		mixvel:long_name = "momentum horizontal mixing scheme" ;
		mixvel:option_1 = "Shapiro filter" ;
		mixvel:option_2 = "Laplacian at constant depths" ;
		mixvel:option_3 = "Laplacian along terrain following levels" ;
	int mixtrc ;
		mixtrc:long_name = "tracers horizontal mixing scheme" ;
		mixtrc:option_1 = "Shapiro filter" ;
		mixtrc:option_2 = "Laplacian at constant depths" ;
		mixtrc:option_3 = "Laplacian along terrain following levels" ;
	int mixztd ;
		mixztd:long_name = "barotropic vorticity horizontal mixing scheme" ;
		mixztd:option_1 = "Shapiro filter" ;
		mixztd:option_2 = "Laplacian" ;
	float am ;
		am:long_name = "horizontal mixing of momentum" ;
		am:units = "centimeter2 second-1" ;
	float ah ;
		ah:long_name = "horizontal mixing of heat, salinity and tracers" ;
		ah:units = "centimeter2 second-1" ;
	float fkpm ;
		fkpm:long_name = "vertical mixing of momentum" ;
		fkpm:units = "centimeter2 second-1" ;
	float fkph ;
		fkph:long_name = "vertical mixing of heat, salinity and tracers" ;
		fkph:units = "centimeter2 second-1" ;
	int nordv ;
		nordv:long_name = "velocity: order of Shapiro filter" ;
		nordv:valid_min = 2 ;
	int ntimv ;
		ntimv:long_name = "velocity: number of Shapiro filter applications" ;
		ntimv:valid_min = 1 ;
	int nfrqv ;
		nfrqv:long_name = "velocity: timesteps between Shapiro filtering" ;
		nfrqv:valid_min = 0 ;
	int nordt ;
		nordt:long_name = "tracers: order of Shapiro filter" ;
		nordt:valid_min = 2 ;
	int ntimt ;
		ntimt:long_name = "tracers: number of Shapiro filter applications" ;
		ntimt:valid_min = 1 ;
	int nfrqt ;
		nfrqt:long_name = "tracers: timesteps between Shapiro filtering" ;
		nfrqt:valid_min = 0 ;
	int nordp ;
		nordp:long_name = "transport: order of Shapiro filter" ;
		nordp:valid_min = 2 ;
	int ntimp ;
		ntimp:long_name = "transport: number of Shapiro filter applications" ;
		ntimp:valid_min = 1 ;
	int nfrqp ;
		nfrqp:long_name = "transport: timesteps between Shapiro filtering" ;
		nfrqp:valid_min = 0 ;
	int nordz ;
		nordz:long_name = "vorticity: order of Shapiro filter" ;
		nordz:valid_min = 2 ;
	int ntimz ;
		ntimz:long_name = "vorticity: number of Shapiro filter applications" ;
		ntimz:valid_min = 1 ;
	int nfrqz ;
		nfrqz:long_name = "vorticity: timesteps between Shapiro filtering" ;
		nfrqz:valid_min = 0 ;
	float dtts ;
		dtts:long_name = "length of timestep on tracers" ;
		dtts:units = "seconds" ;
	float dtuv ;
		dtuv:long_name = "length of timestep on momentum" ;
		dtuv:units = "seconds" ;
	float dtsf ;
		dtsf:long_name = "length of timestep on transport streamfunction" ;
		dtsf:units = "seconds" ;
	float sor ;
		sor:long_name = "coefficient for over-relaxation" ;
		sor:valid_min = 1.f ;
		sor:valid_max = 2.f ;
	float crit ;
		crit:long_name = "RMS relaxation convergence criterion" ;
		crit:units = "percentage" ;
	float acor ;
		acor:long_name = "coefficient for implicit treatment of Coriolis term" ;
		acor:valid_min = 0.f ;
		acor:valid_max = 1.f ;
	int coord ;
		coord:long_name = "flag for type of horizontal grid" ;
		coord:option_0 = "cartesian (tangent plane) grid" ;
		coord:option_1 = "unrotated spherical grid" ;
		coord:option_2 = "rotated spherical grid" ;
	float rlngd ;
		rlngd:long_name = "transformation centroid longitude" ;
		rlngd:units = "degrees_east" ;
	float rlatd ;
		rlatd:long_name = "transformation centroid latitude" ;
		rlatd:units = "degrees_north" ;
	float delx ;
		delx:long_name = "domain longitudinal offset" ;
		delx:units = "degrees" ;
	float dely ;
		dely:long_name = "domain latitudinal offset" ;
		dely:units = "degrees" ;
	float thetad ;
		thetad:long_name = "domain rotation angle" ;
		thetad:units = "degrees" ;
	float rho0 ;
		rho0:long_name = "mean density of seawater" ;
		rho0:units = "kilogram meter-3" ;
	float smean ;
		smean:long_name = "mean salinity subtracted during computations" ;
		smean:units = "PSU" ;
	float zc1 ;
		zc1:long_name = "shallowest depth of the coordinate interface" ;
		zc1:units = "centimeter" ;
	float zc2 ;
		zc2:long_name = "deepest depth of the coordinate interface" ;
		zc2:units = "centimeter" ;
	float zref ;
		zref:long_name = "reference depth for coordinate interface" ;
		zref:units = "centimeter" ;
	float zslope ;
		zslope:long_name = "slope parameter of the coordinate interface" ;
	float dvbrlx ;
		dvbrlx:long_name = "V-grid boundary relaxation spatial scale" ;
		dvbrlx:units = "grid points" ;
		dvbrlx:shut_off = 0.f ;
	float tvbrlx ;
		tvbrlx:long_name = "V-grid boundary relaxation temporal scale" ;
		tvbrlx:units = "seconds" ;
		tvbrlx:shut_off = 0.f ;
	float dtbrlx ;
		dtbrlx:long_name = "T-grid boundary relaxation spatial scale" ;
		dtbrlx:units = "grid points" ;
		dtbrlx:shut_off = 0.f ;
	float ttbrlx ;
		ttbrlx:long_name = "T-grid boundary relaxation temporal scale" ;
		ttbrlx:units = "seconds" ;
		ttbrlx:shut_off = 0.f ;
	float dcsfrc ;
		dcsfrc:long_name = "Coastal friction spatial scale" ;
		dcsfrc:units = "grid points" ;
		dcsfrc:shut_off = 0.f ;
	float tcsfrc ;
		tcsfrc:long_name = "Coastal friction temporal scale" ;
		tcsfrc:units = "seconds" ;
		tcsfrc:shut_off = 0.f ;
	float dbtfrc ;
		dbtfrc:long_name = "Bottom friction spatial scale" ;
		dbtfrc:units = "model levels" ;
		dbtfrc:shut_off = 0.f ;
	float tbtfrc ;
		tbtfrc:long_name = "Bottom friction temporal scale" ;
		tbtfrc:units = "seconds" ;
		tbtfrc:shut_off = 0.f ;
	int iflag(usrdim1) ;
		iflag:long_name = "initialization flags" ;
	int iopt(usrdim1) ;
		iopt:long_name = "tunable options and switches" ;
	int iout(usrdim2) ;
		iout:long_name = "switches specifing which PE fields to write out" ;
	int outlev(outlev) ;
		outlev:long_name = "output vertical levels or depths" ;
		outlev:units = "meters, if value is greater than number of levels" ;
	float zclima(tslev) ;
		zclima:long_name = "depths of mean TS profile" ;
		zclima:units = "meter" ;
	float tclima(tslev) ;
		tclima:long_name = "mean temperature profile" ;
		tclima:units = "Celsius" ;
		tclima:field = "mean temperature, scalar" ;
		tclima:positions = "zclima" ;
	float sclima(tslev) ;
		sclima:long_name = "mean salinity profile" ;
		sclima:units = "PSU" ;
		sclima:field = "mean salinity, scalar" ;
		sclima:positions = "zclima" ;
	float refz(level) ;
		refz:long_name = "depths at center of the flat grid vertical boxes" ;
		refz:units = "meter" ;
	float hz(level) ;
		hz:long_name = "thicknesses of the flat grid vertical boxes" ;
		hz:units = "meter" ;
	float dxt(tlon) ;
		dxt:long_name = "zonal spacing between tracer points" ;
		dxt:units = "centimeter" ;
	float dyt(tlat) ;
		dyt:long_name = "meridional spacing between tracer points" ;
		dyt:units = "centimeter" ;
	float tbath(tlat, tlon) ;
		tbath:long_name = "bathymetry at tracer points" ;
		tbath:units = "meter" ;
		tbath:field = "bathymetry, scalar" ;
		tbath:positions = "tgrid2" ;
	int landt(tlat, tlon) ;
		landt:long_name = "land/sea mask at tracer points" ;
		landt:option_0 = "land" ;
		landt:option_1 = "sea" ;
		landt:field = "Tmask, scalar" ;
		landt:positions = "tgrid2" ;
	int landv(vlat, vlon) ;
		landv:long_name = "land/sea mask at velocity points" ;
		landv:option_0 = "land" ;
		landv:option_1 = "boundary" ;
		landv:option_2 = "sea" ;
		landv:field = "Vmask, scalar" ;
		landv:positions = "vgrid2" ;
	float tgrid2(tlat, tlon, axis2) ;
		tgrid2:long_name = "2D grid positions at tracer points" ;
		tgrid2:axis = "1: longitude, 2: latitude" ;
		tgrid2:units = "degrees_east, degrees_north" ;
	float vgrid2(vlat, vlon, axis2) ;
		vgrid2:long_name = "2D grid positions at velocity points" ;
		vgrid2:axis = "1: longitude, 2: latitude" ;
		vgrid2:units = "degrees_east, degrees_north" ;
	float tgrid3(tlat, tlon, outlev, axis3) ;
		tgrid3:long_name = "3D grid positions at tracer points" ;
		tgrid3:axis = "1: longitude, 2: latitude, 3: depth" ;
		tgrid3:units = "degrees_east, degrees_north, meter" ;
	float vgrid3(vlat, vlon, outlev, axis3) ;
		vgrid3:long_name = "3D grid positions at velocity points" ;
		vgrid3:axis = "1: longitude, 2: latitude, 3: depth" ;
		vgrid3:units = "degrees_east, degrees_north, meter" ;
	float wtgrid3(tlat, tlon, outlev, axis3) ;
		wtgrid3:long_name = "3D grid positions at W-tracer points" ;
		wtgrid3:axis = "1: longitude, 2: latitude, 3: depth" ;
		wtgrid3:units = "degrees_east, degrees_north, meter" ;
	float wvgrid3(vlat, vlon, outlev, axis3) ;
		wvgrid3:long_name = "3D grid positions at W-velocity points" ;
		wvgrid3:axis = "1: longitude, 2: latitude, 3: depth" ;
		wvgrid3:units = "degrees_east, degrees_north, meter" ;
	float dzt(tlat, tlon, level) ;
		dzt:long_name = "3D tracer box thicknesses" ;
		dzt:units = "meter" ;
	float dzv(vlat, vlon, level) ;
		dzv:long_name = "3D velocity box thicknesses" ;
		dzv:units = "meter" ;
	float time(time) ;
		time:long_name = "time since initialization" ;
		time:units = "seconds" ;
		time:field = "time, scalar, series" ;
	float pbar(time, tlat, tlon) ;
		pbar:long_name = "transport streamfunction" ;
		pbar:units = "centimeter3 second-1" ;
		pbar:field = "transport, scalar, series" ;
		pbar:positions = "tgrid2" ;
		pbar:_FillValue = 1.e+35f ;
		pbar:missing_value = 1.e+35f ;
	float vtot(time, vlat, vlon, outlev, vector) ;
		vtot:long_name = "total velocity" ;
		vtot:units = "centimeter second-1" ;
		vtot:field = "total velocity, vector, series" ;
		vtot:positions = "vgrid3" ;
		vtot:_FillValue = 1.e+35f ;
		vtot:missing_value = 1.e+35f ;
	float vclin(time, vlat, vlon, outlev, vector) ;
		vclin:long_name = "baroclinic velocity" ;
		vclin:units = "centimeter second-1" ;
		vclin:field = "baroclinic velocity, vector, series" ;
		vclin:positions = "vgrid3" ;
		vclin:_FillValue = 1.e+35f ;
		vclin:missing_value = 1.e+35f ;
	float wvsv(time, vlat, vlon, outlev) ;
		wvsv:long_name = "s-coordinate vertical velocity at WV-points" ;
		wvsv:units = "centimeter second-1" ;
		wvsv:field = "V_wvel s-coord, scalar, series" ;
		wvsv:positions = "wvgrid3" ;
		wvsv:_FillValue = 1.e+35f ;
		wvsv:missing_value = 1.e+35f ;
	float wvst(time, tlat, tlon, outlev) ;
		wvst:long_name = "s-coordinate vertical velocity at WT-points" ;
		wvst:units = "centimeter second-1" ;
		wvst:field = "T_wvel s-coord, scalar, series" ;
		wvst:positions = "wtgrid3" ;
		wvst:_FillValue = 1.e+35f ;
		wvst:missing_value = 1.e+35f ;
	float wvzv(time, vlat, vlon, outlev) ;
		wvzv:long_name = "vertical velocity at WV-points" ;
		wvzv:units = "centimeter second-1" ;
		wvzv:field = "V_wvel, scalar, series" ;
		wvzv:positions = "vgrid3" ;
		wvzv:_FillValue = 1.e+35f ;
		wvzv:missing_value = 1.e+35f ;
	float wvzt(time, tlat, tlon, outlev) ;
		wvzt:long_name = "vertical velocity at WT-points" ;
		wvzt:units = "centimeter second-1" ;
		wvzt:field = "T_wvel, scalar, series" ;
		wvzt:positions = "tgrid3" ;
		wvzt:_FillValue = 1.e+35f ;
		wvzt:missing_value = 1.e+35f ;
	float qbar(time, tlat, tlon) ;
		qbar:long_name = "time rate of change of barotropic vorticity" ;
		qbar:units = "second-1" ;
		qbar:field = "voticity, scalar, series" ;
		qbar:positions = "tgrid2" ;
		qbar:_FillValue = 1.e+35f ;
		qbar:missing_value = 1.e+35f ;
	float mld(time, tlat, tlon) ;
		mld:long_name = "mixed-layer depth" ;
		mld:units = "meter" ;
		mld:field = "mixed-layer, scalar, series" ;
		mld:positions = "vgrid2" ;
		mld:_FillValue = 1.e+35f ;
		mld:missing_value = 1.e+35f ;
	float temp(time, tlat, tlon, outlev) ;
		temp:long_name = "temperature" ;
		temp:units = "Celsius" ;
		temp:field = "temperature, scalar, series" ;
		temp:positions = "tgrid3" ;
		temp:_FillValue = 1.e+35f ;
		temp:missing_value = 1.e+35f ;
	float salt(time, tlat, tlon, outlev) ;
		salt:long_name = "salinity" ;
		salt:units = "PSU" ;
		salt:field = "salinity, scalar, series" ;
		salt:positions = "tgrid3" ;
		salt:_FillValue = 1.e+35f ;
		salt:missing_value = 1.e+35f ;

// global attributes:
		:title = "PE MODEL output fields" ;
		:out_file = "pe_icon_out.nc" ;
		:nrg_file = "pe_icon_nrg.nc" ;
		:inp_file = "/home/projects2/AOSN2/PE_initial/2003/Feb07/PJH03/pi_icon_ini.nc" ;
		:frc_file = "/home/projects2/AOSN2/PE_forcing/2003/Jan06/PJH01/pe_frc_AOSN2_med.nc" ;
		:ass_file = "/home/projects2/AOSN2/PE_initial/2003/Feb14/PJH03/pi_icon_cmboass.nc" ;
		:ass_parm = "oi.dat" ;
		:type = "PE MODEL" ;
		:version = "9.6" ;
		:history = "PE MODEL, Version 9.6, Friday - February 14, 2003 - 5:25:54 pm" ;
}