#!/usr/bin/env python
import cmor
import numpy


def test_mode(mode,i,suffix=''):
    cmor.setup(inpath='Tables',
               netcdf_file_action = mode)
    cmor.dataset_json("Test/common_user_input.json")
    
    table = 'CMIP6_Amon.json'
    cmor.load_table(table)
    levels = [100000.,
              92500.,
              85000.,
              70000.,
              60000.,
              50000.,
              40000.,
              30000.,
              25000.,
              20000.,
              15000.,
              10000.,
              7000.,
              5000.,
              3000.,
              2000.,
              1000.,
              999,
              998,
              997,
              996,
              995,
              994, 
              500,
              100]
    
    axes = [ {'table_entry': 'time',
              'units': 'months since 2000-01-01 00:00:00',
              },
             {'table_entry': 'latitude',
              'units': 'degrees_north',
              'coord_vals': [0],
              'cell_bounds': [-1, 1]},             
             {'table_entry': 'longitude',
              'units': 'degrees_east',
              'coord_vals': [90],
              'cell_bounds': [89, 91]},
             {'table_entry': 'plev19',
              'units': 'Pa',
              'coord_vals': levels},
             ]
    
    values = numpy.array(range(len(levels)), numpy.float32)+195
    axis_ids = list()
    for axis in axes:
        axis_id = cmor.axis(**axis)
        axis_ids.append(axis_id)

    for var, units in (('ta', 'K'),):
        varid = cmor.variable(var,
                              units,
                              axis_ids,
                              history = 'variable history',
                              missing_value = -99
                              )
        print "Sending time bounds:",[[i,i+1]]
        cmor.write(varid, values, time_vals = [i], time_bnds = [ [i,i+1] ])

    fnm = cmor.close(varid,file_name=True)
    cmor.close()
    return fnm
    
fnm=''
for i in range(5):
    print i,fnm
    if i==0:
        mode = cmor.CMOR_REPLACE
    else:
        mode = cmor.CMOR_APPEND
    fnm = test_mode(cmor.CMOR_APPEND,i,fnm)

