#ifndef BMSD_DEFS
#define BMSD_DEFS
// is defined in MeteoToolsDefs.h
// #define USHORT unsigned short
// #define UBYTE unsigned char
#pragma pack(1)
#include <afxtempl.h>

/////////////////////////////////////////////////////////
// BMSD = Bonito Meteo Server Data
// more info find you on www.meteoserver.det/devolpment
/////////////////////////////////////////////////////////

//the whole world coordinates 
//360 x 181 ... note: from top to bottom is everytime plus one
#define WRL_L 	-10800 	// 180W 
#define WRL_R 	 10800 	// 180E in reality 10740 (179E), because 180W is also equal to 180E
#define WRL_T 	-5400 	// 90N 
#define WRL_B 	 5400 	// 90S 
#define WRL_RES  60 	// 1°

//81 x 61 ... note: from top to bottom is everytime plus one
// and ...... the last one, if not the whole world ... europe is not a globe
#define EUR_L 	-2400 	// 40W 
#define EUR_R 	 2400 	// 40E 
#define EUR_T 	-4800 	// 80N 
#define EUR_B 	-1200 	// 20N 
#define EUR_RES  60 	// 1°

//121 x 71 E-USA,CAN Caribian, Atlantic and W-Europa
#define MID_L  	-6000 	// 100W 
#define MID_R    1200 	// 20E 
#define MID_T   -4800 	// 80N 
#define MID_B   -600 	// 10N 
#define MID_RES  60 	// 1° 

//101 x 91 USA,CAN Caribian and Atlantic...
#define USA_L 	-8400 	// 140W 
#define USA_R 	-2400 	// 40W 
#define USA_T 	-4800	// 80N 
#define USA_B 	 600 	// 10S 
#define USA_RES  60 	// 1°

//101 x 91 INDIAN OCEAN...
#define IND_L 	 1200 	// 20E 
#define IND_R 	 7200 	// 120E 
#define IND_T 	-1800 	// 30N 
#define IND_B 	 3600 	// 60S 
#define IND_RES  60 	// 1°

//101 x 81 JAPAN,CHINA,INDONESIA,N-AUSTRALIA...
#define EST_L 	 4800 	// 80E 
#define EST_R 	 10800 	// 180E 
#define EST_T 	-3600 	// 60N 
#define EST_B 	 1200 	// 20S 
#define EST_RES  60 	// 1°

//80 x 111 AFRICA, INDIAN OCEAN... 
#define AFR_L 	-1200 	// 20W 
#define AFR_R 	 3600 	// 60E 
#define AFR_T 	-2400 	// 40N 
#define AFR_B 	 3600 	// 60S 
#define AFR_RES  60 	// 1°

//101 x 81 AUSTRALIA, INDONESIA...
#define AUS_L 	 4800 	// 80E 
#define AUS_R 	 10800 	// 180E 
#define AUS_T 	-1200 	// 20N 
#define AUS_B 	 3600 	// 60S 
#define AUS_RES  60 	// 1°

#define REG_USR 0
#define REG_WRL 1
#define REG_EUR 2
#define REG_MID 3
#define REG_USA 4
#define REG_EST 5
#define REG_AFR 6
#define REG_IND 7
#define REG_AUS 8

#define MAX_REG 8

/*
/////////////////////////////////////////////////////////
//file system syntax

YYMMDDHHMMhhhname.ext
^^--^^--^^---^^^^.^^^
{
YY = year
MM = month
DD = day
HH = hour = t = forcast basis time 00:00, 06:00, 12:00, 18:00
MM = minute
hhh= part of forcast hours 000-180-384

p.e. 2004 7.Dec 06:00 forcast for part 99 hours
= 0412070600099BMSD_SEA.zip 

if hhh == minus (-72 .... -03) then is this a anlyse of the last days / hours course-end
the analysis was completed with synop data
p.e. the weather, 72 hours before the 2004 16.Dec 18:00
= 0412161800-72BMSD_SFC.dat =
}

name.ext - curred file names, we have in use
---------------------------------------------

.zip = compressed data file (pkzip)

//gfs orignal 

....GFSSFC.dat = the whole world data set of BMSD_SFC struct grid resulution = 1° x 1° 
....GFSSEA.dat = the whole world data set of BMSD_SEA struct grid resulution = 1° x 1°25 
....GFSSFC_EUR.dat = europe data set of BMSD_SFC struct grid resulution = 1° x 1° 
....GFSSEA_EUR.dat = europe data set of BMSD_SEA struct grid resulution = 1° x 1°25 

//the bonitistic geometry model BGM
//(see -> germany 1976, 1987, 2002, 2004 "theoretische Physik - Peter Walter")

....BMSD_WRL.dat = the whole world data set of BMSD_SFC+BMSD_SEA struct grid resulution = .°25° x .25° 
....BMSD_EUR.dat = europe data set of BMSD_SFC+BMSD_SEA struct grid resulution = .°25° x .25° 
....BMSD_WST.dat = WEST_.... data set of BMSD_SFC+BMSD_SEA struct grid resulution = .°25° x .25° 
....BMSD_EST.dat = EAST_.... data set of BMSD_SFC+BMSD_SEA struct grid resulution = .°25° x .25° 
*/


