!--------------------------------------- LICENCE BEGIN -----------------------------------
!Environment Canada - Atmospheric Science and Technology License/Disclaimer,
!                     version 3; Last Modified: May 7, 2008.
!This is free but copyrighted software; you can use/redistribute/modify it under the terms
!of the Environment Canada - Atmospheric Science and Technology License/Disclaimer
!version 3 or (at your option) any later version that should be found at:
!http://collaboration.cmc.ec.gc.ca/science/rpn.comm/license.html
!
!This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
!without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
!See the above mentioned License/Disclaimer for more details.
!You should have received a copy of the License/Disclaimer along with this software;
!if not, you can write to: EC-RPN COMM Group, 2121 TransCanada, suite 500, Dorval (Quebec),
!CANADA, H9P 1J3; or send e-mail to service.rpn@ec.gc.ca
!-------------------------------------- LICENCE END --------------------------------------


Module hir_chans 6

!************************************************************************
!*
!*       Module hir_chans
!*       --------------
!*
!*       PURPOSE: HYPERSPECTRAL INFRARED CHANNEL PROPERTIES
!*
!*       AUTHOR:   A. BEAULNE (CMDA/SMC) February 2006
!*
!*       REVISION: S. Heilliette transformation into a real module
!*                  and addition of IASI and CrIS March 2013
!*
!*       METHODS:
!*              - hir_get_nchan_selected : get the number of channels for the received subset
!*              - hir_get_nchan_all : get the total number of channels
!*              - hir_get_wavn : get channel wavenumbers (work only for the received subset)
!*              - hir_get_chindx_fr_chn : get subset channel index from channel number
!*              - hir_get_assim_chan : get assimilation flag from channel number
!*              - hir_set_assim_chan : set a vector of  assimilation flags (1=assimilate)
!*
!*
!************************************************************************
  implicit none
  save
  private
  
  ! public procedures
  public :: hir_get_nchan_selected,hir_get_nchan_all,hir_get_wavn,hir_get_chindx_fr_chn
  public :: hir_get_assim_chan,hir_set_assim_chan
  

  INTEGER, PARAMETER :: AIRSSNCH = 281, AIRSRNCH = 2378
  INTEGER   :: AIRSRCH(AIRSSNCH)
  INTEGER,target   :: AIRSSCH(AIRSRNCH)
  REAL (8)  :: AIRSSWN(AIRSSNCH)
  INTEGER,target   :: AIRS_ASSIM(AIRSSNCH)

  DATA AIRSRCH /     &
       1,    6,    7,   10,   11,   15,   16,   17,     &   ! 1-8
       20,   21,   22,   24,   27,   28,   30,   36,    &
       39,   40,   42,   51,   52,   54,   55,   56,    &
       59,   62,   63,   68,   69,   71,   72,   73,    &
       74,   75,   76,   77,   78,   79,   80,   82,    &
       83,   84,   86,   92,   93,   98,   99,  101,    &   ! 41-48
       104,  105,  108,  110,  111,  113,  116,  117,   &
       123,  124,  128,  129,  138,  139,  144,  145,   &
       150,  151,  156,  157,  159,  162,  165,  168,   &
       169,  170,  172,  173,  174,  175,  177,  179,   &
       180,  182,  185,  186,  190,  192,  198,  201,   &   ! 81-88
       204,  207,  210,  215,  216,  221,  226,  227,   &	
       232,  252,  253,  256,  257,  261,  262,  267,   &	
       272,  295,  299,  300,  305,  310,  321,  325,   &	
       333,  338,  355,  362,  375,  453,  475,  484,   &
       497,  528,  587,  672,  787,  791,  843,  870,   &   ! 121-128
       914,  950, 1003, 1012, 1019, 1024, 1030, 1038,   &
       1048, 1069, 1079, 1082, 1083, 1088, 1090, 1092,  &
       1095, 1104, 1111, 1115, 1116, 1119, 1120, 1123,  &
       1130, 1138, 1142, 1178, 1199, 1206, 1221, 1237,  &
       1252, 1260, 1263, 1266, 1285, 1301, 1304, 1329,  &   ! 161-168
       1371, 1382, 1415, 1424, 1449, 1455, 1466, 1477,  &
       1500, 1519, 1538, 1545, 1565, 1574, 1583, 1593,  &
       1614, 1627, 1636, 1644, 1652, 1669, 1674, 1681,  &
       1694, 1708, 1717, 1723, 1740, 1748, 1751, 1756,  &
       1763, 1766, 1771, 1777, 1780, 1783, 1794, 1800,  &   ! 201-208
       1803, 1806, 1812, 1826, 1843, 1852, 1865, 1866,  &
       1868, 1869, 1872, 1873, 1876, 1881, 1882, 1883,  &
       1911, 1917, 1918, 1924, 1928, 1937, 1941, 2099,  &
       2100, 2101, 2103, 2104, 2106, 2107, 2108, 2109,  &
       2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117,  &   ! 241-248
       2118, 2119, 2120, 2121, 2122, 2123, 2128, 2134,  &
       2141, 2145, 2149, 2153, 2164, 2189, 2197, 2209,  &
       2226, 2234, 2280, 2318, 2321, 2325, 2328, 2333,  &
       2339, 2348, 2353, 2355, 2357, 2363, 2370, 2371,  &
       2377/                                                   ! 281


  DATA AIRSSCH(1:600) /     &
       1,   -1,   -1,   -1,   -1,    2,    3,   -1,      &   ! 1-8
       -1,    4,    5,   -1,   -1,   -1,    6,    7,     &
       8,   -1,   -1,    9,   10,   11,   -1,   12,      &
       -1,   -1,   13,   14,   -1,   15,   -1,   -1,     &
       -1,   -1,   -1,   16,   -1,   -1,   17,   18,     &
       -1,   19,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   20,   21,   -1,   22,   23,   24,     &
       -1,   -1,   25,   -1,   -1,   26,   27,   -1,     &
       -1,   -1,   -1,   28,   29,   -1,   30,   31,     &
       32,   33,   34,   35,   36,   37,   38,   39,     &
       -1,   40,   41,   42,   -1,   43,   -1,   -1,     &   ! 81-88
       -1,   -1,   -1,   44,   45,   -1,   -1,   -1,     &
       -1,   46,   47,   -1,   48,   -1,   -1,   49,     &
       50,   -1,   -1,   51,   -1,   52,   53,   -1,     &
       54,   -1,   -1,   55,   56,   -1,   -1,   -1,     &
       -1,   -1,   57,   58,   -1,   -1,   -1,   59,     &
       60,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   61,   62,   -1,   -1,   -1,   -1,   63,     &
       64,   -1,   -1,   -1,   -1,   65,   66,   -1,     &
       -1,   -1,   -1,   67,   68,   -1,   69,   -1,     &
       -1,   70,   -1,   -1,   71,   -1,   -1,   72,     &   ! 161-168
       73,   74,   -1,   75,   76,   77,   78,   -1,     &
       79,   -1,   80,   81,   -1,   82,   -1,   -1,     &
       83,   84,   -1,   -1,   -1,   85,   -1,   86,     &
       -1,   -1,   -1,   -1,   -1,   87,   -1,   -1,     &
       88,   -1,   -1,   89,   -1,   -1,   90,   -1,     &
       -1,   91,   -1,   -1,   -1,   -1,   92,   93,     &
       -1,   -1,   -1,   -1,   94,   -1,   -1,   -1,     &
       -1,   95,   96,   -1,   -1,   -1,   -1,   97,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &   ! 241-248
       -1,   -1,   -1,   98,   99,   -1,   -1,  100,     &
       101,   -1,   -1,   -1,  102,  103,   -1,   -1,    &
       -1,   -1,  104,   -1,   -1,   -1,   -1,  105,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,  106,   -1,     &
       -1,   -1,  107,  108,   -1,   -1,   -1,   -1,     &
       109,   -1,   -1,   -1,   -1,  110,   -1,   -1,    &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       111,   -1,   -1,   -1,  112,   -1,   -1,   -1,    &   ! 321-328
       -1,   -1,   -1,   -1,  113,   -1,   -1,   -1,     &
       -1,  114,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,  115,   -1,   -1,   -1,   -1,   -1,     &
       -1,  116,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,  117,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &   ! 401-428
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,  118,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,  119,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,  120,   -1,   -1,   -1,   -1,     &   ! 481-488
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       121,   -1,   -1,   -1,   -1,   -1,   -1,   -1,    &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,  122,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &   ! 561-568
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,  123,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1 /

  DATA AIRSSCH(601:1200) /     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &   ! 601-608
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,  124,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &   ! 681-688
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &   ! 761-768
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,  125,   -1,   -1,   -1,  126,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,  127,   -1,   -1,   -1,   -1,   -1,     &   ! 841-848
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,  128,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,  129,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &   ! 921-928
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,  130,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,  131,   -1,   -1,   -1,   -1,   -1,     &   ! 1001-1008
       -1,   -1,   -1,  132,   -1,   -1,   -1,   -1,     &
       -1,   -1,  133,   -1,   -1,   -1,   -1,  134,     &
       -1,   -1,   -1,   -1,   -1,  135,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,  136,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,  137,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,  138,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,  139,   -1,     &
       -1,  140,  141,   -1,   -1,   -1,   -1,  142,     &   ! 1081-1088
       -1,  143,   -1,  144,   -1,   -1,  145,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,  146,     &
       -1,   -1,   -1,   -1,   -1,   -1,  147,   -1,     &
       -1,   -1,  148,  149,   -1,   -1,  150,  151,     &
       -1,   -1,  152,   -1,   -1,   -1,   -1,   -1,     &
       -1,  153,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,  154,   -1,   -1,   -1,  155,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &   ! 1161-1168
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,  156,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,  157,   -1 /

  DATA AIRSSCH(1201:1800) /     &
       -1,   -1,   -1,   -1,   -1,  158,   -1,   -1,     &   ! 1201-1208
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,  159,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,  160,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,  161,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,  162,   -1,   -1,  163,   -1,     &
       -1,  164,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,  165,   -1,   -1,   -1,     &   ! 1281-1288
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,  166,   -1,   -1,  167,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       168,   -1,   -1,   -1,   -1,   -1,   -1,   -1,    &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &   ! 1361-1368
       -1,   -1,  169,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,  170,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,  171,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,  172,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &   ! 1441-1448
       173,   -1,   -1,   -1,   -1,   -1,  174,   -1,    &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,  175,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,  176,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,  177,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,  178,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &   ! 1521-1528
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,  179,   -1,   -1,   -1,   -1,   -1,   -1,     &
       180,   -1,   -1,   -1,   -1,   -1,   -1,   -1,    &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,  181,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,  182,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,  183,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       184,   -1,   -1,   -1,   -1,   -1,   -1,   -1,    &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &   ! 1601-1608
       -1,   -1,   -1,   -1,   -1,  185,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,  186,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,  187,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,  188,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,  189,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,  190,   -1,   -1,   -1,     &
       -1,  191,   -1,   -1,   -1,   -1,   -1,   -1,     &
       192,   -1,   -1,   -1,   -1,   -1,   -1,   -1,    &   ! 1681-1688
       -1,   -1,   -1,   -1,   -1,  193,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,  194,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,  195,   -1,   -1,   -1,     &
       -1,   -1,  196,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,  197,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,  198,   -1,   -1,  199,   -1,     &
       -1,   -1,   -1,  200,   -1,   -1,   -1,   -1,     &
       -1,   -1,  201,   -1,   -1,  202,   -1,   -1,     &   ! 1761-1768
       -1,   -1,  203,   -1,   -1,   -1,   -1,   -1,     &
       204,   -1,   -1,  205,   -1,   -1,  206,   -1,    &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,  207,   -1,   -1,   -1,   -1,   -1,  208 /

  DATA AIRSSCH(1801:2378) /     &
       -1,   -1,  209,   -1,   -1,  210,   -1,   -1,     &   ! 1801-1808
       -1,   -1,   -1,  211,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,  212,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,  213,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,  214,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       215,  216,   -1,  217,  218,   -1,   -1,  219,    &
       220,   -1,   -1,  221,   -1,   -1,   -1,   -1,    &
       222,  223,  224,   -1,   -1,   -1,   -1,   -1,    &   ! 1881-1888
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,  225,   -1,     &
       -1,   -1,   -1,   -1,  226,  227,   -1,   -1,     &
       -1,   -1,   -1,  228,   -1,   -1,   -1,  229,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       230,   -1,   -1,   -1,  231,   -1,   -1,   -1,    &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &   ! 1961-1968
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &   ! 2041-2048
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,  232,  233,  234,   -1,  235,  236,     &
       -1,  237,  238,  239,  240,  241,  242,  243,     &
       244,  245,  246,  247,  248,  249,  250,  251,    &
       252,  253,  254,   -1,   -1,   -1,   -1,  255,    &   ! 2121-2128
       -1,   -1,   -1,   -1,   -1,  256,   -1,   -1,     &
       -1,   -1,   -1,   -1,  257,   -1,   -1,   -1,     &
       258,   -1,   -1,   -1,  259,   -1,   -1,   -1,    &
       260,   -1,   -1,   -1,   -1,   -1,   -1,   -1,    &
       -1,   -1,   -1,  261,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,  262,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,  263,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &   ! 2201-2208
       264,   -1,   -1,   -1,   -1,   -1,   -1,   -1,    &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,  265,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,  266,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,  267,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &   ! 2281-2288
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,   -1,   -1,  268,   -1,   -1,     &
       269,   -1,   -1,   -1,  270,   -1,   -1,  271,    &
       -1,   -1,   -1,   -1,  272,   -1,   -1,   -1,     &
       -1,   -1,  273,   -1,   -1,   -1,   -1,   -1,     &
       -1,   -1,   -1,  274,   -1,   -1,   -1,   -1,     &
       275,   -1,  276,   -1,  277,   -1,   -1,   -1,    &
       -1,   -1,  278,   -1,   -1,   -1,   -1,   -1,     &   ! 2361-2368
       -1,  279,  280,   -1,   -1,   -1,   -1,   -1,     &
       281,   -1 /                                            ! 2377-2378


  DATA AIRSSWN /     &
       649.61298d0,  650.80701d0,  651.04602d0,  651.76501d0,      &   ! 1-4
       652.00500d0,  652.96802d0,  653.20898d0,  653.45001d0,      &
       654.17499d0,  654.41699d0,  654.65900d0,  655.14398d0,      &
       655.87299d0,  656.11603d0,  656.60400d0,  658.07001d0,      &
       658.80603d0,  659.05200d0,  659.54401d0,  661.76703d0,      &
       662.01501d0,  662.51202d0,  662.76099d0,  663.00897d0,      &   ! 21-24
       663.75702d0,  664.50702d0,  664.75702d0,  666.01099d0,      &
       666.26202d0,  666.76599d0,  667.01801d0,  667.27002d0,      &
       667.52197d0,  667.77502d0,  668.02802d0,  668.28101d0,      &
       668.53400d0,  668.78699d0,  669.04102d0,  669.54901d0,      &
       669.80298d0,  670.05798d0,  670.56702d0,  672.09998d0,      &   ! 41-44
       672.35699d0,  673.64099d0,  673.89899d0,  674.41400d0,      &
       675.18903d0,  675.44800d0,  676.22601d0,  676.74500d0,      &
       677.00500d0,  677.52600d0,  678.30798d0,  678.57001d0,      &
       680.14203d0,  680.40399d0,  681.45697d0,  681.72101d0,      &
       689.49103d0,  689.76202d0,  691.11902d0,  691.39099d0,      &   ! 61-64
       692.75500d0,  693.02899d0,  694.40002d0,  694.67401d0,      &
       695.22498d0,  696.05200d0,  696.88098d0,  697.71198d0,      &
       697.98999d0,  698.26703d0,  698.82397d0,  699.10199d0,      &
       699.38098d0,  699.65997d0,  700.21802d0,  700.77698d0,      &
       701.05701d0,  701.61798d0,  702.46100d0,  702.74200d0,      &   ! 81-84
       703.87000d0,  704.43597d0,  706.13702d0,  706.99103d0,      &
       707.84698d0,  708.70599d0,  709.56598d0,  711.00500d0,      &
       711.29303d0,  712.73901d0,  714.19098d0,  714.48199d0,      &
       715.94098d0,  721.83801d0,  722.13501d0,  723.02899d0,      &
       723.32800d0,  724.52399d0,  724.82397d0,  726.32599d0,      &   ! 101-104
       727.83398d0,  734.15002d0,  735.38202d0,  735.69000d0,      &
       737.23602d0,  738.78900d0,  742.22699d0,  743.48499d0,      &
       746.01398d0,  747.60303d0,  753.05701d0,  755.32501d0,      &
       759.57397d0,  793.17102d0,  801.09900d0,  804.38599d0,      &
       809.17999d0,  820.83398d0,  843.91302d0,  871.28900d0,      &   ! 121-124
       917.30603d0,  918.74701d0,  937.90802d0,  948.18402d0,      &
       965.43103d0,  979.12799d0, 1001.38397d0, 1005.26300d0,      &
       1008.29999d0, 1010.48102d0, 1013.10901d0, 1016.63501d0,     &
       1021.07703d0, 1030.52795d0, 1035.08899d0, 1036.46497d0,     &
       1036.92395d0, 1039.22705d0, 1040.15100d0, 1041.07703d0,     &   ! 141-144
       1042.46802d0, 1056.10400d0, 1059.44397d0, 1061.36096d0,     &
       1061.84094d0, 1063.28503d0, 1063.76697d0, 1065.21594d0,     &
       1068.60999d0, 1072.51501d0, 1074.47803d0, 1092.45105d0,     &
       1103.19897d0, 1106.82605d0, 1114.67505d0, 1123.16199d0,     &
       1131.22900d0, 1135.57495d0, 1216.97400d0, 1218.49597d0,     &   ! 161-164
       1228.22498d0, 1236.53894d0, 1238.10999d0, 1251.35706d0,     &
       1285.47498d0, 1291.70898d0, 1310.76599d0, 1316.05798d0,     &
       1330.97595d0, 1334.60498d0, 1339.68701d0, 1345.31201d0,     &
       1357.23596d0, 1367.25305d0, 1377.42603d0, 1381.21301d0,     &
       1392.15295d0, 1397.13501d0, 1402.15295d0, 1407.77295d0,     &   ! 181-184
       1419.72595d0, 1427.22900d0, 1432.47095d0, 1437.16394d0,     &
       1441.88794d0, 1468.82703d0, 1471.91003d0, 1476.24695d0,     &
       1484.36902d0, 1493.21497d0, 1498.95801d0, 1502.81006d0,     &
       1513.83203d0, 1519.07397d0, 1521.04895d0, 1524.35205d0,     &
       1542.44897d0, 1544.48206d0, 1547.88196d0, 1551.98096d0,     &   ! 201-204
       1554.03796d0, 1556.10095d0, 1563.70898d0, 1567.89001d0,     &
       1569.98901d0, 1572.09204d0, 1576.31702d0, 1586.25903d0,     &
       1598.49500d0, 1605.04602d0, 2181.49512d0, 2182.39990d0,     &
       2184.21411d0, 2185.12207d0, 2187.85010d0, 2188.76099d0,     &
       2191.49805d0, 2196.07495d0, 2196.99292d0, 2197.91089d0,     &   ! 221-224
       2223.93604d0, 2229.59204d0, 2230.53711d0, 2236.22510d0,     &
       2240.03296d0, 2248.64795d0, 2252.49707d0, 2378.42603d0,     &
       2379.39502d0, 2380.36499d0, 2382.30811d0, 2383.28003d0,     &
       2385.22705d0, 2386.20190d0, 2387.17798d0, 2388.15405d0,     &
       2389.13208d0, 2390.11011d0, 2391.08911d0, 2392.06812d0,     &   ! 241-244
       2393.04907d0, 2394.03003d0, 2395.01196d0, 2395.99512d0,     &
       2396.97900d0, 2397.96411d0, 2398.94897d0, 2399.93604d0,     &
       2400.92310d0, 2401.91089d0, 2406.86304d0, 2412.83203d0,     &
       2419.83496d0, 2446.19507d0, 2450.29810d0, 2454.41406d0,     &
       2465.80396d0, 2492.07910d0, 2500.60205d0, 2513.49292d0,     &   ! 261-264
       2531.97803d0, 2540.76904d0, 2561.12891d0, 2600.49902d0,     &
       2603.65991d0, 2607.88696d0, 2611.06592d0, 2616.38306d0,     &
       2622.79199d0, 2632.46606d0, 2637.87207d0, 2640.04102d0,     &
       2642.21411d0, 2648.75195d0, 2656.42310d0, 2657.52197d0,     &
       2664.13794d0 /                                            ! 281





  INTEGER, PARAMETER :: IASISNCH = 616, IASIRNCH = 8461

  INTEGER   :: IASIRCH(IASISNCH)
  INTEGER,target   :: IASISCH(IASIRNCH)
  REAL (8)  :: IASISWN(IASISNCH)
  INTEGER,target   :: IASI_ASSIM(IASISNCH)

  DATA IASIRCH /     &
       16 , 29 , 32 , 35 , 38 , 41 , 44 , 47 , 49 , 50 , & !1-10
       51 , 53 , 55 , 56 , 57 , 59 , 61 , 62 , 63 , 66 , &
       68 , 70 , 72 , 74 , 76 , 78 , 79 , 81 , 82 , 83 , &
       84 , 85 , 86 , 87 , 89 , 92 , 93 , 95 , 97 , 99 , &
       101 , 103 , 104 , 106 , 109 , 110 , 111 , 113 , 116 , 119 , &
       122 , 125 , 128 , 131 , 133 , 135 , 138 , 141 , 144 , 146 , &
       148 , 150 , 151 , 154 , 157 , 159 , 160 , 161 , 163 , 167 , &
       170 , 173 , 176 , 179 , 180 , 185 , 187 , 191 , 193 , 197 , &
       199 , 200 , 202 , 203 , 205 , 207 , 210 , 212 , 213 , 214 , &
       217 , 218 , 219 , 222 , 224 , 225 , 226 , 228 , 230 , 231 , &
       232 , 236 , 237 , 239 , 243 , 246 , 249 , 252 , 254 , 259 , &
       260 , 262 , 265 , 267 , 269 , 275 , 279 , 282 , 285 , 294 , &
       296 , 299 , 300 , 303 , 306 , 309 , 313 , 320 , 323 , 326 , &
       327 , 329 , 332 , 335 , 345 , 347 , 350 , 354 , 356 , 360 , &
       363 , 366 , 371 , 372 , 373 , 375 , 377 , 379 , 381 , 383 , &
       386 , 389 , 398 , 401 , 404 , 405 , 407 , 408 , 410 , 411 , &
       414 , 416 , 418 , 423 , 426 , 428 , 432 , 433 , 434 , 439 , &
       442 , 445 , 450 , 457 , 459 , 472 , 477 , 483 , 509 , 515 , &
       546 , 552 , 559 , 566 , 571 , 573 , 578 , 584 , 594 , 625 , &
       646 , 662 , 668 , 705 , 739 , 756 , 797 , 867 , 906 , 921 , &
       1027 , 1046 , 1090 , 1098 , 1121 , 1133 , 1173 , 1191 , 1194 , 1222 , &
       1271 , 1283 , 1338 , 1409 , 1414 , 1420 , 1424 , 1427 , 1430 , 1434 , &
       1440 , 1442 , 1445 , 1450 , 1454 , 1460 , 1463 , 1469 , 1474 , 1479 , &
       1483 , 1487 , 1494 , 1496 , 1502 , 1505 , 1509 , 1510 , 1513 , 1518 , &
       1521 , 1526 , 1529 , 1532 , 1536 , 1537 , 1541 , 1545 , 1548 , 1553 , &
       1560 , 1568 , 1574 , 1579 , 1583 , 1585 , 1587 , 1606 , 1626 , 1639 , &
       1643 , 1652 , 1658 , 1659 , 1666 , 1671 , 1675 , 1681 , 1694 , 1697 , &
       1710 , 1786 , 1791 , 1805 , 1839 , 1884 , 1913 , 1946 , 1947 , 1991 , &
       2019 , 2094 , 2119 , 2213 , 2239 , 2271 , 2289 , 2321 , 2333 , 2346 , &
       2349 , 2352 , 2359 , 2367 , 2374 , 2398 , 2426 , 2562 , 2701 , 2741 , &
       2745 , 2760 , 2819 , 2889 , 2907 , 2910 , 2919 , 2921 , 2939 , 2944 , &
       2945 , 2948 , 2951 , 2958 , 2971 , 2977 , 2985 , 2988 , 2990 , 2991 , &
       2993 , 3002 , 3008 , 3014 , 3027 , 3029 , 3030 , 3036 , 3047 , 3049 , &
       3052 , 3053 , 3055 , 3058 , 3064 , 3069 , 3087 , 3093 , 3098 , 3105 , &
       3107 , 3110 , 3116 , 3127 , 3129 , 3136 , 3146 , 3151 , 3160 , 3165 , &
       3168 , 3175 , 3178 , 3189 , 3207 , 3228 , 3244 , 3248 , 3252 , 3256 , &
       3263 , 3281 , 3295 , 3303 , 3309 , 3312 , 3322 , 3326 , 3354 , 3366 , &
       3375 , 3378 , 3411 , 3416 , 3432 , 3438 , 3440 , 3442 , 3444 , 3446 , &
       3448 , 3450 , 3452 , 3454 , 3458 , 3467 , 3476 , 3484 , 3491 , 3497 , &
       3499 , 3504 , 3506 , 3509 , 3518 , 3527 , 3555 , 3575 , 3577 , 3580 , &
       3582 , 3586 , 3589 , 3599 , 3610 , 3626 , 3638 , 3646 , 3653 , 3658 , &
       3661 , 3673 , 3689 , 3700 , 3710 , 3726 , 3763 , 3814 , 3841 , 3888 , &
       4032 , 4059 , 4068 , 4082 , 4095 , 4160 , 4234 , 4257 , 4411 , 4498 , &
       4520 , 4552 , 4567 , 4608 , 4646 , 4698 , 4808 , 4849 , 4920 , 4939 , &
       4947 , 4967 , 4991 , 4996 , 5015 , 5028 , 5056 , 5128 , 5130 , 5144 , &
       5170 , 5178 , 5183 , 5188 , 5191 , 5368 , 5371 , 5379 , 5381 , 5383 , &
       5397 , 5399 , 5401 , 5403 , 5405 , 5446 , 5455 , 5472 , 5480 , 5483 , &
       5485 , 5492 , 5497 , 5502 , 5507 , 5509 , 5517 , 5528 , 5558 , 5697 , &
       5714 , 5749 , 5766 , 5785 , 5798 , 5799 , 5801 , 5817 , 5833 , 5834 , &
       5836 , 5849 , 5851 , 5852 , 5865 , 5869 , 5881 , 5884 , 5897 , 5900 , &
       5916 , 5932 , 5948 , 5963 , 5968 , 5978 , 5988 , 5992 , 5994 , 5997 , &
       6003 , 6008 , 6023 , 6026 , 6039 , 6053 , 6056 , 6067 , 6071 , 6082 , &
       6085 , 6098 , 6112 , 6126 , 6135 , 6140 , 6149 , 6154 , 6158 , 6161 , &
       6168 , 6174 , 6182 , 6187 , 6205 , 6209 , 6213 , 6317 , 6339 , 6342 , &
       6366 , 6381 , 6391 , 6489 , 6962 , 6966 , 6970 , 6975 , 6977 , 6982 , &
       6985 , 6987 , 6989 , 6991 , 6993 , 6995 , 6997 , 6999 , 7000 , 7004 , &
       7008 , 7013 , 7016 , 7021 , 7024 , 7027 , 7029 , 7032 , 7038 , 7043 , &
       7046 , 7049 , 7069 , 7072 , 7076 , 7081 , 7084 , 7089 , 7099 , 7209 , &
       7222 , 7231 , 7235 , 7247 , 7267 , 7269 , 7284 , 7389 , 7419 , 7423 , &
       7424 , 7426 , 7428 , 7431 , 7436 , 7444 , 7475 , 7549 , 7584 , 7665 , &
       7666 , 7831 , 7836 , 7853 , 7865 , 7885 , 7888 , 7912 , 7950 , 7972 , &
       7980 , 7995 , 8007 , 8015 , 8055 , 8078 / ! 611-616
  


  DATA IASISCH(1:902) /     &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 1 , -1,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 2 , -1 , -1 , 3 , -1 ,& 
       -1 , 4 , -1 , -1 , 5 , -1 , -1 , 6 , -1 , -1 , 7 , -1 , -1 , 8 , -1 , 9 , 10 , 11,& 
       -1 , 12 , -1 , 13 , 14 , 15 , -1 , 16 , -1 , 17 , 18 , 19 , -1 , -1 , 20 , -1 ,& 
       21 , -1 , 22 , -1 , 23 , -1 , 24 , -1 , 25 , -1 , 26 , 27 , -1 , 28 , 29 , 30 ,& 
       31 , 32 , 33 , 34 , -1 , 35 , -1 , -1 , 36 , 37 , -1 , 38 , -1 , 39 , -1 , 40 ,& 
       -1 , 41 , -1 , 42 , 43 , -1 , 44 , -1 , -1 , 45 , 46 , 47 , -1 , 48 , -1 , -1 ,& 
       49 , -1 , -1 , 50 , -1 , -1 , 51 , -1 , -1 , 52 , -1 , -1 , 53 , -1 , -1 , 54 ,& 
       -1 , 55 , -1 , 56 , -1 , -1 , 57 , -1 , -1 , 58 , -1 , -1 , 59 , -1 , 60 , -1 ,& 
       61 , -1 , 62 , 63 , -1 , -1 , 64 , -1 , -1 , 65 , -1 , 66 , 67 , 68 , -1 , 69 ,& 
       -1 , -1 , -1 , 70 , -1 , -1 , 71 , -1 , -1 , 72 , -1 , -1 , 73 , -1 , -1 , 74 ,& 
       75 , -1 , -1 , -1 , -1 , 76 , -1 , 77 , -1 , -1 , -1 , 78 , -1 , 79 , -1 , -1 ,& 
       -1 , 80 , -1 , 81 , 82 , -1 , 83 , 84 , -1 , 85 , -1 , 86 , -1 , -1 , 87 , -1 ,& 
       88 , 89 , 90 , -1 , -1 , 91 , 92 , 93 , -1 , -1 , 94 , -1 , 95 , 96 , 97 , -1 ,& 
       98 , -1 , 99 , 100 , 101 , -1 , -1 , -1 , 102 , 103 , -1 , 104 , -1 , -1 , -1 ,& 
       105 , -1 , -1 , 106 , -1 , -1 , 107 , -1 , -1 , 108 , -1 , 109 , -1 , -1 , -1 ,& 
       -1 , 110 , 111 , -1 , 112 , -1 , -1 , 113 , -1 , 114 , -1 , 115 , -1 , -1 , -1 ,& 
       -1 , -1 , 116 , -1 , -1 , -1 , 117 , -1 , -1 , 118 , -1 , -1 , 119 , -1 , -1 , -1,& 
       -1 , -1 , -1 , -1 , -1 , 120 , -1 , 121 , -1 , -1 , 122 , 123 , -1 , -1 , 124 ,& 
       -1 , -1 , 125 , -1 , -1 , 126 , -1 , -1 , -1 , 127 , -1 , -1 , -1 , -1 , -1 , -1,& 
       128 , -1 , -1 , 129 , -1 , -1 , 130 , 131 , -1 , 132 , -1 , -1 , 133 , -1 , -1,& 
       134 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 135 , -1 , 136 , -1 , -1 ,& 
       137 , -1 , -1 , -1 , 138 , -1 , 139 , -1 , -1 , -1 , 140 , -1 , -1 , 141 , -1 ,& 
       -1 , 142 , -1 , -1 , -1 , -1 , 143 , 144 , 145 , -1 , 146 , -1 , 147 , -1 , 148 ,& 
       -1 , 149 , -1 , 150 , -1 , -1 , 151 , -1 , -1 , 152 , -1 , -1 , -1 , -1 , -1 , -1,& 
       -1 , -1 , 153 , -1 , -1 , 154 , -1 , -1 , 155 , 156 , -1 , 157 , 158 , -1 , 159 ,&
       160 , -1 , -1 , 161 , -1 , 162 , -1 , 163 , -1 , -1 , -1 , -1 , 164 , -1 , -1 ,& 
       165 , -1 , 166 , -1 , -1 , -1 , 167 , 168 , 169 , -1 , -1 , -1 , -1 , 170 , -1 ,& 
       -1 , 171 , -1 , -1 , 172 , -1 , -1 , -1 , -1 , 173 , -1 , -1 , -1 , -1 , -1 , -1,& 
       174 , -1 , 175 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       176 , -1 , -1 , -1 , -1 , 177 , -1 , -1 , -1 , -1 , -1 , 178 , -1 , -1 , -1 , -1,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , 179 , -1 , -1 , -1 , -1 , -1 , 180 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 181 , -1 , -1 , -1 , -1 , -1 ,& 
       182 , -1 , -1 , -1 , -1 , -1 , -1 , 183 , -1 , -1 , -1 , -1 , -1 , -1 , 184 , -1,& 
       -1 , -1 , -1 , 185 , -1 , 186 , -1 , -1 , -1 , -1 , 187 , -1 , -1 , -1 , -1 ,& 
       -1 , 188 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 189 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 190 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 191 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 192 ,& 
       -1 , -1 , -1 , -1 , -1 , 193 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 194 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 195 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 196 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , 197 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 198 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 /

  DATA IASISCH(903:1871) / &
       -1 , -1 , -1 , 199 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , 200 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 201 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 202 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 203 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , 204 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 205 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , 206 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 207 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       208 , -1 , -1 , 209 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 210 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       211 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 212 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , 213 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 214 , -1 , -1 , -1 , -1 , 215 ,& 
       -1 , -1 , -1 , -1 , -1 , 216 , -1 , -1 , -1 , 217 , -1 , -1 , 218 , -1 , -1 , 219,& 
       -1 , -1 , -1 , 220 , -1 , -1 , -1 , -1 , -1 , 221 , -1 , 222 , -1 , -1 , 223 ,& 
       -1 , -1 , -1 , -1 , 224 , -1 , -1 , -1 , 225 , -1 , -1 , -1 , -1 , -1 , 226 , -1,& 
       -1 , 227 , -1 , -1 , -1 , -1 , -1 , 228 , -1 , -1 , -1 , -1 , 229 , -1 , -1 ,& 
       -1 , -1 , 230 , -1 , -1 , -1 , 231 , -1 , -1 , -1 , 232 , -1 , -1 , -1 , -1 , -1,& 
       -1 , 233 , -1 , 234 , -1 , -1 , -1 , -1 , -1 , 235 , -1 , -1 , 236 , -1 , -1 ,& 
       -1 , 237 , 238 , -1 , -1 , 239 , -1 , -1 , -1 , -1 , 240 , -1 , -1 , 241 , -1 ,& 
       -1 , -1 , -1 , 242 , -1 , -1 , 243 , -1 , -1 , 244 , -1 , -1 , -1 , 245 , 246 ,& 
       -1 , -1 , -1 , 247 , -1 , -1 , -1 , 248 , -1 , -1 , 249 , -1 , -1 , -1 , -1 , 250,& 
       -1 , -1 , -1 , -1 , -1 , -1 , 251 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 252 , -1,& 
       -1 , -1 , -1 , -1 , 253 , -1 , -1 , -1 , -1 , 254 , -1 , -1 , -1 , 255 , -1 ,& 
       256 , -1 , 257 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , 258 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 259 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , 260 , -1 , -1 , -1 , 261 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , 262 , -1 , -1 , -1 , -1 , -1 , 263 , 264 , -1 , -1 , -1 , -1 , -1,& 
       -1 , 265 , -1 , -1 , -1 , -1 , 266 , -1 , -1 , -1 , 267 , -1 , -1 , -1 , -1 ,& 
       -1 , 268 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 269 , -1 ,& 
       -1 , 270 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 271 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 272 , -1 , -1 , -1 , -1 , 273 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 274 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 275 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 /

  DATA IASISCH(1872:2815) / &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 276 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 277 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 278 , 279 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , 280 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , 281 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 282 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , 283 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , 284 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 285 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 286 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , 287 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , 288 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 289 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 290 , -1 , -1 , 291 , -1 , -1 , &
       292 , -1 , -1 , -1 , -1 , -1 , -1 , 293 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 294, &
       -1 , -1 , -1 , -1 , -1 , -1 , 295 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 296 , -1, &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 297 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , 298 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 299 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , 300 , -1 , -1 , -1 , 301 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 302 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 /

  DATA IASISCH(2816:8461) / &
       -1 , -1 , -1 , 303 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 304 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 305 , -1 , -1 , 306 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , 307 , -1 , 308 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 309 , -1 , -1 , -1 , -1 , &
       310 , 311 , -1 , -1 , 312 , -1 , -1 , 313 , -1 , -1 , -1 , -1 , -1 , -1 , 314 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 315 , -1 , -1 , -1 , &
       -1 , -1 , 316 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 317 , -1 , -1 , 318 , -1 , 319, &
       320 , -1 , 321 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 322 , -1 , -1 , -1 , &
       -1 , -1 , 323 , -1 , -1 , -1 , -1 , -1 , 324 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , 325 , -1 , 326 , 327 , -1 , -1 , -1 , -1 , -1 , 328 , -1, &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 329 , -1 , 330 , -1 , -1 , 331 , &
       332 , -1 , 333 , -1 , -1 , 334 , -1 , -1 , -1 , -1 , -1 , 335 , -1 , -1 , -1 , -1, &
       336 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1, &
       -1 , -1 , 337 , -1 , -1 , -1 , -1 , -1 , 338 , -1 , -1 , -1 , -1 , 339 , -1 , &
       -1 , -1 , -1 , -1 , -1 , 340 , -1 , 341 , -1 , -1 , 342 , -1 , -1 , -1 , -1 , -1, &
       343 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 344 , -1 , 345 , -1 , &
       -1 , -1 , -1 , -1 , -1 , 346 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 347 , &
       -1 , -1 , -1 , -1 , 348 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 349 , -1 , -1 , &
       -1 , -1 , 350 , -1 , -1 , 351 , -1 , -1 , -1 , -1 , -1 , -1 , 352 , -1 , -1 , 353, &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 354 , -1 , -1 , -1 , -1 , -1, &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 355 , -1 , -1 , -1, &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , 356 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , 357 , -1 , -1 , -1 , 358 , -1 , -1 , -1 , 359 , -1 , -1 , -1 , 360 , -1 , -1, &
       -1 , -1 , -1 , -1 , 361 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1, &
       -1 , -1 , -1 , -1 , -1 , -1 , 362 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1, &
       -1 , -1 , -1 , -1 , 363 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 364 , -1 , -1 , -1, &
       -1 , -1 , 365 , -1 , -1 , 366 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       367 , -1 , -1 , -1 , 368 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       369 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 370 , -1 , -1 , -1 ,  &
       -1 , -1 , -1 , -1 , -1 , 371 , -1 , -1 , 372 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 373 , -1 , -1 , -1 , -1 , 374 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 375 , -1 , &
       -1 , -1 , -1 , -1 , 376 , -1 , 377 , -1 , 378 , -1 , 379 , -1 , 380 , -1 , 381 , &
       -1 , 382 , -1 , 383 , -1 , 384 , -1 , -1 , -1 , 385 , -1 , -1 , -1 , -1 , -1 , -1, &
       -1 , -1 , 386 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 387 , -1 , -1 , -1 , -1, &
       -1 , -1 , -1 , 388 , -1 , -1 , -1 , -1 , -1 , -1 , 389 , -1 , -1 , -1 , -1 , -1, &
       390 , -1 , 391 , -1 , -1 , -1 , -1 , 392 , -1 , 393 , -1 , -1 , 394 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , 395 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 396 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 397 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 398 , &
       -1 , 399 , -1 , -1 , 400 , -1 , 401 , -1 , -1 , -1 , 402 , -1 , -1 , 403 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 404 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , 405 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , 406 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 407 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , 408 , -1 , -1 , -1 , -1 , -1 , -1 , 409 , -1 , &
       -1 , -1 , -1 , 410 , -1 , -1 , 411 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , 412 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , 413 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 414 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , 415 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , 416 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 417 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 418 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 419 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 420 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 421 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , 422 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 423 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 424 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 425 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 426 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , 427 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 428 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , 429 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 430 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , 431 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , 432 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       433 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 434 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 435 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , 436 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , 437 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 438 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , 439 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , 440 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 441 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       442 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 443 , -1 , -1 , -1 , -1 , 444 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       445 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 446 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 447 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , 448 , -1 , 449 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , 450 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 451 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , 452 , -1 , -1 , -1 , -1 , 453 , -1 , -1 , -1 , -1 , 454 , -1 , -1, &
       455 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1, &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , 456 , -1 , -1 , 457 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 458 , -1 , 459 , -1, &
       460 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 461 , -1, &
       462 , -1 , 463 , -1 , 464 , -1 , 465 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       466 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 467 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 468 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , 469 , -1 , -1 , 470 , -1 , 471 , -1 , -1 , -1 , -1 , -1 , -1 , 472 , -1, &
       -1 , -1 , -1 , 473 , -1 , -1 , -1 , -1 , 474 , -1 , -1 , -1 , -1 , 475 , -1 , &
       476 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 477 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , 478 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , 479 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 480 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 481 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       482 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , 483 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , 484 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , 485 , 486 , -1 , 487 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1, &
       -1 , -1 , -1 , -1 , 488 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1, &
       -1 , -1 , -1 , -1 , 489 , 490 , -1 , 491 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , 492 , -1 , 493 , 494 , -1 , -1 , -1 , -1 , -1 , -1 , -1, &
       -1 , -1 , -1 , -1 , -1 , 495 , -1 , -1 , -1 , 496 , -1 , -1 , -1 , -1 , -1 , -1, &
       -1 , -1 , -1 , -1 , -1 , 497 , -1 , -1 , 498 , -1 , -1 , -1 , -1 , -1 , -1 , -1, &
       -1 , -1 , -1 , -1 , -1 , 499 , -1 , -1 , 500 , -1 , -1 , -1 , -1 , -1 , -1 , -1, &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 501 , -1 , -1 , -1 , -1 , -1 , -1 , -1, &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 502 , -1 , -1 , -1 , -1 , -1 , -1 , -1, &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 503 , -1 , -1 , -1 , -1 , -1 , -1 , -1, &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , 504 , -1 , -1 , -1 , -1 , 505 , -1 , -1 , -1, &
       -1 , -1 , -1 , -1 , -1 , -1 , 506 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1, &
       507 , -1 , -1 , -1 , 508 , -1 , 509 , -1 , -1 , 510 , -1 , -1 , -1 , -1 , -1 , & 
       511 , -1 , -1 , -1 , -1 , 512 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , 513 , -1 , -1 , 514 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , 515 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , 516 , -1 , -1 , 517 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       518 , -1 , -1 , -1 , 519 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 520, &
       -1 , -1 , 521 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 522, &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 523 , -1 , -1, &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 524 , -1 , -1 , -1 , -1, &
       -1 , -1 , -1 , -1 , 525 , -1 , -1 , -1 , -1 , 526 , -1 , -1 , -1 , -1 , -1 , -1, &
       -1 , -1 , 527 , -1 , -1 , -1 , -1 , 528 , -1 , -1 , -1 , 529 , -1 , -1 , 530 , &
       -1 , -1 , -1 , -1 , -1 , -1 , 531 , -1 , -1 , -1 , -1 , -1 , 532 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , 533 , -1 , -1 , -1 , -1 , 534 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 535 , -1 , -1 , -1 , 536 , &
       -1 , -1 , -1 , 537 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 538 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , 539 , -1 , -1 , 540 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 541 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 542 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , 543 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , 544 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       545 , -1 , -1 , -1 , 546 , -1 , -1 , -1 , 547 , -1 , -1 , -1 , -1 , 548 , -1 , &
       549 , -1 , -1 , -1 , -1 , 550 , -1 , -1 , 551 , -1 , 552 , -1 , 553 , -1 , 554 , &
       -1 , 555 , -1 , 556 , -1 , 557 , -1 , 558 , 559 , -1 , -1 , -1 , 560 , -1 , -1 , &
       -1 , 561 , -1 , -1 , -1 , -1 , 562 , -1 , -1 , 563 , -1 , -1 , -1 , -1 , 564 , -1, &
       -1 , 565 , -1 , -1 , 566 , -1 , 567 , -1 , -1 , 568 , -1 , -1 , -1 , -1 , -1 , &
       569 , -1 , -1 , -1 , -1 , 570 , -1 , -1 , 571 , -1 , -1 , 572 , -1 , -1 , -1 , -1, &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 573, &
       -1 , -1 , 574 , -1 , -1 , -1 , 575 , -1 , -1 , -1 , -1 , 576 , -1 , -1 , 577 , &
       -1 , -1 , -1 , -1 , 578 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 579 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 580 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 581 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , 582 , -1 , -1 , -1 , 583 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , 584 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , 585 , -1 , 586 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,& 
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , 587 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       588 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 589 , -1 , &
       -1 , -1 , 590 , 591 , -1 , 592 , -1 , 593 , -1 , -1 , 594 , -1 , -1 , -1 , -1 , &
       595 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 596 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , 597 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , 598 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , 599 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , 600 , 601 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 602 , -1 , -1 , -1 , -1 , &
       603 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , 604 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 605 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , 606 , -1 , -1 , 607 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 608 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , 609 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 610 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       611 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 612 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 613 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , 614 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , 615 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , 616 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , &
       -1 , -1 /

  DATA IASISWN /     &
       648.75d0, 652.00d0, 652.75d0, 653.50d0, 654.25d0, 655.00d0, 655.75d0, 656.50d0, 657.00d0, 657.25d0, 657.50d0,  &
       658.00d0, 658.50d0, 658.75d0, 659.00d0, 659.50d0, 660.00d0, 660.25d0, 660.50d0, 661.25d0, 661.75d0, 662.25d0,  &
       662.75d0, 663.25d0, 663.75d0, 664.25d0, 664.50d0, 665.00d0, 665.25d0, 665.50d0, 665.75d0, 666.00d0, 666.25d0,  &
       666.50d0, 667.00d0, 667.75d0, 668.00d0, 668.50d0, 669.00d0, 669.50d0, 670.00d0, 670.50d0, 670.75d0, 671.25d0,  &
       672.00d0, 672.25d0, 672.50d0, 673.00d0, 673.75d0, 674.50d0, 675.25d0, 676.00d0, 676.75d0, 677.50d0, 678.00d0,  &
       678.50d0, 679.25d0, 680.00d0, 680.75d0, 681.25d0, 681.75d0, 682.25d0, 682.50d0, 683.25d0, 684.00d0, 684.50d0,  &
       684.75d0, 685.00d0, 685.50d0, 686.50d0, 687.25d0, 688.00d0, 688.75d0, 689.50d0, 689.75d0, 691.00d0, 691.50d0,  &
       692.50d0, 693.00d0, 694.00d0, 694.50d0, 694.75d0, 695.25d0, 695.50d0, 696.00d0, 696.50d0, 697.25d0, 697.75d0,  &
       698.00d0, 698.25d0, 699.00d0, 699.25d0, 699.50d0, 700.25d0, 700.75d0, 701.00d0, 701.25d0, 701.75d0, 702.25d0,  &
       702.50d0, 702.75d0, 703.75d0, 704.00d0, 704.50d0, 705.50d0, 706.25d0, 707.00d0, 707.75d0, 708.25d0, 709.50d0,  &
       709.75d0, 710.25d0, 711.00d0, 711.50d0, 712.00d0, 713.50d0, 714.50d0, 715.25d0, 716.00d0, 718.25d0, 718.75d0,  &
       719.50d0, 719.75d0, 720.50d0, 721.25d0, 722.00d0, 723.00d0, 724.75d0, 725.50d0, 726.25d0, 726.50d0, 727.00d0,  &
       727.75d0, 728.50d0, 731.00d0, 731.50d0, 732.25d0, 733.25d0, 733.75d0, 734.75d0, 735.50d0, 736.25d0, 737.50d0,  &
       737.75d0, 738.00d0, 738.50d0, 739.00d0, 739.50d0, 740.00d0, 740.50d0, 741.25d0, 742.00d0, 744.25d0, 745.00d0,  &
       745.75d0, 746.00d0, 746.50d0, 746.75d0, 747.25d0, 747.50d0, 748.25d0, 748.75d0, 749.25d0, 750.50d0, 751.25d0,  &
       751.75d0, 752.75d0, 753.00d0, 753.25d0, 754.50d0, 755.25d0, 756.00d0, 757.25d0, 759.00d0, 759.50d0, 762.75d0,  &
       764.00d0, 765.50d0, 772.00d0, 773.50d0, 781.25d0, 782.75d0, 784.50d0, 786.25d0, 787.50d0, 788.00d0, 789.25d0,  &
       790.75d0, 793.25d0, 801.00d0, 806.25d0, 810.25d0, 811.75d0, 821.00d0, 829.50d0, 833.75d0, 844.00d0, 861.50d0,  &
       871.25d0, 875.00d0, 901.50d0, 906.25d0, 917.25d0, 919.25d0, 925.00d0, 928.00d0, 938.00d0, 942.50d0, 943.25d0,  &
       950.25d0, 962.50d0, 965.50d0, 979.25d0, 997.00d0, 998.25d0, 999.75d0, 1000.75d0, 1001.50d0, 1002.25d0,  &
       1003.25d0, 1004.75d0, 1005.25d0, 1006.00d0, 1007.25d0, 1008.25d0, 1009.75d0, 1010.50d0, 1012.00d0, 1013.25d0,  &
       1014.50d0, 1015.50d0, 1016.50d0, 1018.25d0, 1018.75d0, 1020.25d0, 1021.00d0, 1022.00d0, 1022.25d0, 1023.00d0,  &
       1024.25d0, 1025.00d0, 1026.25d0, 1027.00d0, 1027.75d0, 1028.75d0, 1029.00d0, 1030.00d0, 1031.00d0, 1031.75d0,  &
       1033.00d0, 1034.75d0, 1036.75d0, 1038.25d0, 1039.50d0, 1040.50d0, 1041.00d0, 1041.50d0, 1046.25d0, 1051.25d0,  &
       1054.50d0, 1055.50d0, 1057.75d0, 1059.25d0, 1059.50d0, 1061.25d0, 1062.50d0, 1063.50d0, 1065.00d0, 1068.25d0,  &
       1069.00d0, 1072.25d0, 1091.25d0, 1092.50d0, 1096.00d0, 1104.50d0, 1115.75d0, 1123.00d0, 1131.25d0, 1131.50d0,  &
       1142.50d0, 1149.50d0, 1168.25d0, 1174.50d0, 1198.00d0, 1204.50d0, 1212.50d0, 1217.00d0, 1225.00d0, 1228.00d0,  &
       1231.25d0, 1232.00d0, 1232.75d0, 1234.50d0, 1236.50d0, 1238.25d0, 1244.25d0, 1251.25d0, 1285.25d0, 1320.00d0,  &
       1330.00d0, 1331.00d0, 1334.75d0, 1349.50d0, 1367.00d0, 1371.50d0, 1372.25d0, 1374.50d0, 1375.00d0, 1379.50d0,  &
       1380.75d0, 1381.00d0, 1381.75d0, 1382.50d0, 1384.25d0, 1387.50d0, 1389.00d0, 1391.00d0, 1391.75d0, 1392.25d0,  &
       1392.50d0, 1393.00d0, 1395.25d0, 1396.75d0, 1398.25d0, 1401.50d0, 1402.00d0, 1402.25d0, 1403.75d0, 1406.50d0,  &
       1407.00d0, 1407.75d0, 1408.00d0, 1408.50d0, 1409.25d0, 1410.75d0, 1412.00d0, 1416.50d0, 1418.00d0, 1419.25d0,  &
       1421.00d0, 1421.50d0, 1422.25d0, 1423.75d0, 1426.50d0, 1427.00d0, 1428.75d0, 1431.25d0, 1432.50d0, 1434.75d0,  &
       1436.00d0, 1436.75d0, 1438.50d0, 1439.25d0, 1442.00d0, 1446.50d0, 1451.75d0, 1455.75d0, 1456.75d0, 1457.75d0,  &
       1458.75d0, 1460.50d0, 1465.00d0, 1468.50d0, 1470.50d0, 1472.00d0, 1472.75d0, 1475.25d0, 1476.25d0, 1483.25d0,  &
       1486.25d0, 1488.50d0, 1489.25d0, 1497.50d0, 1498.75d0, 1502.75d0, 1504.25d0, 1504.75d0, 1505.25d0, 1505.75d0,  &
       1506.25d0, 1506.75d0, 1507.25d0, 1507.75d0, 1508.25d0, 1509.25d0, 1511.50d0, 1513.75d0, 1515.75d0, 1517.50d0,  &
       1519.00d0, 1519.50d0, 1520.75d0, 1521.25d0, 1522.00d0, 1524.25d0, 1526.50d0, 1533.50d0, 1538.50d0, 1539.00d0,  &
       1539.75d0, 1540.25d0, 1541.25d0, 1542.00d0, 1544.50d0, 1547.25d0, 1551.25d0, 1554.25d0, 1556.25d0, 1558.00d0,  &
       1559.25d0, 1560.00d0, 1563.00d0, 1567.00d0, 1569.75d0, 1572.25d0, 1576.25d0, 1585.50d0, 1598.25d0, 1605.00d0,  &
       1616.75d0, 1652.75d0, 1659.50d0, 1661.75d0, 1665.25d0, 1668.50d0, 1684.75d0, 1703.25d0, 1709.00d0, 1747.50d0,  &
       1769.25d0, 1774.75d0, 1782.75d0, 1786.50d0, 1796.75d0, 1806.25d0, 1819.25d0, 1846.75d0, 1857.00d0, 1874.75d0,  &
       1879.50d0, 1881.50d0, 1886.50d0, 1892.50d0, 1893.75d0, 1898.50d0, 1901.75d0, 1908.75d0, 1926.75d0, 1927.25d0,  &
       1930.75d0, 1937.25d0, 1939.25d0, 1940.50d0, 1941.75d0, 1942.50d0, 1986.75d0, 1987.50d0, 1989.50d0, 1990.00d0,  &
       1990.50d0, 1994.00d0, 1994.50d0, 1995.00d0, 1995.50d0, 1996.00d0, 2006.25d0, 2008.50d0, 2012.75d0, 2014.75d0,  &
       2015.50d0, 2016.00d0, 2017.75d0, 2019.00d0, 2020.25d0, 2021.50d0, 2022.00d0, 2024.00d0, 2026.75d0, 2034.25d0,  &
       2069.00d0, 2073.25d0, 2082.00d0, 2086.25d0, 2091.00d0, 2094.25d0, 2094.50d0, 2095.00d0, 2099.00d0, 2103.00d0,  &
       2103.25d0, 2103.75d0, 2107.00d0, 2107.50d0, 2107.75d0, 2111.00d0, 2112.00d0, 2115.00d0, 2115.75d0, 2119.00d0,  &
       2119.75d0, 2123.75d0, 2127.75d0, 2131.75d0, 2135.50d0, 2136.75d0, 2139.25d0, 2141.75d0, 2142.75d0, 2143.25d0,  &
       2144.00d0, 2145.50d0, 2146.75d0, 2150.50d0, 2151.25d0, 2154.50d0, 2158.00d0, 2158.75d0, 2161.50d0, 2162.50d0,  &
       2165.25d0, 2166.00d0, 2169.25d0, 2172.75d0, 2176.25d0, 2178.50d0, 2179.75d0, 2182.00d0, 2183.25d0, 2184.25d0,  &
       2185.00d0, 2186.75d0, 2188.25d0, 2190.25d0, 2191.50d0, 2196.00d0, 2197.00d0, 2198.00d0, 2224.00d0, 2229.50d0,  &
       2230.25d0, 2236.25d0, 2240.00d0, 2242.50d0, 2267.00d0, 2385.25d0, 2386.25d0, 2387.25d0, 2388.50d0, 2389.00d0,  &
       2390.25d0, 2391.00d0, 2391.50d0, 2392.00d0, 2392.50d0, 2393.00d0, 2393.50d0, 2394.00d0, 2394.50d0, 2394.75d0,  &
       2395.75d0, 2396.75d0, 2398.00d0, 2398.75d0, 2400.00d0, 2400.75d0, 2401.50d0, 2402.00d0, 2402.75d0, 2404.25d0,  &
       2405.50d0, 2406.25d0, 2407.00d0, 2412.00d0, 2412.75d0, 2413.75d0, 2415.00d0, 2415.75d0, 2417.00d0, 2419.50d0,  &
       2447.00d0, 2450.25d0, 2452.50d0, 2453.50d0, 2456.50d0, 2461.50d0, 2462.00d0, 2465.75d0, 2492.00d0, 2499.50d0,  &
       2500.50d0, 2500.75d0, 2501.25d0, 2501.75d0, 2502.50d0, 2503.75d0, 2505.75d0, 2513.50d0, 2532.00d0, 2540.75d0,  &
       2561.00d0, 2561.25d0, 2602.50d0, 2603.75d0, 2608.00d0, 2611.00d0, 2616.00d0, 2616.75d0, 2622.75d0, 2632.25d0,  &
       2637.75d0, 2639.75d0, 2643.50d0, 2646.50d0, 2648.50d0, 2658.50d0, 2664.25d0 /    


  INTEGER, PARAMETER :: CRISSNCH = 399, CRISRNCH = 1305

  INTEGER   :: CRISRCH(CRISSNCH)
  Integer ,target ::CRISSCH(CRISRNCH)
  REAL (8)  :: CRISSWN(CRISSNCH)
  INTEGER ,target  :: CRIS_ASSIM(CRISSNCH)

  DATA CRISRCH /     &
       27, 28, 31, 32, 33, 37, 49, 51, 53, 59, &! 1-10
       61, 63, 64, 65, 67, 69, 71, 73, 75, 79, &
       80 , 81, 83, 85, 87, 88, 89, 93, 95, 96, &
       99 , 101, 102, 104, 106, 107, 111, 113, 116, 120, &
       123, 124, 125, 126, 130, 132, 133, 136, 137, 138, &
       142, 143, 144, 145, 147, 148, 150, 151, 153, 154, &
       155, 157, 158, 159, 160, 161, 162, 163, 164, 165, &
       166, 168, 170, 171, 173, 175, 181, 183, 198, 208, &
       211, 216, 224, 228, 236, 238, 242, 248, 266, 268, &
       279, 283, 311, 317, 330, 333, 334, 338, 340, 341, &
       342, 349, 352, 358, 361, 364, 366, 367, 368, 378, &
       390, 391, 392, 394, 395, 396, 397, 398, 399, 404, &
       427, 447, 464, 473, 482, 484, 501, 529, 556, 557, &
       558, 560, 561, 562, 564, 565, 566, 569, 573, 574, &
       577, 580, 581, 584, 585, 587, 590, 591, 594, 597, &
       598, 601, 604, 607, 611, 614, 616, 617, 619, 622, &
       626, 628, 634, 637, 638, 640, 641, 642, 644, 646, &
       647, 650, 651, 652, 654, 655, 657, 659, 663, 667, &
       670, 707, 710, 713, 716, 730, 735, 736, 739, 743, &
       744, 746, 748, 751, 754, 755, 756, 757, 758, 760, &
       761, 762, 763, 766, 767, 768, 771, 772, 773, 776, &
       777, 778, 779, 780, 782, 783, 784, 785, 786, 787, &
       788, 789, 790, 791, 792, 794, 796, 798, 800, 802, &
       803, 804, 806, 807, 808, 809, 811, 812, 814, 816, &
       819, 820, 821, 822, 823, 824, 825, 826, 827, 828, &
       829, 830, 831, 832, 833, 834, 835, 836, 838, 839, &
       840, 842, 843, 844, 845, 846, 847, 848, 849, 850, &
       851, 852, 853, 854, 856, 861, 862, 864, 865, 866, &
       867, 869, 871, 872, 874, 876, 878, 879, 880, 884, &
       886, 887, 888, 889, 890, 900, 921, 924, 927, 945, &
       991, 994, 1007, 1015, 1030, 1094, 1106, 1130, 1132, 1133, &
       1135, 1142, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, &
       1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, &
       1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, &
       1175, 1177, 1178, 1179, 1180, 1181, 1187, 1189, 1190, 1192, &
       1193, 1194, 1196, 1197, 1198, 1199, 1200, 1202, 1203, 1204, &
       1206, 1207, 1208, 1210, 1212, 1214, 1215, 1217, 1218, 1220, &
       1222, 1224, 1226, 1228, 1229, 1231, 1232, 1234, 1235, 1236, &
       1237, 1238, 1239, 1241, 1242, 1243, 1244, 1245, 1247, 1250, &
       1270, 1271, 1282, 1285, 1288, 1290, 1293, 1298, 1301 / ! 391-399
  
  DATA CRISSCH /     &
       -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 , &
       -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 , &
       -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,    1 ,    2 ,   -1 ,   -1 , &
       3 ,    4 ,    5 ,   -1 ,   -1 ,   -1 ,    6 ,   -1 ,   -1 ,   -1 , &
       -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,    7 ,   -1 , &
       8 ,   -1 ,    9 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   10 ,   -1 , &
       11 ,   -1 ,   12 ,   13 ,   14 ,   -1 ,   15 ,   -1 ,   16 ,   -1 , &
       17 ,   -1 ,   18 ,   -1 ,   19 ,   -1 ,   -1 ,   -1 ,   20 ,   21 , &
       22 ,   -1 ,   23 ,   -1 ,   24 ,   -1 ,   25 ,   26 ,   27 ,   -1 , &
       -1 ,   -1 ,   28 ,   -1 ,   29 ,   30 ,   -1 ,   -1 ,   31 ,   -1 , &
       32 ,   33 ,   -1 ,   34 ,   -1 ,   35 ,   36 ,   -1 ,   -1 ,   -1 , &
       37 ,   -1 ,   38 ,   -1 ,   -1 ,   39 ,   -1 ,   -1 ,   -1 ,   40 , &
       -1 ,   -1 ,   41 ,   42 ,   43 ,   44 ,   -1 ,   -1 ,   -1 ,   45 , &
       -1 ,   46 ,   47 ,   -1 ,   -1 ,   48 ,   49 ,   50 ,   -1 ,   -1 , &
       -1 ,   51 ,   52 ,   53 ,   54 ,   -1 ,   55 ,   56 ,   -1 ,   57 , &
       58 ,   -1 ,   59 ,   60 ,   61 ,   -1 ,   62 ,   63 ,   64 ,   65 , &
       66 ,   67 ,   68 ,   69 ,   70 ,   71 ,   -1 ,   72 ,   -1 ,   73 , &
       74 ,   -1 ,   75 ,   -1 ,   76 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 , &
       77 ,   -1 ,   78 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 , &
       -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   79 ,   -1 ,   -1 , &
       -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   80 ,   -1 ,   -1 , &
       81 ,   -1 ,   -1 ,   -1 ,   -1 ,   82 ,   -1 ,   -1 ,   -1 ,   -1 , &
       -1 ,   -1 ,   -1 ,   83 ,   -1 ,   -1 ,   -1 ,   84 ,   -1 ,   -1 , &
       -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   85 ,   -1 ,   86 ,   -1 ,   -1 , &
       -1 ,   87 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   88 ,   -1 ,   -1 , &
       -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 , &
       -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   89 ,   -1 ,   90 ,   -1 ,   -1 , &
       -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   91 ,   -1 , &
       -1 ,   -1 ,   92 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 , &
       -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 , &
       -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 , &
       93 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   94 ,   -1 ,   -1 ,   -1 , &
       -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   95 , &
       -1 ,   -1 ,   96 ,   97 ,   -1 ,   -1 ,   -1 ,   98 ,   -1 ,   99 , &
       100 ,  101 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,  102 ,   -1 , &
       -1 ,  103 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,  104 ,   -1 ,   -1 , &
       105 ,   -1 ,   -1 ,  106 ,   -1 ,  107 ,  108 ,  109 ,   -1 ,   -1 , &
       -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,  110 ,   -1 ,   -1 , &
       -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,  111 , &
       112 ,  113 ,   -1 ,  114 ,  115 ,  116 ,  117 ,  118 ,  119 ,   -1 , &
       -1 ,   -1 ,   -1 ,  120 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 , &
       -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 , &
       -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,  121 ,   -1 ,   -1 ,   -1 , &
       -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 , &
       -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,  122 ,   -1 ,   -1 ,   -1 , &
       -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 , &
       -1 ,   -1 ,   -1 ,  123 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 , &
       -1 ,   -1 ,  124 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 , &
       -1 ,  125 ,   -1 ,  126 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 , &
       -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 , &
       127 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 , &
       -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 , &
       -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,  128 ,   -1 , &
       -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 , &
       -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 , &
       -1 ,   -1 ,   -1 ,   -1 ,   -1 ,  129 ,  130 ,  131 ,   -1 ,  132 , &
       133 ,  134 ,   -1 ,  135 ,  136 ,  137 ,   -1 ,   -1 ,  138 ,   -1 , &
       -1 ,   -1 ,  139 ,  140 ,   -1 ,   -1 ,  141 ,   -1 ,   -1 ,  142 , &
       143 ,   -1 ,   -1 ,  144 ,  145 ,   -1 ,  146 ,   -1 ,   -1 ,  147 , &
       148 ,   -1 ,   -1 ,  149 ,   -1 ,   -1 ,  150 ,  151 ,   -1 ,   -1 , &
       152 ,   -1 ,   -1 ,  153 ,   -1 ,   -1 ,  154 ,   -1 ,   -1 ,   -1 , &
       155 ,   -1 ,   -1 ,  156 ,   -1 ,  157 ,  158 ,   -1 ,  159 ,   -1 , &
       -1 ,  160 ,   -1 ,   -1 ,   -1 ,  161 ,   -1 ,  162 ,   -1 ,   -1 , &
       -1 ,   -1 ,   -1 ,  163 ,   -1 ,   -1 ,  164 ,  165 ,   -1 ,  166 , &
       167 ,  168 ,   -1 ,  169 ,   -1 ,  170 ,  171 ,   -1 ,   -1 ,  172 , &
       173 ,  174 ,   -1 ,  175 ,  176 ,   -1 ,  177 ,   -1 ,  178 ,   -1 , &
       -1 ,   -1 ,  179 ,   -1 ,   -1 ,   -1 ,  180 ,   -1 ,   -1 ,  181 , &
       -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 , &
       -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 , &
       -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 , &
       -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,  182 ,   -1 ,   -1 ,  183 , &
       -1 ,   -1 ,  184 ,   -1 ,   -1 ,  185 ,   -1 ,   -1 ,   -1 ,   -1 , &
       -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,  186 , &
       -1 ,   -1 ,   -1 ,   -1 ,  187 ,  188 ,   -1 ,   -1 ,  189 ,   -1 , &
       -1 ,   -1 ,  190 ,  191 ,   -1 ,  192 ,   -1 ,  193 ,   -1 ,   -1 , &
       194 ,   -1 ,   -1 ,  195 ,  196 ,  197 ,  198 ,  199 ,   -1 ,  200 , &
       201 ,  202 ,  203 ,   -1 ,   -1 ,  204 ,  205 ,  206 ,   -1 ,   -1 , &
       207 ,  208 ,  209 ,   -1 ,   -1 ,  210 ,  211 ,  212 ,  213 ,  214 , &
       -1 ,  215 ,  216 ,  217 ,  218 ,  219 ,  220 ,  221 ,  222 ,  223 , &
       224 ,  225 ,   -1 ,  226 ,   -1 ,  227 ,   -1 ,  228 ,   -1 ,  229 , &
       -1 ,  230 ,  231 ,  232 ,   -1 ,  233 ,  234 ,  235 ,  236 ,   -1 , &
       237 ,  238 ,   -1 ,  239 ,   -1 ,  240 ,   -1 ,   -1 ,  241 ,  242 , &
       243 ,  244 ,  245 ,  246 ,  247 ,  248 ,  249 ,  250 ,  251 ,  252 , &
       253 ,  254 ,  255 ,  256 ,  257 ,  258 ,   -1 ,  259 ,  260 ,  261 , &
       -1 ,  262 ,  263 ,  264 ,  265 ,  266 ,  267 ,  268 ,  269 ,  270 , &
       271 ,  272 ,  273 ,  274 ,   -1 ,  275 ,   -1 ,   -1 ,   -1 ,   -1 , &
       276 ,  277 ,   -1 ,  278 ,  279 ,  280 ,  281 ,   -1 ,  282 ,   -1 , &
       283 ,  284 ,   -1 ,  285 ,   -1 ,  286 ,   -1 ,  287 ,  288 ,  289 , &
       -1 ,   -1 ,   -1 ,  290 ,   -1 ,  291 ,  292 ,  293 ,  294 ,  295 , &
       -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,  296 , &
       -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 , &
       -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 , &
       297 ,   -1 ,   -1 ,  298 ,   -1 ,   -1 ,  299 ,   -1 ,   -1 ,   -1 , &
       -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 , &
       -1 ,   -1 ,   -1 ,   -1 ,  300 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 , &
       -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 , &
       -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 , &
       -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 , &
       -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 , &
       301 ,   -1 ,   -1 ,  302 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 , &
       -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,  303 ,   -1 ,   -1 ,   -1 , &
       -1 ,   -1 ,   -1 ,   -1 ,  304 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 , &
       -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,  305 , &
       -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 , &
       -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 , &
       -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 , &
       -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 , &
       -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 , &
       -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 , &
       -1 ,   -1 ,   -1 ,  306 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 , &
       -1 ,   -1 ,   -1 ,   -1 ,   -1 ,  307 ,   -1 ,   -1 ,   -1 ,   -1 , &
       -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 , &
       -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,  308 , &
       -1 ,  309 ,  310 ,   -1 ,  311 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 , &
       -1 ,  312 ,   -1 ,   -1 ,   -1 ,   -1 ,  313 ,  314 ,  315 ,  316 , &
       317 ,  318 ,  319 ,  320 ,  321 ,  322 ,  323 ,  324 ,  325 ,  326 , &
       327 ,  328 ,  329 ,  330 ,  331 ,  332 ,  333 ,  334 ,  335 ,  336 , &
       337 ,  338 ,  339 ,  340 ,  341 ,   -1 ,  342 ,  343 ,  344 ,  345 , &
       346 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,  347 ,   -1 ,  348 ,  349 , &
       -1 ,  350 ,  351 ,  352 ,   -1 ,  353 ,  354 ,  355 ,  356 ,  357 , &
       -1 ,  358 ,  359 ,  360 ,   -1 ,  361 ,  362 ,  363 ,   -1 ,  364 , &
       -1 ,  365 ,   -1 ,  366 ,  367 ,   -1 ,  368 ,  369 ,   -1 ,  370 , &
       -1 ,  371 ,   -1 ,  372 ,   -1 ,  373 ,   -1 ,  374 ,  375 ,   -1 , &
       376 ,  377 ,   -1 ,  378 ,  379 ,  380 ,  381 ,  382 ,  383 ,   -1 , &
       384 ,  385 ,  386 ,  387 ,  388 ,   -1 ,  389 ,   -1 ,   -1 ,  390 , &
       -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 , &
       -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,  391 , &
       392 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 ,   -1 , &
       -1 ,  393 ,   -1 ,   -1 ,  394 ,   -1 ,   -1 ,  395 ,   -1 ,  396 , &
       -1 ,   -1 ,  397 ,   -1 ,   -1 ,   -1 ,   -1 ,  398 ,   -1 ,   -1 , &
       399 ,   -1 ,   -1 ,   -1 ,   -1  /

  DATA CRISSWN /     &
       666.250d0, 666.875d0, 668.750d0, 669.375d0, 670.000d0, 672.500d0, 680.000d0, 681.250d0, 682.500d0, 686.250d0, &
       687.500d0, 688.750d0, 689.375d0, 690.000d0, 691.250d0, 692.500d0, 693.750d0, 695.000d0, 696.250d0, 698.750d0, &
       699.375d0, 700.000d0, 701.250d0, 702.500d0, 703.750d0, 704.375d0, 705.000d0, 707.500d0, 708.750d0, 709.375d0, &
       711.250d0, 712.500d0, 713.125d0, 714.375d0, 715.625d0, 716.250d0, 718.750d0, 720.000d0, 721.875d0, 724.375d0, &
       726.250d0, 726.875d0, 727.500d0, 728.125d0, 730.625d0, 731.875d0, 732.500d0, 734.375d0, 735.000d0, 735.625d0, &
       738.125d0, 738.750d0, 739.375d0, 740.000d0, 741.250d0, 741.875d0, 743.125d0, 743.750d0, 745.000d0, 745.625d0, &
       746.250d0, 747.500d0, 748.125d0, 748.750d0, 749.375d0, 750.000d0, 750.625d0, 751.250d0, 751.875d0, 752.500d0, &
       753.125d0, 754.375d0, 755.625d0, 756.250d0, 757.500d0, 758.750d0, 762.500d0, 763.750d0, 773.125d0, 779.375d0, &
       781.250d0, 784.375d0, 789.375d0, 791.875d0, 796.875d0, 798.125d0, 800.625d0, 804.375d0, 815.625d0, 816.875d0, &
       823.750d0, 826.250d0, 843.750d0, 847.500d0, 855.625d0, 857.500d0, 858.125d0, 860.625d0, 861.875d0, 862.500d0, &
       863.125d0, 867.500d0, 869.375d0, 873.125d0, 875.000d0, 876.875d0, 878.125d0, 878.750d0, 879.375d0, 885.625d0, &
       893.125d0, 893.750d0, 894.375d0, 895.625d0, 896.250d0, 896.875d0, 897.500d0, 898.125d0, 898.750d0, 901.875d0, &
       916.250d0, 928.750d0, 939.375d0, 945.000d0, 950.625d0, 951.875d0, 962.500d0, 980.000d0, 996.875d0, 997.500d0, &
       998.125d0, 999.375d0, 1000.00d0, 1000.62d0, 1001.88d0, 1002.50d0, 1003.12d0, 1005.00d0, 1007.50d0, 1008.12d0, &
       1010.00d0, 1011.88d0, 1012.50d0, 1014.38d0, 1015.00d0, 1016.25d0, 1018.12d0, 1018.75d0, 1020.62d0, 1022.50d0, &
       1023.12d0, 1025.00d0, 1026.88d0, 1028.75d0, 1031.25d0, 1033.12d0, 1034.38d0, 1035.00d0, 1036.25d0, 1038.12d0, &
       1040.62d0, 1041.88d0, 1045.62d0, 1047.50d0, 1048.12d0, 1049.38d0, 1050.00d0, 1050.62d0, 1051.88d0, 1053.12d0, &
       1053.75d0, 1055.62d0, 1056.25d0, 1056.88d0, 1058.12d0, 1058.75d0, 1060.00d0, 1061.25d0, 1063.75d0, 1066.25d0, &
       1068.12d0, 1091.25d0, 1093.12d0, 1095.00d0, 1212.50d0, 1230.00d0, 1236.25d0, 1237.50d0, 1241.25d0, 1246.25d0, &
       1247.50d0, 1250.00d0, 1252.50d0, 1256.25d0, 1260.00d0, 1261.25d0, 1262.50d0, 1263.75d0, 1265.00d0, 1267.50d0, &
       1268.75d0, 1270.00d0, 1271.25d0, 1275.00d0, 1276.25d0, 1277.50d0, 1281.25d0, 1282.50d0, 1283.75d0, 1287.50d0, &
       1288.75d0, 1290.00d0, 1291.25d0, 1292.50d0, 1295.00d0, 1296.25d0, 1297.50d0, 1298.75d0, 1300.00d0, 1301.25d0, &
       1302.50d0, 1303.75d0, 1305.00d0, 1306.25d0, 1307.50d0, 1310.00d0, 1312.50d0, 1315.00d0, 1317.50d0, 1320.00d0, &
       1321.25d0, 1322.50d0, 1325.00d0, 1326.25d0, 1327.50d0, 1328.75d0, 1331.25d0, 1332.50d0, 1335.00d0, 1337.50d0, &
       1341.25d0, 1342.50d0, 1343.75d0, 1345.00d0, 1346.25d0, 1347.50d0, 1348.75d0, 1350.00d0, 1351.25d0, 1352.50d0, &
       1353.75d0, 1355.00d0, 1356.25d0, 1357.50d0, 1358.75d0, 1360.00d0, 1361.25d0, 1362.50d0, 1365.00d0, 1366.25d0, &
       1367.50d0, 1370.00d0, 1371.25d0, 1372.50d0, 1373.75d0, 1375.00d0, 1376.25d0, 1377.50d0, 1378.75d0, 1380.00d0, &
       1381.25d0, 1382.50d0, 1383.75d0, 1385.00d0, 1387.50d0, 1393.75d0, 1395.00d0, 1397.50d0, 1398.75d0, 1400.00d0, &
       1401.25d0, 1403.75d0, 1406.25d0, 1407.50d0, 1410.00d0, 1412.50d0, 1415.00d0, 1416.25d0, 1417.50d0, 1422.50d0, &
       1425.00d0, 1426.25d0, 1427.50d0, 1428.75d0, 1430.00d0, 1442.50d0, 1468.75d0, 1472.50d0, 1476.25d0, 1498.75d0, &
       1556.25d0, 1560.00d0, 1576.25d0, 1586.25d0, 1605.00d0, 1685.00d0, 1700.00d0, 1730.00d0, 1732.50d0, 1733.75d0, &
       1736.25d0, 1745.00d0, 2155.00d0, 2157.50d0, 2160.00d0, 2162.50d0, 2165.00d0, 2167.50d0, 2170.00d0, 2172.50d0, &
       2175.00d0, 2177.50d0, 2180.00d0, 2182.50d0, 2185.00d0, 2187.50d0, 2190.00d0, 2192.50d0, 2195.00d0, 2197.50d0, &
       2200.00d0, 2202.50d0, 2205.00d0, 2207.50d0, 2210.00d0, 2212.50d0, 2215.00d0, 2217.50d0, 2220.00d0, 2222.50d0, &
       2225.00d0, 2230.00d0, 2232.50d0, 2235.00d0, 2237.50d0, 2240.00d0, 2255.00d0, 2260.00d0, 2262.50d0, 2267.50d0, &
       2270.00d0, 2272.50d0, 2277.50d0, 2280.00d0, 2282.50d0, 2285.00d0, 2287.50d0, 2292.50d0, 2295.00d0, 2297.50d0, &
       2302.50d0, 2305.00d0, 2307.50d0, 2312.50d0, 2317.50d0, 2322.50d0, 2325.00d0, 2330.00d0, 2332.50d0, 2337.50d0, &
       2342.50d0, 2347.50d0, 2352.50d0, 2357.50d0, 2360.00d0, 2365.00d0, 2367.50d0, 2372.50d0, 2375.00d0, 2377.50d0, &
       2380.00d0, 2382.50d0, 2385.00d0, 2390.00d0, 2392.50d0, 2395.00d0, 2397.50d0, 2400.00d0, 2405.00d0, 2412.50d0, &
       2462.50d0, 2465.00d0, 2492.50d0, 2500.00d0, 2507.50d0, 2512.50d0, 2520.00d0, 2532.50d0, 2540.00d0 /    

