Nick,To start, boundary conditions are controlled by setting restore_ice=.true. in the forcing_nml. If restore_ice=.false., then no boundary conditions will be applied. Boundary conditions are handled in ice_restoring.F90, subroutine ice_HaloRestore. You'll see there are 'hooks' or sections of code where aicen, vicen, vsnon, and tracers are relaxed to their resepctive restoring values (aicen_rest, vicen_rest, etc...). If you use restore_ic='defined', it will call set_restore_var, where code will apply some specified values. Otherwise, the code is currently setup to get restoring values from the outermost i,j locaitons. If you want to apply values from external files, or some other specified values, you will need to add a method to do so here. David