/////////////////////////////////////////////////////////
//flags for type of precipitation and land and ice cover

#define FRC_ICEC 	1
#define FRC_RAIN 	2
#define FRC_FRZR 	4
#define FRC_ICEP 	8 
#define FRC_SNOW 	16 
#define FRC_LAND 	32 	//synop wind is valid

#define FRC_VALID 	128 	//data is valid


//////////////////////////////////////////////
//ValidFalgs indicate the valid surface data

#define BMS_PRMSL 	(0x00000001) // 0:pressure 
#define BMS_TMP 	(0x00000002) // 1:temperature (2m level)
#define BMS_WIND 	(0x00000004) // 2:wind
#define BMS_WDIR 	(0x00000008) // 3:wind direction
#define BMS_TCDC 	(0x00000010) // 4:convective clouds
#define BMS_APCP 	(0x00000020) // 5:Precipitation value
#define BMS_RH 		(0x00000040) // 6:relative humidity
#define BMS_PFLAGS 	(0x00000080) // 7:type of precipitation flags 
#define BMS_BTCDC 	(0x00000100) // 8:boundary cloads
#define BMS_WEASD 	(0x00000200) // 9:Snow depth 
#define BMS_WTMP 	(0x00000400) // 10:water temperature (surface level)

#define BMS_SFCMASK 	(0x00000FFF)

//#define BMS_ 		(0x00000800) //11:
//#define BMS_ 		(0x00001000) //12:
//#define BMS_ 		(0x00002000) //13:
//#define BMS_ 		(0x00004000) //14:
//#define BMS_ 		(0x00008000) //15:
//#define BMS_ 		(0x00010000) //16:

#define BMS_HTSGW 	(0x00020000) //17:Sig height of wind waves and swell
#define BMS_WVPER 	(0x00040000) //18:Mean period of wind waves
#define BMS_WVDIR 	(0x00080000) //19:Direction of wind waves
#define BMS_PERPW 	(0x00100000) //20:Primary wave mean period
#define BMS_DIRPW 	(0x00200000) //21:Primary wave direction
#define BMS_PERSW 	(0x00400000) //22:Secondary wave mean period
#define BMS_DIRSW 	(0x00800000) //23:Secondary wave direction

#define BMS_BMSDATA 	(0x80000000) //32:flag say: this is a synop mesoscale point

#define BMS_SEAMASK 	(0x00FF0000)


/////////////////////////////////////////////////////////
// structures surface data /////////////////////
/////////////////////////////////////////////////////////

//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
// the data are writen von left/top to bottom/right
// the world cordinates system that Bonito use:
// 
// in minutes = 180W to 180E --> -10800 to 10800
// 90N to 90S --> -5400 to -5400
//
// xmin, xmax, ymin, ymax contain such value 
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