contains


integer function hir_get_nchan_selected(CINST) 5,1
implicit none
character (len=*),intent(in) :: CINST


select case(trim(CINST))
case("AIRS","airs")
   hir_get_nchan_selected= AIRSSNCH
case("IASI","iasi")
   hir_get_nchan_selected= IASISNCH
case("CRIS","cris","CrIS")
   hir_get_nchan_selected = CRISSNCH
case default
   Write(*,*) "Unknown instrument! ",CINST
   call abort3d("hir_get_nchan_selected from  hir_chans module")
end select


end function hir_get_nchan_selected



!Methode inutile pour l'instant

integer function hir_get_nchan_all(CINST),1
implicit none
character (len=*),intent(in) :: CINST


select case(trim(CINST))
case("AIRS","airs")
   hir_get_nchan_all= AIRSRNCH
case("IASI","iasi")
   hir_get_nchan_all= IASIRNCH
case("CRIS","cris","CrIS")
   hir_get_nchan_all= CRISRNCH
case default
   Write(*,*) "Unknown instrument! ",CINST
   call abort3d("hir_get_nchan_all from  hir_chans module")
end select

end function hir_get_nchan_all



real (8)function hir_get_wavn(CINST,ICHAN) 3,8
implicit none
character (len=*),intent(in) :: CINST
integer,intent(in) :: ichan
!ichan channel index among ALL the channels
integer :: ipos

