module AHL def self::fcsttime ttaaii, cccc case [ttaaii, cccc].join(' ') # GWM when /^H[A-Z][A-Z]W\d\d RJTD/ then 180 when /^H[A-Z][A-Z]X\d\d RJTD/ then 192 when /^H[A-Z][A-Z]Y\d\d RJTD/ then 54 when /^H[A-Z][A-Z]Z\d\d RJTD/ then 66 # WFM when /^Y[PHUVTEJLMG][X]C\d\d RJTD/ then 12 when /^Y[PHUVTEJLMG][X]E\d\d RJTD/ then 24 when /^Y[PHUVTEJLMG][X]G\d\d RJTD/ then 36 when /^Y[PHUVTEJLMG][X]I\d\d RJTD/ then 48 when /^Y[PHUVTEJLMG][X]J\d\d RJTD/ then 60 when /^Y[PHUVTEJLMG][X]K\d\d RJTD/ then 72 when /^Y[PHUVTEJLMG][X]L\d\d RJTD/ then 84 when /^Y[PHUVTEJLMG][X]M\d\d RJTD/ then 96 when /^Y[PHUVTEJLMG][X]N\d\d RJTD/ then 108 when /^Y[PHUVTEJLMG][X]O\d\d RJTD/ then 120 when /^Y[PHUVTEJLMG][X]P\d\d RJTD/ then 132 when /^Y[PHUVTEJLMG][X]Q\d\d RJTD/ then 144 when /^Y[PHUVTEJLMG][X]R\d\d RJTD/ then 156 when /^Y[PHUVTEJLMG][X]S\d\d RJTD/ then 168 when /^Y[PHUVTEJLMG][X]W\d\d RJTD/ then 180 when /^Y[PHUVTEJLMG][X]X\d\d RJTD/ then 192 # GWM and GSM when /^Y[A-Z][A-Z]P\d\d RJTD/ then 78 when /^Y[A-Z][A-Z]Q\d\d RJTD/ then 90 when /^Y[A-Z][A-Z]R\d\d RJTD/ then 102 when /^Y[A-Z][A-Z]S\d\d RJTD/ then 114 when /^Y[A-Z][A-Z]T\d\d RJTD/ then 126 when /^Y[A-Z][A-Z]U\d\d RJTD/ then 138 when /^Y[A-Z][A-Z]V\d\d RJTD/ then 150 when /^Y[A-Z][A-Z]W\d\d RJTD/ then 156 when /^Y[A-Z][A-Z]X\d\d RJTD/ then 174 when /^Y[A-Z][A-Z]Y\d\d RJTD/ then 180 when /^Y[A-Z][A-Z]Z\d\d RJTD/ then 186 # Manual on GTS when /^...A/ then 0 when /^[DGHJOPT]..B/ then 6 when /^[DGHJOPT]..C/ then 12 when /^[DGHJOPT]..D/ then 18 when /^[DGHJOPT]..E/ then 24 when /^[DGHJOPT]..F/ then 30 when /^[DGHJOPT]..G/ then 36 when /^[DGHJOPT]..H/ then 42 when /^[DGHJOPT]..I/ then 48 when /^[DGHJOPT]..J/ then 60 when /^[DGHJOPT]..K/ then 72 when /^[DGHJOPT]..L/ then 84 when /^[DGHJOPT]..M/ then 96 when /^[DGHJOPT]..N/ then 108 when /^[DGHJOPT]..O/ then 120 when /^[DGHJOPT]..P/ then 132 when /^[DGHJOPT]..Q/ then 144 when /^[DGHJOPT]..R/ then 156 when /^[DGHJOPT]..S/ then 168 when /^[DGHJOPT]..T/ then 240 when /^[DGHJOPT]..U/ then 360 when /^[DGHJOPT]..V/ then 720 #else '' else raise "#{ttaaii} #{cccc}" end end def self::element ttaaii, cccc case [ttaaii, cccc].join(' ') when /^YHX... RJTD/ then 'ave. height' when /^YUX... RJTD/ then 'ave. eastward wind' when /^YVX... RJTD/ then 'ave. northward wind' when /^YTX... RJTD/ then 'ave. temperature' when /^YPX... RJTD/ then 'ave. MSL pressure' when /^YJX... RJTD/ then 'SD height' when /^YLX... RJTD/ then 'SD eastward wind' when /^YMX... RJTD/ then 'SD northward wind' when /^YGX... RJTD/ then 'SD temperature' when /^YEX... RJTD/ then 'SD MSL pressure' when /^[HY]Z[SN].88 RJTD/ then 'prevailing wave' when /^[HY]Z[CDI-PXY]... RJTD/ then 'vorticity' when /^[HY]J.... RJTD/ then 'wave height' when /^[HY]M.... RJTD/ then 'wave period' when /^[HY]X.... RJTD/ then 'stream function' when /^[HY]Y.... RJTD/ then 'velocity potential' when /^YW.... RJTD/ then 'vertical velocity' when /^YS.... RJTD/ then 'precipitation' when /^[HY]R[DI-PXY]... RJTD/ then 'dewpoint depression' when /^[YH]H/ then 'geopotential height' when /^[YH]U/ then 'eastward wind' when /^[YH]V/ then 'northward wind' when /^[YH]T/ then 'temperature' when /^[YH]R/ then 'relative humidity' # not in Japan when /^[YH]O/ then 'vertical velocity' when /^[YH]P/ then 'MSL pressure' when /^[YH]E/ then 'precipitation' else raise "#{ttaaii} #{cccc}" end end end