typedef struct { //BMSD_FH = Bonito Meteo Server Data file header
	char 	bmsd[4]; 	//='BMSD' file id
	BYTE 	vers:4; 	//the first 4 bits = version of BMSD
	BYTE 	comptype:4; 	//the last 4 bits = type of data value compression 
				//the count order commes froms the validflags-order 
				//comptype = 0 = complet dataset per point
				// 1 = each value have a feld of (xres * yres * layermax)
				// 1 = you can extrem better compress
				//boundary coordinates window in Minutes
	BYTE 	xres; 		//x resolution in minutes (p.e. 60=1°) max =255 =~4°26
	BYTE 	yres; 		//y resolution in minutes (p.e. 60=1°) max =255 =~4°26
	short 	left; 		//left/top corner - lon of the first dataset
	short 	top; 		//left/top corner - lat of the first dataset
	short 	right; 		//right/bottom corner - lon of the last dataset
	short 	bottom; 	//right/bottom corner - lat of the last dataset

	UINT 	validflags; 	//valid data types (insite of this BMSD-Package) max 32 Flags
	time_t 	validtime; 	//valid times (UTC) of this forcast sequence 
				//validtime is in seconds elapsed since midnight (00:00:00), January 1, 1970
	USHORT 	layermax; 	//maximum of the layers (time steps)
	USHORT 	stepswidth; 	//time step width in minutes 
				//or 0x1000=Synop have original messure data
				// 0x1001=Synop InterSec1 contains data -->0x1000-file
				// 0x1002=Synop InterSec2 contains data -->0x1000-file
	char 	reserve[5]; 	//reserve for expasions or your own flags 
	}BMSD_FH;

typedef struct {//BMSD = Bonito Meteo Server Data BMSD_SFC+BMSD_SEA
	USHORT 	prmsl; 	//PRMSL 0.1 of Pressure [hPa] +900.0 hPa
	short 	temp; 	//TMP 0.1 of Temperature [C] (2m level)
	short 	wtemp; 	//WTMP 0.1 of Water Temperature [C] (surface level)
	union
		{
		USHORT wind; 	//WIND 0.1 of Wind speed [m/s] (p.ex. used by MeteoTools GetDataOfPoint)
		short ugrd; 	//vector-U value of wind (10m Level)
		};
		union
		{
		USHORT wdir; 	//WDIR 0.1 of Wind direction [deg] (p.ex. used by MeteoTools GetDataOfPoint)
		short vgrd; 	//vector-V value of wind (10m Level)
		};

	BYTE 	btcdc; 	//BTCDC Boundary cloud layer total cloud cover [%]
	BYTE 	tcdc; 	//TCDC Convective cloud layer total cloud cover [%]
	BYTE 	rh; 	//RH Relative humidity [%] 
	BYTE 	pflag; 	//flags type of precipitation and land and ice cover (see FRC_ICEC,FRC_RAIN.....)
			//BIT-0 ICEC Ice cover (ice=1, no ice=0)
			//BIT-1 CRAIN 3 hr average Categorical rain (yes=1; no=0) [non-dim] 
			//BIT-2 CFRZR 3 hr average Categorical freezing rain (yes=1; no=0) [non-dim] 
			//BIT-3 CICEP 3 hr average Categorical ice pellets (yes=1; no=0) [non-dim] 
			//BIT-4 CSNOW 3 hr average Categorical snow (yes=1; no=0) [non-dim] 

	USHORT 	weasd; 	//WEASD 0.1 of equivalent of accumulated snow depth [kg/m^2] 
	USHORT 	acpt; 	//ACPT 0.1 of precipitation [kg/m^2]

	USHORT 	htsgw; 	//HTSGW 0.1 of Sig height of wind waves and swell [m]
	USHORT 	wvper; 	//WVPER 0.1 of Mean period of wind waves [s]
	USHORT 	wvdir; 	//WVDIR 0.1 of Direction of wind waves [deg]
	USHORT 	perpw; 	//PERPW 0.1 of Primary wave mean period [s]
	USHORT 	dirpw; 	//DIRPW 0.1 of Primary wave direction [deg]
	USHORT 	persw; 	//PERSW 0.1 of Secondary wave mean period [s]
	USHORT 	dirsw; 	//DIRSW 0.1 of Secondary wave direction [deg]
	}BMSDATA_SET;

typedef CArray<BMSDATA_SET,BMSDATA_SET&> BMSDataSet;