if (ichan<1) then
   Write(*,*) "Channel index ",ichan," should be a positive integer !"
   call abort3d("hir_get_wavn from  hir_chans module")
endif

select case(trim(CINST))
case("AIRS","airs")
   if (ichan>AIRSRNCH) then
      Write(*,*) "Channel index ",ichan," exceeds ",AIRSRNCH," for the AIRS instrument"
      call abort3d("hir_get_wavn from  hir_chans module")
   endif
   ipos=AIRSSCH(ICHAN)
   if (ipos==-1) then
      Write(*,*) "Channel ",ICHAN," is not part of the selection for the AIRS instrument"
      call abort3d("hir_get_wavn from  hir_chans module")
   endif
   hir_get_wavn=AIRSSWN(ipos)
case("IASI","iasi")
   if (ichan>IASIRNCH) then
      Write(*,*) "Channel index ",ichan," exceeds ",IASIRNCH," for the IASI instrument"
      call abort3d("hir_get_wavn from  hir_chans module")
   endif
   ipos=IASISCH(ICHAN)
   if (ipos==-1) then
      Write(*,*) "Channel ",ICHAN," is not part of the selection for the IASI instrument"
      call abort3d("hir_get_wavn from  hir_chans module")
   endif
   hir_get_wavn=IASISWN(ipos)
