PUBLIC INTERFACE ~ PUBLIC ROUTINES

Module ocean_blob_dynamic_free_mod

Contact:  Michael L. Bates Stephen M. Griffies
Reviewers: 
Change History: WebCVS Log


OVERVIEW

This module runs the dynamic free blob implementation of the embedded Lagrangian blob framework. The module forms new dynamic free blobs, integrates the properties of existing blobs, and handles the transfer of bottom blobs to free blobs.

Free blobs are formed using the subroutine blob_dynamic_free_implicit, which is called from the blob driver module. Free blobs must be formed implicitly in time so that the surface forcing has already been applied. The properties of free blobs are also integrated in this module, that is, position, velocity, mass and tracer content. Position and velocity are integrated using an adaptive step Runge-Kutta scheme. There are several schemes available of varying order. The module also receives blobs that are transferring from the bottom blob dynamic regime to the free blob regime (i.e. they have separated from the bottom boundary).


OTHER MODULES USED

       constants_mod
diag_manager_mod
fms_mod
mpp_mod
mpp_domains_mod
ocean_blob_util_mod
ocean_density_mod
ocean_parameters_mod
ocean_types_mod
ocean_util_mod
ocean_workspace_mod

PUBLIC INTERFACE

blob_dynamic_free_init:
blob_dynamic_free_implicit:
blob_dynamic_free_update:
dynamic_update:
transfer_bottom_to_free:
blob_dynamic_free_end:
packbuffer:
unpackbuffer:
increase_buffer:
send_buffer:
receive_buffer:
clear_buffer:


PUBLIC ROUTINES

  1. blob_dynamic_free_init

    DESCRIPTION
    Initialises the dynamic free blobs by checking the namelist and also inherited namelists (from ocean_blob_nml). Also sets up some useful constants, allocates memory to special halo=2 masks and sets up the blob buffers for sending blobs from one PE to another.


  2. blob_dynamic_free_implicit

    DESCRIPTION
    Initialises dynamic blobs in vertical statically unstable regions. Due to the instability condition, blobs should be formed after the surface forcing has been applied (which is a major source of instability in the water column). The surface forcing is applied implicitly in time in MOM, therefore, we must form blobs implicitly in time. If N^2<bv_freq_threshold, then, two blobs are formed. One rising and one sinking. The rising blobs is destroyed immediately (after it has been moved up one cell) and its properties returned to the E system. The sinking blob is added to a linked list, and its properties integrated at a later time step.


  3. blob_dynamic_free_update

    DESCRIPTION
    This routine calls the routine to update blob positions. When bitwise_reproduction=.false., it also figures out when to continue the integration of blobs that have changed PE's.


  4. dynamic_update

    DESCRIPTION
    This routine contains the RK scheme used to integrate the position and velocity of blobs. It also does many checks for (and subsequently handles) things like grounding of blobs, blobs going to different PEs, blobs that interact with topography, blobs that detrain to less than small_mass and blobs going outside the compute domain. It also does the interpolation of E system variables to a blob.


  5. transfer_bottom_to_free

    DESCRIPTION
    Takes bottom blobs that have separated from the bottom boundary and turns it into a free blob.


  6. blob_dynamic_free_end

    DESCRIPTION
    Clears memory to give a nice clean ending to the run.


  7. packbuffer

    DESCRIPTION
    Packs a buffer with all the information needed to send a blob from one PE to another.


  8. unpackbuffer

    DESCRIPTION
    Unpacks a received buffer.


  9. increase_buffer

    DESCRIPTION
    Increases the buffer size for sending blobs from one PE to another.


  10. send_buffer

    DESCRIPTION
    Sends a buffer to an adjoining PE


  11. receive_buffer

    DESCRIPTION
    Receives a buffer from an adjoining PE


  12. clear_buffer

    DESCRIPTION
    Clears the contents of a buffer



REFERENCES

  1. Bogacki, P., Shampine, L.F., (1989) A 3(2) pair of Runge-Kutta formulas. Applied Mathematical Letters 2(4), 321-325.
  2. Cash, J.R., Karp, A.H. (1990) A variable order Runge-Kutta method for initial value problems with rapidly varying right-hand sides. ACM Transactions on Mathematical Software 16(3), 201-222.
  3. Griffies, S.M., Harrison, M.J., Pacanowski, R.C., Rosati, A. (2004) A Technical Guide to MOM4. GFDL Ocean Group Technical Report No. 5. NOAA/Geophysical Fluid Dynamics Laboratory.
  4. Marshall, J., Schott, F. (1999) Open-ocean convection: Observations, theory, and models. Reviews of Geophysics 37(1), 1-64.


top