# Copyright 2005-2019 ECMWF.

# TEMPLATE 3.63, BiFourier coefficients on lambert projection

transient biFourierMakeTemplate = 0;

include "grib2/template.3.bf.def"

include "grib2/template.3.shape_of_the_earth.def";

#  La1 - latitude of first grid point
signed[4] latitudeOfFirstGridPoint : edition_specific;
alias La1  = latitudeOfFirstGridPoint;
meta  geography.latitudeOfFirstGridPointInDegrees
        scale(latitudeOfFirstGridPoint,one,grib2divider,truncateDegrees) : dump;
alias La1InDegrees=latitudeOfFirstGridPointInDegrees;
#meta latitudeOfFirstGridPointInMicrodegrees times(latitudeOfFirstGridPointInDegrees,oneConstant): no_copy;

#  Lo1 - longitude of first grid point
unsigned[4] longitudeOfFirstGridPoint : edition_specific;
alias Lo1  = longitudeOfFirstGridPoint;
meta  geography.longitudeOfFirstGridPointInDegrees
        scale(longitudeOfFirstGridPoint,one,grib2divider,truncateDegrees) : dump;
alias Lo1InDegrees = longitudeOfFirstGridPointInDegrees;
#meta longitudeOfFirstGridPointInMicrodegrees times(longitudeOfFirstGridPoint,oneConstant) : no_copy;

#  LaD - Latitude where Dx and Dy are specified
signed[4] LaD : edition_specific ;
alias latitudeWhereDxAndDyAreSpecified=LaD;
meta  geography.LaDInDegrees scale(LaD,one,grib2divider,truncateDegrees) : dump;

#  LoV - Longitude of meridian parallel to Y-axis along which latitude increases as the Y-coordinate increases
unsigned[4] LoV  : edition_specific;
meta  geography.LoVInDegrees scale(LoV,one,grib2divider,truncateDegrees) : dump;

#  Projection centre flag
flags[1] projectionCentreFlag 'grib2/tables/[tablesVersion]/3.5.table' : dump;

#  Latin 1 - first latitude from the pole at which the secant cone cuts the sphere
signed[4] Latin1   : edition_specific;
alias FirstLatitude=Latin1;
meta  geography.Latin1InDegrees scale(Latin1,one,grib2divider,truncateDegrees) : dump;

#  Latin 2 - second latitude from the pole at which the secant cone cuts the sphere
signed[4] Latin2  : dump;
alias SecondLatitude=Latin2;
meta  geography.Latin2InDegrees scale(Latin2,one,grib2divider,truncateDegrees) : dump;

#  Latitude of the southern pole of projection
signed[4] latitudeOfSouthernPole : edition_specific;
alias latitudeOfTheSouthernPoleOfProjection=latitudeOfSouthernPole;
meta  geography.latitudeOfSouthernPoleInDegrees   scale(latitudeOfSouthernPole          ,one,grib2divider,truncateDegrees) : dump;

#  Longitude of the southern pole of projection
unsigned[4] longitudeOfSouthernPole : edition_specific;
alias longitudeOfTheSouthernPoleOfProjection=longitudeOfSouthernPole;
meta  geography.longitudeOfSouthernPoleInDegrees   scale(longitudeOfSouthernPole,oneConstant,grib2divider,truncateDegrees) : dump;
