def METHOD_NAME(images_dir=os.path.join(base_dir, 'images')):
    print('initializing the model')
    # set up the modeling environment
    start_time = datetime(2016, 9, 18, 1, 0)
    model = Model(start_time=start_time,
                  duration=timedelta(days=3),
                  time_step=30 * 60,
                  uncertain=False)
    print('adding the map')
    model.map = GnomeMap()  # this is a "water world -- no land anywhere"
    # renderere is only top-down view on 2d -- but it's something
    renderer = Renderer(output_dir=images_dir,
                        image_size=(1024, 768),
                        output_timestep=timedelta(hours=1),
                        )
    renderer.viewport = ((-87.295, 27.795), (-87.705, 28.205))
    print('adding outputters')
    model.outputters += renderer
    # Also going to write the results out to a netcdf file
    netcdf_file = os.path.join(base_dir, 'gulf_tamoc.nc')
    scripting.remove_netcdf(netcdf_file)
    model.outputters += NetCDFOutput(netcdf_file,
                                     which_data='most',
                                     # output most of the data associated with the elements
                                     output_timestep=timedelta(hours=2))
    print("adding Horizontal and Vertical diffusion")
    # Horizontal Diffusion
    #model.movers += RandomMover(diffusion_coef=100000)
    # vertical diffusion (different above and below the mixed layer)
    model.movers += RandomMover3D(vertical_diffusion_coef_above_ml=50,
                                        vertical_diffusion_coef_below_ml=10,
                                        horizontal_diffusion_coef_above_ml=100000,
                                        horizontal_diffusion_coef_below_ml=100,
                                        mixed_layer_depth=10)
    print('adding Rise Velocity')
    # droplets rise as a function of their density and radius
    model.movers += TamocRiseVelocityMover()
    hycom_file = os.path.join(base_dir, 'HYCOM_3d.nc')
    print('adding the 3D current mover')
    #gc = GridCurrent.from_netCDF('HYCOM_3d.nc')
    gc = GridCurrent.from_netCDF(hycom_file)
    #model.movers += GridCurrentMover('HYCOM_3d.nc')
    model.movers += CurrentMover(hycom_file)