case("CRIS","cris","CrIS")
   if (ichan>CRISRNCH) then
      Write(*,*) "Channel index ",ichan," exceeds ",CRISRNCH," for the CRIS instrument"
      call abort3d("hir_get_wavn from  hir_chans module")
   endif
   ipos=CRISSCH(ICHAN)
   if (ipos==-1) then
      Write(*,*) "Channel ",ICHAN," is not part of the selection for the CRIS instrument"
      call abort3d("hir_get_wavn from  hir_chans module")
   endif
   hir_get_wavn=CRISSWN(ipos)
case default
   Write(*,*) "Unknown instrument! ",CINST
   call abort3d("hir_get_wavn from  hir_chans module")
end select

end function hir_get_wavn



integer function hir_get_chindx_fr_chn(CINST,ichan) 14,8
implicit none
character (len=*),intent(in) :: CINST
integer,intent(in) :: ichan
!*************************************************
integer :: indx

if (ichan<1) then
   Write(*,*) "Channel number ",ichan," should be a positive integer !"
   call abort3d("hir_get_chindx_fr_chn from  hir_chans module")
endif

select case(trim(CINST))
case("AIRS","airs")
   if (ichan>AIRSRNCH) then
      Write(*,*) "Channel ",ichan," exceeds ",AIRSRNCH," for the AIRS instrument"
      call abort3d("hir_get_chindx_fr_chn from  hir_chans module")
   endif
   indx=AIRSSCH(ichan)
   if (indx/=-1) then
      hir_get_chindx_fr_chn = indx
   else
      Write(*,*) "Channel ",ichan," is not selected for the AIRS instrument"
      call abort3d("hir_get_chindx_fr_chn from  hir_chans module")
   endif
