Re: streamfunction on regional scale

From: Dennis Shea (shea AT cgd.ucar.edu)
Date: Wed Mar 02 2005 - 09:45:57 MST

  • Next message: Jui-Lin Li: "Re: Convert ECMWF 60 levels Hybrid model levels to pressure levels"

    >Does anybody have edited NCL code for compute the streamfunction on
    >regional scale (for example, the output by regional model)?. If there
    >is no NCL code available, did you have the related FORTRAN
    >subroutines? I will greatly appreciate your help.
    >
    >Thanks! Actually my regional model output is on fixed grid and the "dx"
    >and "dy" are equal and remain unchanged. Could you please provide me your
    >subroutines of the poisson solver for cartesian coordinates? Your help is
    >extremely appreciated.

    >-------------
    There is no built-in function for streamfunction over
    a limited area. However, the following approach could be used:

    Since: relative_vorticity = Laplacian[ stream_function ]
    Thus: stream_function = inverse_laplacian[ relative_vorticity]

     
    Most commonly the solution is done via successive over-relaxation.

    The FISHPAK library available from netlib
    has subroutines for solving this class of problem:

       http://www.netlib.org/fishpack/
       
    Note that the documentation refers to "Helmholtz equations".
    The Laplacain is a special case where "lambda=0.0"

    Cartesian

        HWSCRT - Subroutine for solving the standard five-point
                   finite difference approximation to the Helmholtz
                   equation in cartesian coordinates

                   (d/dx)(du/dx) + (d/dy)(du/dy) + lambda*u = f(x,y)

                   using a centered finite difference grid.

    Unit sphere

        HWSSSP - Subroutine for solving a five-point finite difference
                   approximation to the Helmholtz equation in spherical
                   coordinates and on the surface of the unit sphere

                   (1/sin(theta))(d/dtheta)(sin(theta)(du/dtheta))

                      + (1/sin(theta)**2)(d/dphi)(du/dphi)

                            + lambda*u = f(theta,phi)

                   using a centered finite difference grid.

    Note: the HWSSSP uses colatitude and unit sphere.

    ---------------
    These should be easy to invoke from NCL

    good luck
    D

    _______________________________________________
    ncl-talk mailing list
    ncl-talk@ucar.edu
    http://mailman.ucar.edu/mailman/listinfo/ncl-talk



    This archive was generated by hypermail 2b29 : Wed Mar 02 2005 - 09:55:33 MST