////////////////////////////////////////////////////////////////////////////////////////////
// download service definitions 
/*
// for download we use a cluster files without header
// only the file names indicated the necessary informations
// the download cluster files are packets for 20° x 10° and are 8 x 3 hour long = 24 hour = 1 day
// one cluster use a range of 20°LON and 10°LAT = 20 x-points 0°-->19°LON and 10 y-lines 0°-->9°
// .... 20 x-points 20°-->39°LON and 10 y-lines 10°-->19° .....
// for better compressing is each values a single field of data type
// it exist 3 block types, but the structures BMSD_CLUST_1,2,3 refers only to the row sequence of the data types
// in the cluster file all is saved like follows: 

// 200 PRMSL x 8 for each 3 hours step, = 1600 values
// then 200 TEMP x 8 for each 3 hours ..................
// .....1600 UGRD, 1600 VGRD 
// .... and the last - are 1600 HTSGW's


//---------------------------------------------------------------
//the file syntax for a cluster is: YYMMDDHHpcccdDNLrs.msd
//---------------------------------------------------------------

each 6 hours we refresh the files - availability: approximately t+6 Hours

type of file: ziped binary data file
	{
	YY 	= year
	MM 	= month
	DD 	= day
	HH 	= hour = meassure time 
	p 	= 1-3 packet nomber = 1. 2. or 3.packet BMSD_PACK_?
	ccc	= 0-323 cluster nomber = 18 x 18 = 324 cluster nombers 
			 cluster 0=180W,90N ... 323=180E,90S
	d 	= 1-7 the nomber of the forcast day = 7 days forecast
	DNL 	= identify
	rs 	= resolution in minutes 0.25°= 15 1°=60
		  p.e. 1.packet, cluster location 80°N / 140°W for data from 2005 14.Feb 6:00 
		  with 1° resolution and the 2.day of forecast
		  = 0502140610502FRC60.msd 
	}

typedef struct {//BMSD = Bonito Meteo Server compressed data 1.packet 
	USHORT 	prmsl; 	//PRMSL 0.1 of Pressure [hPa] +900.0 hPa
	short 	temp; 	//TMP 0.1 of Temperature [C] (2m level)
	short 	ugrd; 	//vector-U value of wind (10m Level)
	short 	vgrd; 	//vector-V value of wind (10m Level)
	BYTE 	tcdc; 	//Boundary cloud layer total cloud cover [%]
	BYTE 	pflag; 	//flags type of precipitation and land and ice cover (see FRC_ICEC,FRC_RAIN.....)
			//BIT-0 ICEC Ice cover (ice=1, no ice=0)
			//BIT-1 CRAIN 3 hr average Categorical rain (yes=1; no=0) [non-dim] 
			//BIT-2 CFRZR 3 hr average Categorical freezing rain (yes=1; no=0) [non-dim] 
			//BIT-3 CICEP 3 hr average Categorical ice pellets (yes=1; no=0) [non-dim] 
			//BIT-4 CSNOW 3 hr average Categorical snow (yes=1; no=0) [non-dim] 
	USHORT 	acpt; 	//ACPT 0.1 of precipitation [kg/m^2]
	USHORT 	htsgw; 	//HTSGW 0.1 of Sig height of wind waves and swell [m]
	} BMSD_PACK_1;

typedef struct {//BMSD = Bonito Meteo Server compressed data 2.packet
	short 	wtemp; 	//WTMP 0.1 of Water Temperature [C] (surface level)
	BYTE 	rh; 	//RH Relative humidity [%] 
	BYTE 	tcdc; 	//tcdc TCDC of Convective cloud layer total cloud cover [%]
	USHORT wvper; 	//WVPER 0.1 of Mean period of wind waves [s]
	USHORT wvdir; 	//WVDIR 0.1 of Direction of wind waves [deg]
	USHORT perpw; 	//PERPW 0.1 of Primary wave mean period [s]
	USHORT dirpw; 	//DIRPW 0.1 of Primary wave direction [deg]
	USHORT persw; 	//PERSW 0.1 of Secondary wave mean period [s]
	USHORT dirsw; 	//DIRSW 0.1 of Secondary wave direction [deg]
	USHORT weasd; 	//WEASD 0.1 of equivalent of accumulated snow depth [kg/m^2] 
	} BMSD_PACK_2;


////////////////////////////////////////////////////////////////////////////////////////////
// download service definitions for synoptic data

// for download of synop data we use a cluster files without header
// only the file names indicated the necessary informations
// the download cluster files are packets for 20° x 40° per 3 hour seqence
// one cluster use a range of 40°LON and 20°LAT 
// each struct have a direct coordinate = SYNOP-Point (lon.lat) 

//---------------------------------------------------------------
//the file syntax for a cluster is: YYMMDDHHccSYNOP.msd
//---------------------------------------------------------------

typedef struct { //BMSYND = Bonito Meteo Server compressed Synop Data packet
	int 		ValidFalgs; //what is available - what is in fact valid 
	short 		lat; //Position Latitude in Minutes
	short 		lon; //Position Longitude in Minutes
	BMSDATA_SET 	data;
	SYN_STATION 	station; //data of the SynopStation
	}BMSD_SYN; 

*/