case("IASI","iasi")
   if (ichan>IASIRNCH) then
      Write(*,*) "Channel ",ichan," exceeds ",IASIRNCH," for the IASI instrument"
      call abort3d("hir_get_chindx_fr_chn from  hir_chans module")
   endif
   indx=IASISCH(ichan)
   if (indx/=-1) then
      hir_get_chindx_fr_chn = indx
   else
      Write(*,*) "Channel ",ichan," is not selected for the IASI instrument"
      call abort3d("hir_get_chindx_fr_chn from  hir_chans module")
   endif
case("CRIS","cris","CrIS")
   if (ichan>CRISRNCH) then
      Write(*,*) "Channel ",ichan," exceeds ",CRISRNCH," for the CRIS instrument"
      call abort3d("hir_get_chindx_fr_chn from  hir_chans module")
   endif
   indx=CRISSCH(ichan)
   if (indx/=-1) then
      hir_get_chindx_fr_chn = indx
   else
      Write(*,*) "Channel ",ichan," is not selected for the CRIS instrument"
      call abort3d("hir_get_chindx_fr_chn from  hir_chans module")
   endif
case default
   Write(*,*) "Unknown instrument! ",CINST
   call abort3d("hir_get_chindx_fr_chn from  hir_chans module")
end select


end function hir_get_chindx_fr_chn



