def METHOD_NAME():
    """
    Test ROMS 3d interpolator.
    .. note::
        The following ROMS output files must be present:
        ./forcings/liveocean/f2015.05.16/ocean_his_0009.nc
        ./forcings/liveocean/f2015.05.16/ocean_his_0010.nc
        ./forcings/liveocean/f2015.05.16/ocean_his_0011.nc
    """
    # load and extrude mesh
    from bathymetry import get_bathymetry, smooth_bathymetry, smooth_bathymetry_at_bnd
    nlayers, surf_elem_height, max_z_stretch = (9, 5.0, 4.0)
    mesh2d = Mesh('mesh_cre-plume_03_normal.msh')
    # interpolate bathymetry and smooth it
    bathymetry_2d = get_bathymetry('bathymetry_utm_large.nc', mesh2d, project=False)
    bathymetry_2d = smooth_bathymetry(
        bathymetry_2d, delta_sigma=1.0, bg_diff=0,
        alpha=1e2, exponent=2.5,
        minimum_depth=3.5, niter=30)
    bathymetry_2d = smooth_bathymetry_at_bnd(bathymetry_2d, [2, 7])
    # 3d mesh vertical stretch factor
    z_stretch_fact_2d = Function(bathymetry_2d.function_space(), name='z_stretch')
    # 1.0 (sigma mesh) in shallow areas, 4.0 in deep ocean
    z_stretch_fact_2d.project(-ln(surf_elem_height/bathymetry_2d)/ln(nlayers))
    z_stretch_fact_2d.dat.data[z_stretch_fact_2d.dat.data < 1.0] = 1.0
    z_stretch_fact_2d.dat.data[z_stretch_fact_2d.dat.data > max_z_stretch] = max_z_stretch
    extrude_options = {
        'z_stretch_fact': z_stretch_fact_2d,
    }
    mesh = extrude_mesh_sigma(mesh2d, nlayers, bathymetry_2d,
                              **extrude_options)
    p1 = get_functionspace(mesh, 'CG', 1)
    # make functions
    salt = Function(p1, name='salinity')
    temp = Function(p1, name='temperature')
    sim_tz = timezone.FixedTimeZone(-8, 'PST')
    init_date = datetime.datetime(2015, 5, 16, tzinfo=sim_tz)
    interp = LiveOceanInterpolator(p1,
                                   [salt, temp],
                                   ['salt', 'temp'],
                                   'forcings/liveocean/f2015.*/ocean_his_*.nc',
                                   init_date, COORDSYS)
    interp.set_fields(0.0)
    salt_fn = 'tmp/salt_roms.pvd'
    temp_fn = 'tmp/temp_roms.pvd'
    print('Saving output to {:} {:}'.format(salt_fn, temp_fn))
    out_salt = File(salt_fn)
    out_temp = File(temp_fn)
    out_salt.write(salt)
    out_temp.write(temp)
    dt = 900.
    for i in range(8):
        print('Time step {:}'.format(i))
        interp.set_fields(i*dt)
        out_salt.write(salt)
        out_temp.write(temp)