////////////////////////////////////////////////////////////////////////////////////////////
//line definitions - like isobar,isoterm

//type: the plane type of lines of a poligon
#define PLANE_PRESS 	0  //= isobar of pressure 
#define PLANE_TERM 	1  //= isotherm of air temperature
#define PLANE_HTSGW 	2  //= height of wind waves and swell
#define PLANE_PRCPT 	3  //= precipitation
#define PLANE_SNOW 	4  //= snow coverage
#define PLANE_CLOUDS 	5  //= boundary clouds
#define PLANE_RH 	6  //= relative humidity
#define PLANE_WTERM 	7  //= isotherm of water temperature
#define PLANE_ICE 	8  //= ice coverage
#define PLANE_CCLOUDS 	9  //= convective clouds
#define PLANE_WIND 	10 //= non line, wind speed and direction field (only color plane)
#define PLANE_BATHY 	11 //bathymetry colors of the sea

#define MAX_PLANES 	10 //the maximum of line planes (struct ISOPLANE type max)

#define PLANE_MAXTYPE 	11 //the maximum of all plane types

#define PLANE_PRCPT_CLOUDS 99 //quasi rain-coulds of precipitation couver

#define COOR_MAX short(32767) 	//used as start x-ymax initital
#define COOR_MIN short(-32766) 	//used as start x-ymin initital


//cltyp: closing type of line (close clockwise)
#define CLTYPE_II 0 	//polygone normal close, polygone is inside
#define CLTYPE_ST 0x01	//start on top 
#define CLTYPE_SR 0x02 	//start on right 
#define CLTYPE_SB 0x04 	//start on bottom
#define CLTYPE_SL 0x08 	//start on left
#define CLTYPE_SF 0x0F 	//all starts
#define CLTYPE_ET 0x10 	//end on top 
#define CLTYPE_ER 0x20 	//end on right 
#define CLTYPE_EB 0x40 	//end on bottom
#define CLTYPE_EL 0x80 	//end on left
#define CLTYPE_EF 0xF0 	//all ends

#define CLTYPE_TT 0x11 	//end on top 
#define CLTYPE_RR 0x22 	//end on right 
#define CLTYPE_BB 0x44 	//end on bottom
#define CLTYPE_LL 0x88 	//end on left


#define CLTYPE_FF 0x1000 // !!! only lines - non polygones - no sorted hierarchy --like PLANE_HTSGW-Lines
// but, this line type include all the other CLTYPE atributes marker also


#define CLTYPE_LEFTDRIVE 0x8000 //0=clockwise line drive, otherwise ----> 0x8000 = is not clockwise
#define CLTYPE_CLOCKWISE 0x00FF


//my lines use a coordinates system Lon/Lat in minutes
//top/left = -5400, -10800
//bottom/right = +5400, +10800

//plane / layer pointer array
typedef struct {
	int 	type; 	//the line type of this plane / layer (PLANE_PRESS,PLANE_TERM...)
	int 	width; 	//value width for one step = step width of the lines 
	int 	min; 	//minimum value - from
	int 	max; 	//maximum value - to
	int 	start; 	//the pointer to the beginn of the LineArray
	int 	len; 	//count of all the lines in this plane / layer
	} ISOPLANE;

//line pointer array - each lines allways a closed poligone it is
typedef struct {
	USHORT 	type; 		//the line type (PLANE_PRESS,PLANE_TERM...)
	USHORT 	cltyp; 		//closing type of line 
	USHORT 	value; 		//the value, the color of the layer of the poligone
	int 	insideof; 	//line nomber of the Outside-Poligon (used by sort help)
				//0xFFFFFFFF == has no Outside-Poligon
	int 	start; 		//the pointer to the beginn of the Coordinates
	int 	len; 		//count of all the points in this line
	short 	xmin; 		//TOP-X-Position for the frame rectangle of the polygone 
	short 	xmax; 		//BOT-X-Position
	short 	ymin; 		//TOP-Y-Position 
	short 	ymax; 		//BOT-Y-Position
} ISOLINES;