subroutine hir_set_assim_chan(CINST,iselec) 6,6
implicit none
character (len=*),intent(in) :: CINST
integer,intent(in) :: iselec(:)
!*************************************************
integer :: nch,i
integer ,pointer :: pt(:)
!***************************

nch=size(iselec)

if (nch<1) then
   Write(*,*) "Empty channel selection !"
   call abort3d("hir_set_assim_chan from  hir_chans module")
endif

if (nch/=hir_get_nchan_selected(CINST)) then
   Write(*,*) "Wrong number of channels",nch
   Write(*,*) "Should be ",hir_get_nchan_selected(CINST)
   call abort3d("hir_set_assim_chan from  hir_chans module")
endif

select case(trim(CINST))
case("AIRS","airs")
   pt=>airs_assim
case("IASI","iasi")
   pt=>iasi_assim
case("CRIS","cris","CrIS")
   pt=>cris_assim
case default
   Write(*,*) "Unknown instrument! ",CINST
   call abort3d("set_assim_chan from  hir_chans module")
end select

do i=1,nch
   if (iselec(i)==0 .or. iselec(i)==1) then
      pt(i)=iselec(i)
   else
      Write(*,*) "Invalid selection flag ",iselec(i),i,cinst
      call abort3d("hir_set_assim_chan from  hir_chans module")
   endif
enddo

nullify(pt)

end subroutine hir_set_assim_chan



integer function hir_get_assim_chan(CINST,ichan) 1,2
implicit none
character (len=*),intent(in) :: CINST
integer,intent(in) :: ichan
!*******************************
integer ,pointer :: pt(:)

select case(trim(CINST))
case("AIRS","airs")
   pt=>airs_assim
case("IASI","iasi")
   pt=>iasi_assim
case("CRIS","cris","CrIS")
   pt=>cris_assim
case default
   Write(*,*) "Unknown instrument! ",CINST
   call abort3d("hir_get_assim_chan from  hir_chans module")
end select

if (ichan<1 .or. ichan>hir_get_nchan_selected(CINST)) then
   Write(*,*) "Invalid channel index",ichan
   call abort3d("hir_get_assim_chan from  hir_chans module")
endif

hir_get_assim_chan = pt(ichan)

nullify(pt)

end function hir_get_assim_chan

End module hir_chans