Fortran 77 subroutine for calculating spherical harmonics
SHExpandDH will expand an equally sampled n by n or equally spaced grid n by 2n into spherical harmonics using the sampling theorem of Driscoll and Healy The inverse transform is given by the routine MakeGridDH.
The algorithm is based on performing FFTs in longitude and then integrating over latitude using an exact quadrature rule. The default is to use an input grid that is equally sampled n by nbut this can be changed to use an equally spaced grid n by 2n by the optional argument sampling.
The normalized legendre functions are calculated in this routine using the scaling algorithm of Holmes and Featherstonewhich are accurate to about degree The unnormalized functions are accurate only to about degree Driscoll, J. Healy, Computing Fourier transforms and convolutions on the 2-sphere, Adv. Holmes, S. Featherstone, A unified approach to the Clenshaw summation and the recursive computation of very high degree and order normalised associated Legendre functions, J.
Geodesy, 76, Nav GitHub Releases Feedback. If sampling is 1 default then the number of samples in longitude is n. If sampling is 2 then the number of longitudinal samples is 2n. If 2, the grid is equally spaced n by 2n. Description SHExpandDH will expand an equally sampled n by n or equally spaced grid n by 2n into spherical harmonics using the sampling theorem of Driscoll and Healy References Driscoll, J.
See also makegriddhmakegriddhcshexpanddhcmakegridglqshexpandglqmakegridglqcshexpandglqcshexpandlsq Tags: fortran.Hot Threads. Featured Threads.
Mark44 Mentor. Insights Author. This makes the code easier to read by preserving the original indentation. The code looks like this Code:. Kk thx for the heads up, I didn't even notice that the indentation had completely disappeared. It seems to me that those extra slashes are a lot more work than the "code" tags. They definitely are, but to tell you the truth I couldn't figure out what I was supposed to do with the Code:.
I mean, when I copied the code in the middle of ''['' and '']'' the code still lost its original indentation when I looked at the preview of the post, so I couldn't think of any other way of preserving the indentation other than resorting to the slashes. The code tags include the square brackets but no spaces.Mod-01 Lec-31 The Spherical Harmonics
If you're still confused, look at the collection of icons above the text-entry box on the message-composition page. Select your code, click that icon, and you'll get proper code tags at the beginning and end. Or simply click on the icon, get a pair of code tags without anything between them, and then insert your code between them.
Now maybe somebody will be able to understand it ; Code:. April The code looks like this Now there are two parts I don't understand. You must log in or register to reply here. Related Threads on Fortran 77 subroutine for calculating spherical harmonics Fortran [Fortran 77] Subroutine for computing a global spherical har. Last Post Sep 30, Replies 2 Views Fortran Calling a subroutine in Fortran Last Post Feb 27, Replies 3 Views Fortran Help!
FFT subroutine fortran Last Post Apr 14, Replies 3 Views 3K. Fortran Fortran 77 - subroutine in separate file. Last Post Feb 18, The SHTOOLS module contains an interface block that declares the subroutines and functions used in this archive and allows for the use of implicitly shaped arrays.
It should be noted that all arrays passed to a subroutine or function can be larger than that specified in the documentation. In a C-shell, this is accomplished using. Typical examples of compiling and linking a program MyProgram. Note that the position of the source file in the above examples might be important for some compilers. Fortran arrays usually start with an index of 1. However, with spherical harmonic functions and coefficients a degree-0 term exists.
In order to deal with this, all arrays that are a function of spherical harmonic degree l and order m have 1 added to each of their indices. For instance, the real Fortran array clm is related to the spherical harmonic coefficients by. In this notation, the positive and negative angular orders correspond to the cosine and sine coefficients, respectively see the page real spherical harmonics for more information.
Many of the subroutines and functions in this archive can accept one or more optional parameters. To specify these parameters, it is only necessary to use the syntax. As an example, to access the MakeGridDH man page, use. Alternatively, the man pages can be accessed from the Fortran 95 Routines menu on this web site. Nav GitHub Releases Feedback.As suggested on this commentit would be good to have a function for generating random affine matrix.
This is just a reminder. This would be fun. The ccall s pass on Base. For example, I think the token error is due to. A Spatial Audio Framework written in C. A graph-based spherical convolutional neural network for cosmology. Shape analysis has become of increasing interest to the medical community due to its potential to precisely locate morphological changes between healthy and pathological structures.
Runtime environment map prefiltering and spherical harmonics computation with OpenGL. A maximum likelihood direction of arrival estimation method for open-sphere microphone arrays in the spherical harmonic domain. Mitsuba renderer August extended to render per-vertex data and environment maps of spherical harmonics. Code for visualizing spherical harmonics and generating an ambisonic decoder in Matlab.
Add a description, image, and links to the spherical-harmonics topic page so that developers can more easily learn about it. Curate this topic. To associate your repository with the spherical-harmonics topic, visit your repo's landing page and select "manage topics. Learn more.
Skip to content. Here are 34 public repositories matching this topic Language: All Filter by language. Sort options. Star Code Issues Pull requests. Open Generate random affine. Description As suggested on this commentit would be good to have a function for generating random affine matrix. Read more. Beginner-friendly state: needs PR type:New feature. Open [DOC] cython pyx files are not parsed.
Updated Mar 7, Fortran. Open Validated transforms. MikaelSlevinsky commented Nov 28, For example, I think the token error is due to Read more.
Updated Mar 6, C. Updated Feb 20, Jupyter Notebook. Spatial Audio Python Package. Updated Apr 1, Python.
Fast orthogonal polynomial transforms. Updated Apr 5, C. A Julia wrapper of the Healpix library.If the command make fortran or make fortran-mp results in compilation errors:. If you are instead receiving compilation errors in your code, only contact us after you have thoroughly debugged your program.
If you are receiving non fatal warnings, please let us know so that we can clean up the relevant code. No, you must use a Fortran 95 compiler. Two free Fortran 95 compilers are gfortran and g If you will be using the Python code, it will be easiest to use the gfortran compiler.
This can arise when the offending libraries were built using the g77 compiler. In order to rectify this, it should only be necessary to link to the additional library libg2c. Assuming that this library can be found by the linker, just append -lg2c to the list of libraries passed to the linker.
For some compilers, the location of the source file following the compiler name is important. When this is the case, if the source file is not in its correct position, you could receive link errors that resemble the following:. For this example, successful compilation can be achieved by placing the source file before the library calls:.
When passing -lname to the linker, it will search for the filename libname. Additional directories can be added to the search path by passing one or more -Ldirname to the linker. If you are certain that the library exists, and that the linker is attempting to link to it, then see How do I know if I need to append underscores to external function and subroutine names?
It is simple to inspect these libraries to determine the underscoring convections. However, the command. The most likely source of this error is that the SHTOOLS library was compiled with a different set of options than used when compiling your program. One possibility is that this problem is related to memory allocation and stack overflows. First, try recompiling your code with the option -s. This will try to allocate dynamic arrays in the dataspace, as opposed to the stack. Second, try increasing the stacksize by typing.
If this works, consider adding this to your default shell initialization file. Finally, try increasing the datasize by typing. If this all fails, then let us know which routine is involved, as well as the error message you encounter.
Any debugging that is done on your part will help greatly in finding the problem.
Be aware that we are not being paid to solve your problems. In Fortran 95, this can be specified in one of two ways.Wigner3j will calculate the Wigner 3J symbols. The returned values in the array w3j are calculated only for the limits. It is assumed that all j s and m s are integers. In practice, this routine is probably usable up to about For the classical region, the standard three term recursion relationship is used e.
More efficient algorithms probably exist for specific cases for instance, when all Ms are zero. The results of this routine have been verified against the same routine run in quadruple precision. For 1. Here I list the minimum value of max j2,j3 for different ranges of error, as well as the number of times this error occurred:.
Many times, the large relative errors occur when the 3j coefficient changes sign and is very close to zero i. Thus, if one does not need to know highly accurate values of the 3j coefficients when they are almost zero i.
These results have also been verified for parameter values less than using a code based on the algorith of de Blancwhich was originally coded by Olav van Genabeek, and modified by M.
This code was run in quadruple precision and only calculates one coefficient for each call. Maximum relative errors between the two routines were less than 1. Luscombe, J. Luban, Simplified recursive algorithm for Wigner 3j and 6j symbols, Phys. E, 57, Schulten, K. Gordon, Exact recursive evaluation of 3j-coefficients and 6j-coefficients for quantum-mechanical coupling of angular momenta, J.
Nav GitHub Releases Feedback. Wigner3j Fortran. Compute the Wigner-3j symbols for all allowable values of J. The minimum and maximum values of j are given by jmin and jmax.
This corresponds to the first element of w3j. This corresponds to the last non-zero element of w3j. References Luscombe, J.
Tags: fortran.GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together. If nothing happens, download GitHub Desktop and try again. If nothing happens, download Xcode and try again. If nothing happens, download the GitHub extension for Visual Studio and try again.
Publication quality maps using Cartopy or pygmt. More installation instructions and options can be found in the web documentation. The core software is written in Fortran 95, and Python wrappers allow simple access to the fortran-compiled routines. A variety of Python notebooks and example files are included that demonstrate the major features of the library. We work on the develop branch and only push releases to master. Please base all pull requests on develop. Mark A. Wieczorek and Matthias Meschede SHTools Tools for working with spherical harmonics, Geochemistry, Geophysics, Geosystems19,doi: Skip to content.
Dismiss Join GitHub today GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together. Sign up. Fortran Python Makefile. Fortran Branch: master. Find file. Sign in Sign up. Go back.
Launching Xcode If nothing happens, download Xcode and try again. Latest commit. Latest commit a Mar 5, Clean implementation of the spherical harmonic transforms: exact quadrature rules using the sampling theorem of Driscoll and Healy or Gauss-Legendre quadrature, accurate and fast to approximately degreeOpenMP compatible and OpenMP thread-safe.
Selected applications and routines: global spectral analysis, spherical harmonic rotations, and Wigner 3j symbols, localized multitaper spectral analyses, and expansions in Slepian basis functions, standard gravity and magnetic field calculations, computation of the geoid, and finite-amplitude potential from topography.
Integrated support for working with xarray and netcdf data. You signed in with another tab or window. Reload to refresh your session.
You signed out in another tab or window. Mar 3,