//the file header of ISOPLANE's, ISOLINES's and the Coordinates
typedef struct {
	char 	bmsd[4]; 	//='BMSL' file id
	BYTE 	vers:4; 	//the first 4 bits = version of BMSD
	BYTE 	comptype:4; 	//the last 4 bits = type of data value compression 
	BYTE 	xres; 		//x resolution in minutes (p.e. 60=1°) max =255 =~4°26
	BYTE 	yres; 		//y resolution in minutes (p.e. 60=1°) max =255 =~4°26
	short 	left; 		//left/top corner - lon 
	short 	top; 		//left/top corner - lat
	short 	right; 		//right/bottom corner - lon 
	short 	bottom; 	//right/bottom corner - lat 
	time_t 	validtime; 	//valid times (UTC) of the BMSD-File

	int 	planes; 	//amount of ISOPLANE's;
	int 	lines; 		//amount of ISOLINES's
	int 	points; 	//amount of the points of the Coordinates

				// it follow then....
				// IsoPlane = ISOPLANE-Array
				// IsoLines = ISOLINES-Array
				// all points = Coordinates

	} BMSL_FH;

typedef CArray<ISOPLANE,ISOPLANE&> IsoPlane;
typedef CArray<ISOLINES,ISOLINES&> IsoLines;

/*
typedef struct tagPOINT { 
LONG x; 
LONG y; 
} POINT; 
*/

typedef struct 
	{
	short x;
	short y;
	} COORDIANTE; 
typedef CArray<COORDIANTE,COORDIANTE&> Coordinates;


//////////////////////////////////////////////////////////////
//diverse pointer arrays for the exist forcast file management

//note: !!! the basis time have +6 hours offset

typedef struct 
	{
	int 	type; 		//the type of this M eteo S erver D ata-File 0=SYNOP-File 1=FORECAST-File 2=EmailBulletin
	time_t 	validtime; 	//valid time & date of this file in the meteodata directory
	int 	stepswidth; 	//value of steps in this reference sequence 
	int 	region; 	//the region = REG_WRL,REG_EUR,REG_MID.... -1 = user definition in xmin,ymin....
	int 	validflags; 	//flag of the data header = valid data types (insite of a BMSD-Package)
	int 	left; 		//left/top corner - lon of the first dataset
	int 	top; 		//left/top corner - lat of the first dataset
	int 	right; 		//right/bottom corner - lon of the last dataset
	int 	bottom; 	//right/bottom corner - lat of the last dataset
	char 	regstr[4]; 	//region short name

	//is set only by EmailBulletin
	int hour; //forecast hour

	//is set only by the user 
	int selected_hour; 	//I need this as my last used hour
	int flag; 		//free for your own settings
	}MSDFILE;

typedef CArray<MSDFILE,MSDFILE&> MSDFile;


//for EmailBulletin 
//MeteoPack data valid flags
#define RBMS_PRMSL 	(0x0001) 
#define RBMS_TMP 	(0x0002) 
#define RBMS_WIND 	(0x0004) //UGRD 
#define RBMS_WDIR 	(0x0008) //VGRD
#define RBMS_HTSGW 	(0x0010) 
#define RBMS_APCP 	(0x0020) 
#define RBMS_WVDIR 	(0x0040) 
#define RBMS_PFLAGS 	(0x0080) 
#define RBMS_BTCDC 	(0x0100)

//MeteoPack Detail-No.           
#define MP_DETAIL_PRESS  0 	//A 1/3 of 0.1 hPa Pressure 		900.0 + value * 3
#define MP_DETAIL_TEMP   1 	//B 0.1 °C Temperature 			+/-64° -64 + value
#define MP_DETAIL_UGRD   2 	//C 0.1 wind vector u 			Table 
#define MP_DETAIL_VGRD   3 	//D 0.1 wind vector v 			Table 
#define MP_DETAIL_CLOUDS 4 	//E % Boundary cloud layer 		0-100%
#define MP_DETAIL_PRECI  5 	//F 0.1 [kg/m^2] Precipitation 		Table 
#define MP_DETAIL_PFLAGS 6 	//G Flags 				FRC_RAIN=2, FRC_FRZR=4, FRC_ICEP=5, FRC_SNOW=6; FRC_ICEC +=10 
#define MP_DETAIL_HTSGW  7 	//H 0.1 m wave height 
#define MP_DETAIL_WVDIR  8 	//I 1/6 of 0.1° wave direction

#pragma pack()
#endif //BMSD_DEFS