def __init__(self, **kwargs):
super(FourBandLW, self).__init__(**kwargs)<EOL>Tarray = np.linspace(-<NUM_LIT:30>, <NUM_LIT:30>) + <NUM_LIT><EOL>self.band_fraction = np.mean(SPEEDY_band_fraction(Tarray), axis=<NUM_LIT:1>)<EOL>ABLWIN = <NUM_LIT><EOL>ABLCO2 = <NUM_LIT><EOL>ABLWV1 = <NUM_LIT><EOL>ABLWV2 = <NUM_LIT><EOL>O3 = np.array([ABLWIN, <NUM_LIT:0.>, <NUM_LIT:0.>, <NUM_LIT:0.>]) / <NUM_LIT> * const.g / <NUM_LIT><EOL>self.absorption_cross_section['<STR_LIT>'] = np.reshape(O3,<EOL>(self.num_channels, <NUM_LIT:1>))<EOL>AIMCO2 = <NUM_LIT><EOL>CO2 = np.array([<NUM_LIT:0.>, ABLCO2, <NUM_LIT:0.>, <NUM_LIT:0.>]) / <NUM_LIT> * const.g / AIMCO2<EOL>H2O = np.array([<NUM_LIT:0.>, <NUM_LIT:0.>, ABLWV1, ABLWV2]) / <NUM_LIT> * const.g * <NUM_LIT><EOL>for n in range(self.Tatm.domain.numdims):<EOL><INDENT>CO2 = CO2[:, np.newaxis]<EOL>O3 = O3[:, np.newaxis]<EOL>H2O = H2O[:, np.newaxis]<EOL><DEDENT>self.absorption_cross_section.update({'<STR_LIT>': CO2, '<STR_LIT>': H2O, '<STR_LIT>': O3})<EOL>if '<STR_LIT>' not in self.absorber_vmr:<EOL><INDENT>self.absorber_vmr['<STR_LIT>'] = <NUM_LIT> * np.ones_like(self.Tatm)<EOL><DEDENT>if '<STR_LIT>' not in self.absorber_vmr:<EOL><INDENT>self.absorber_vmr['<STR_LIT>'] = np.zeros_like(self.Tatm)<EOL><DEDENT>if '<STR_LIT>' not in self.absorber_vmr:<EOL><INDENT>self.absorber_vmr['<STR_LIT>'] = self.q<EOL><DEDENT>
Closely following SPEEDY / MITgcm longwave model
        band 0 is window region (between 8.5 and 11 microns)
        band 1 is CO2 channel (the band of strong absorption by CO2 around 15 microns)
        band 2 is weak H2O channel (aggregation of spectral regions with weak to moderate absorption by H2O)
        band 3 is strong H2O channel (aggregation of regions with strong absorption by H2O)