Repository: SHTOOLS/SHTOOLS (language: python)

Issue:
Remove pypandoc dependency
Python packaging supports using Markdown as the description format, so there's no need to convert to reST. Also, several packages include their logo on their PyPI page, so I don't think there's any need to trim it.

**Reminders**

- [x] Base all changes on the `develop` branch: the `master` branch is used only when releasing new versions.
- [x] Run `make check` to ensure that the python code follows standard formatting conventions.
- [n/a] If adding new features, update the docstring to provide all information that is required to use the feature.


Discussion / hints:

Fix patch:
diff --git a/.github/workflows/pypi_publish.yml b/.github/workflows/pypi_publish.yml
index 5f0c701fb..2d612bba8 100644
--- a/.github/workflows/pypi_publish.yml
+++ b/.github/workflows/pypi_publish.yml
@@ -11,7 +11,7 @@ jobs:
 
     steps:
     - name: Checkout
-      uses: actions/checkout@v2
+      uses: actions/checkout@v3
 
     - name: Set env
       run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
@@ -19,7 +19,7 @@ jobs:
     - name: Setup Miniconda
       uses: conda-incubator/setup-miniconda@v2
       with:
-        python-version: 3.9
+        python-version: 3.11
         mamba-version: "*"
         channels: conda-forge
         channel-priority: strict
@@ -36,7 +36,6 @@ jobs:
                                  openblas \
                                  numpy \
                                  setuptools \
-                                 pypandoc \
                                  versioneer \
                                  twine
         mamba list -n pypi
@@ -65,13 +64,13 @@ jobs:
         --data '{"event_type": "New pyshtools release", "client_payload": { "repository": "'"$GITHUB_REPOSITORY"'" }}'
 
     - name: Download tarball archive
-      uses: carlosperate/download-file-action@v1.1.1
+      uses: carlosperate/download-file-action@v2.0.0
       id: download-tarball
       with:
         file-url: 'https://github.com/SHTOOLS/SHTOOLS/archive/${{ env.RELEASE_VERSION }}.tar.gz'
 
     - name: Upload tarball as release asset
-      uses: alexellis/upload-assets@0.3.0
+      uses: alexellis/upload-assets@0.4.0
       env:
         GITHUB_TOKEN: ${{ github.token }}
       with:
diff --git a/AUTHORS.md b/AUTHORS.md
index b7b858ff7..6073a1c24 100644
--- a/AUTHORS.md
+++ b/AUTHORS.md
@@ -19,4 +19,5 @@
 * Tristan Brugere
 * Erik Schnetter / [eschnett](https://github.com/eschnett)
 * Martin Reinecke / [mreineck](https://github.com/mreineck)
-* Juan Sierra / [jdsierral](https://github.com/jdsierral)
\ No newline at end of file
+* Juan Sierra / [jdsierral](https://github.com/jdsierral)
+* Pierre-Louis Phan / [pl-phan](https://github.com/pl-phan)
diff --git a/Makefile b/Makefile
index 2380f7725..e22ecf855 100644
--- a/Makefile
+++ b/Makefile
@@ -151,10 +151,9 @@ PEXDIR = examples/python
 NBDIR = examples/notebooks
 WWWSRC = docs
 WWWDEST = www
-LIBPATH = $(PWD)/$(LIBDIR)
-MODPATH = $(PWD)/$(MODDIR)
-INCPATH = $(PWD)/$(INCDIR)
-PYPATH = $(PWD)
+LIBPATH = $(CURDIR)/$(LIBDIR)
+MODPATH = $(CURDIR)/$(MODDIR)
+INCPATH = $(CURDIR)/$(INCDIR)
 
 PREFIX = /usr/local
 SYSLIBPATH = $(PREFIX)/lib
@@ -287,8 +286,8 @@ install:
 	mkdir -pv $(DESTDIR)$(SYSSHAREPATH)/examples/shtools
 	cp -R examples/fortran $(DESTDIR)$(SYSSHAREPATH)/examples/shtools/
 	cp -R examples/ExampleDataFiles $(DESTDIR)$(SYSSHAREPATH)/examples/shtools/
-	mkdir -pv $(DESTDIR)$(SYSSHAREPATH)/man/man1
-	cp -R man/man1/ $(DESTDIR)$(SYSSHAREPATH)/man/man1/
+	mkdir -pv $(DESTDIR)$(SYSSHAREPATH)/man/man3
+	cp -R man/man3/ $(DESTDIR)$(SYSSHAREPATH)/man/man3/
 	@echo
 	@echo "Compile your Fortran code with the following flags:"
 	@echo "---------------------------------------------------"
@@ -312,7 +311,7 @@ doc:
 	@echo "--> Documentation created successfully"
 
 remove-doc:
-	@-rm -f man/man1/*.1
+	@-rm -f man/man3/*.3
 	@-rm -f doc/pages/fortran/fdoc/*.md
 	@-rm -f doc/pages/mydoc/pydoc/*.md
 	@echo "--> Removed man files and web site source md files"
diff --git a/README.md b/README.md
index 35fec3c47..61cdf3d5e 100644
--- a/README.md
+++ b/README.md
@@ -1,25 +1,47 @@
-![LOGO](misc/logo.png)
-
-[![Documentation](https://img.shields.io/badge/documentation-shtools.github.io%2FSHTOOLS%2F-yellow.svg)](https://shtools.github.io/SHTOOLS/)
-[![DOI](https://zenodo.org/badge/doi/10.5281/zenodo.592762.svg)](https://doi.org/10.5281/zenodo.592762)
-[![Paper](https://img.shields.io/badge/paper-10.1029/2018GC007529-orange.svg)](https://doi.org/10.1029/2018GC007529)
-[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/SHTOOLS/SHTOOLS/master?filepath=examples%2Fnotebooks%2F)
-[![Chat on matrix](https://img.shields.io/badge/chat-on_[matrix]-4bb596.svg)](https://matrix.to/#/#pyshtools:matrix.org?via=matrix.org&via=gitter.im)
-[![Chat at gitter](https://badges.gitter.im/SHTOOLS/SHTOOLS.svg)](https://gitter.im/SHTOOLS/SHTOOLS?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
-[![Twitter](https://img.shields.io/twitter/follow/pyshtools.svg?style=social&label=Follow)](https://twitter.com/intent/follow?screen_name=pyshtools)
-[![Mastodon Follow](https://img.shields.io/mastodon/follow/108112567255227248?domain=https%3A%2F%2Ffosstodon.org&style=social)](https://fosstodon.org/users/shtools/remote_follow)
-
-SHTOOLS/pyshtools is a Fortran-95/Python library that can be used for spherical harmonic transforms, multitaper spectral analyses, expansions of gridded data into Slepian basis functions, and standard operations on global gravitational and magnetic field data.
-
-### FEATURES ###
+<p align="center">
+    <img alt="SHTOOLS LOGO" src="misc/logo.png" width="100%">
+    <a href="https://shtools.github.io/SHTOOLS/"><img alt="Documentation" src="https://img.shields.io/badge/documentation-shtools.github.io%2FSHTOOLS%2F-yellow.svg"></a>
+    <a href="https://doi.org/10.5281/zenodo.592762"><img alt="DOI" src="https://zenodo.org/badge/doi/10.5281/zenodo.592762.svg"></a>
+    <a href="https://doi.org/10.1029/2018GC007529"><img alt="Paper" src="https://img.shields.io/badge/paper-10.1029/2018GC007529-orange.svg"></a>
+    <a href="https://mybinder.org/v2/gh/SHTOOLS/SHTOOLS/master?filepath=examples%2Fnotebooks%2F"><img alt="Binder" src="https://mybinder.org/badge_logo.svg"></a>
+    <a href="https://matrix.to/#/%23pyshtools:matrix.org"><img alt="Chat on matrix" src="https://img.shields.io/badge/chat-on_[matrix]-4bb596.svg"></a>
+    <a href="https://app.gitter.im/#/room/#pyshtools:matrix.org"><img alt="Chat at gitter" src="https://badges.gitter.im/SHTOOLS/SHTOOLS.svg"></a>
+    <img alt="License" src="https://img.shields.io/badge/License-BSD_3--Clause-brightgreen.svg">
+    <a href="https://fosstodon.org/@shtools"><img alt="Mastodon Follow" src="https://img.shields.io/mastodon/follow/108112567255227248?domain=https%3A%2F%2Ffosstodon.org&style=social"></a>
+</p>
+
+SHTOOLS/pyshtools is a Fortran-95/Python library that can be used for spherical harmonic transforms, multitaper spectral analyses, expansions of gridded data into Slepian basis functions, standard operations on global gravitational and magnetic field data.
+
+### TABLE OF CONTENTS
+<!-- toc -->
+
+- [FEATURES](#features)
+- [HOW TO USE](#how-to-use)
+- [INSTALLATION](#installation)
+  - [pyshtools (for Python)](#pyshtools-for-python)
+    - [Install using `conda`](#install-using-conda)
+    - [Install using `pip`](#install-using-pip)
+    - [For Developers](#for-developers)
+  - [SHTOOLS (for Fortran 95)](#shtools-for-fortran-95)
+    - [Install using the `brew` package manager (MacOS, Linux, Windows)](#install-using-the-brew-package-manager-macos-linux-windows)
+    - [Install using the `macports` package manager (MacOS)](#install-using-the-macports-package-manager-macos)
+    - [Install from source](#install-from-source)
+- [CONTRIBUTING](#contributing)
+- [MAINTAINERS AND CONTRIBUTORS](#maintainers-and-contributors)
+- [LICENSE](#license)
+- [REFERENCES](#references)
+
+<!-- tocstop -->
+
+### FEATURES
 
 * Supports all standard normalizations and phase conventions of the spherical harmonic functions.
 
-* Effortless conversion between real and complex harmonics, between phase conventions, and between 4&pi; normalized, Schmidt semi-normalized, orthonormalized, and unnormalized harmonics.
+* Effortless conversion between real and complex harmonics, and between different normalization and phase conventions.
 
 * Use of both regularly sampled geographic grids and grids appropriate for Gauss-Legendre quadrature.
 
-* Spherical harmonic transforms proven to be accurate up to about degree 2800 for the Fortran 95 code, and beyond using the DUCC0 backend.
+* Spherical harmonic transforms proven to be accurate up to about degree 2800 for the native Fortran 95 backend and beyond using the [DUCC0](https://gitlab.mpcdf.mpg.de/mtr/ducc) backend.
 
 * Perform localized multitaper spectral analyses, or expand gridded data in terms of localized Slepian basis functions.
 
@@ -27,20 +49,32 @@ SHTOOLS/pyshtools is a Fortran-95/Python library that can be used for spherical
 
 * Import research-grade gravity, topography, and magnetic field datasets with a single command.
 
-* Creation of publication quality maps using [Cartopy](https://scitools.org.uk/cartopy) and [pygmt](https://www.pygmt.org/).
+* Creation of publication quality maps using [Cartopy](https://scitools.org.uk/cartopy) and [PyGMT](https://scitools.org.uk/cartopy/docs/latest).
+
+* Support multithreaded programming using the [OpenMP](https://www.openmp.org) API.
+
+### HOW TO USE
+
+A variety of Python tutorials and guides are available to explain the main library features. To get started, click on the following Python tutorials and run them interactively in Binder:
+
+* [Spherical harmonic coefficients and grids](https://nbviewer.jupyter.org/github/SHTOOLS/SHTOOLS/blob/master/examples/notebooks/grids-and-coefficients.ipynb)
+* [Localization windows and spectral analysis](https://nbviewer.jupyter.org/github/SHTOOLS/SHTOOLS/blob/master/examples/notebooks/localized-spectral-analysis.ipynb)
+* [Gravity and magnetic fields](https://nbviewer.jupyter.org/github/SHTOOLS/SHTOOLS/blob/master/examples/notebooks/gravity-and-magnetic-fields.ipynb)
+* [Plotting maps](https://nbviewer.jupyter.org/github/SHTOOLS/SHTOOLS/blob/master/examples/notebooks/plotting-maps.ipynb)
+
+### INSTALLATION
 
-* OpenMP compatible and OpenMP thread-safe versions of the Fortran routines.
+SHTOOLS can be invoked in any Fortran 95 or Python program. The core software is written in Fortran 95, and Python wrappers and dedicated classes allow simple access to the fortran-compiled routines. To install it, run these commands below:
 
-### INSTALLATION ###
-#### pyshtools (for Python) ####
+#### pyshtools (for Python)
 
-Install using `conda`:
+##### Install using `conda`:
 ```bash
 conda install -c conda-forge pyshtools  # Linux and macOS only
 conda update -c conda-forge pyshtools  # to upgrade a pre-existing installation
 ```
 
-Install using `pip`:
+##### Install using `pip`:
 ```bash
 pip install pyshtools
 pip install --upgrade pyshtools  # to upgrade a pre-existing installation
@@ -48,7 +82,8 @@ pip install pyshtools --no-binary pyshtools  # build from source
 pip install git+https://github.com/SHTOOLS/SHTOOLS@develop  # install the develop branch from source
 ```
 
-For developers, install the requirements
+##### For developers:
+Install the requirements:
 ```bash
 # Linux: install gfortran, fftw3, blas, and lapack
 sudo apt-get install g++ gfortran libfftw3-dev libblas-dev liblapack-dev
@@ -58,7 +93,7 @@ sudo port install fftw-3
 # macOS: for LAPACK, link to the system '-framework Accelerate' or install openblas
 ```
 
-then clone the shtools repo and install manually:
+Then clone the shtools repo and install manually:
 ```bash
 git clone https://github.com/SHTOOLS/SHTOOLS.git
 cd shtools
@@ -66,19 +101,20 @@ git checkout develop
 pip install -e .  # install into the shtools folder and link to the active python environment
 ```
 
-#### SHTOOLS (for Fortran 95) ####
+#### SHTOOLS (for Fortran 95)
 
-Install using the [brew](http://brew.sh/) package manager (macOS, linux, windows):
+##### Install using the [brew](http://brew.sh/) package manager (MacOS, Linux, Windows):
 ```bash
 brew install shtools
 ```
 
-Install using the [macports](https://www.macports.org/) package manager (macOS)
+##### Install using the [macports](https://www.macports.org/) package manager (MacOS):
 ```bash
 sudo port install shtools
 ```
 
-Install from source. Clone or download the shtools repo, and then execute one (or both) of the following commands in the shtools directory:
+##### Install from source:
+Clone or download the this repo, and then execute one (or both) of the following commands in the `shtools` directory:
 ```bash
 make fortran
 make fortran-mp  # for OpenMP Fortran routines
@@ -86,21 +122,17 @@ make fortran-mp  # for OpenMP Fortran routines
 
 Further installation instructions and options can be found in the [web documentation](https://shtools.github.io/SHTOOLS/).
 
-### HOW TO USE ###
-
-SHTOOLS can be invoked in any Fortran 95 or Python program. The core software is written in Fortran 95, and Python wrappers and dedicated classes allow simple access to the fortran-compiled routines. A variety of Python tutorials and guides are included that demonstrate the major features of the library.
+### CONTRIBUTING
 
-To get started, click on the following Python tutorials and then run them interactively in Binder:
-
-* [Spherical harmonic coefficients and grids](https://nbviewer.jupyter.org/github/SHTOOLS/SHTOOLS/blob/master/examples/notebooks/grids-and-coefficients.ipynb)
-* [Localization windows and spectral analysis](https://nbviewer.jupyter.org/github/SHTOOLS/SHTOOLS/blob/master/examples/notebooks/localized-spectral-analysis.ipynb)
-* [Gravity and magnetic fields](https://nbviewer.jupyter.org/github/SHTOOLS/SHTOOLS/blob/master/examples/notebooks/gravity-and-magnetic-fields.ipynb)
-* [Plotting maps](https://nbviewer.jupyter.org/github/SHTOOLS/SHTOOLS/blob/master/examples/notebooks/plotting-maps.ipynb)
+We work on the `develop` branch and only push releases to `master`. Please base all pull requests on `develop`.
 
-### DEVELOPERS ###
+### CONTRIBUTORS
 
-We work on the `develop` branch and only push releases to `master`. Please base all pull requests on `develop`.
+For the full list of contributors, see the [AUTHORS](./AUTHORS.md) file.
 
-### REFERENCE ###
+### LICENSE
+This project uses the BSD 3-Clause license, as found in the [LICENSE](./LICENSE.txt) file.
 
-Mark A. Wieczorek and Matthias Meschede (2018). SHTools --- Tools for working with spherical harmonics, *Geochemistry, Geophysics, Geosystems*, 19, 2574-2592, doi:[10.1029/2018GC007529](https://doi.org/10.1029/2018GC007529).
+### REFERENCES
+- Mark A. Wieczorek and Matthias Meschede (2018). SHTools --- Tools for working with spherical harmonics, *Geochemistry, Geophysics, Geosystems*, 19, 2574-2592, doi:[10.1029/2018GC007529](https://doi.org/10.1029/2018GC007529).
+- Mark Wieczorek, *et al*. (2019). SHTOOLS/SHTOOLS. Zenodo, doi:[10.5281/zenodo.3457861](https://doi.org/10.5281/zenodo.3457861)
diff --git a/docs/Gemfile.lock b/docs/Gemfile.lock
index 9bde6c606..9701c004e 100644
--- a/docs/Gemfile.lock
+++ b/docs/Gemfile.lock
@@ -1,43 +1,42 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    activesupport (6.0.5.1)
+    activesupport (7.0.4.3)
       concurrent-ruby (~> 1.0, >= 1.0.2)
-      i18n (>= 0.7, < 2)
-      minitest (~> 5.1)
-      tzinfo (~> 1.1)
-      zeitwerk (~> 2.2, >= 2.2.2)
-    addressable (2.8.1)
+      i18n (>= 1.6, < 2)
+      minitest (>= 5.1)
+      tzinfo (~> 2.0)
+    addressable (2.8.4)
       public_suffix (>= 2.0.2, < 6.0)
     coffee-script (2.4.1)
       coffee-script-source
       execjs
     coffee-script-source (1.11.1)
     colorator (1.1.0)
-    commonmarker (0.23.5)
-    concurrent-ruby (1.1.10)
-    dnsruby (1.61.9)
-      simpleidn (~> 0.1)
+    commonmarker (0.23.9)
+    concurrent-ruby (1.2.2)
+    dnsruby (1.70.0)
+      simpleidn (~> 0.2.1)
     em-websocket (0.5.3)
       eventmachine (>= 0.12.9)
       http_parser.rb (~> 0)
-    ethon (0.15.0)
+    ethon (0.16.0)
       ffi (>= 1.15.0)
     eventmachine (1.2.7)
     execjs (2.8.1)
-    faraday (2.5.2)
+    faraday (2.7.4)
       faraday-net_http (>= 2.0, < 3.1)
       ruby2_keywords (>= 0.0.4)
-    faraday-net_http (3.0.0)
+    faraday-net_http (3.0.2)
     ffi (1.15.5)
     forwardable-extended (2.6.0)
     gemoji (3.0.1)
-    github-pages (227)
+    github-pages (228)
       github-pages-health-check (= 1.17.9)
-      jekyll (= 3.9.2)
+      jekyll (= 3.9.3)
       jekyll-avatar (= 0.7.0)
       jekyll-coffeescript (= 1.1.1)
-      jekyll-commonmark-ghpages (= 0.2.0)
+      jekyll-commonmark-ghpages (= 0.4.0)
       jekyll-default-layout (= 0.1.4)
       jekyll-feed (= 0.15.1)
       jekyll-gist (= 1.5.0)
@@ -71,7 +70,7 @@ GEM
       jemoji (= 0.12.0)
       kramdown (= 2.3.2)
       kramdown-parser-gfm (= 1.1.0)
-      liquid (= 4.0.3)
+      liquid (= 4.0.4)
       mercenary (~> 0.3)
       minima (= 2.5.1)
       nokogiri (>= 1.13.6, < 2.0)
@@ -83,17 +82,17 @@ GEM
       octokit (~> 4.0)
       public_suffix (>= 3.0, < 5.0)
       typhoeus (~> 1.3)
-    html-pipeline (2.14.2)
+    html-pipeline (2.14.3)
       activesupport (>= 2)
       nokogiri (>= 1.4)
     http_parser.rb (0.8.0)
-    i18n (0.9.5)
+    i18n (1.12.0)
       concurrent-ruby (~> 1.0)
-    jekyll (3.9.2)
+    jekyll (3.9.3)
       addressable (~> 2.4)
       colorator (~> 1.0)
       em-websocket (~> 0.5)
-      i18n (~> 0.7)
+      i18n (>= 0.7, < 2)
       jekyll-sass-converter (~> 1.0)
       jekyll-watch (~> 2.0)
       kramdown (>= 1.17, < 3)
@@ -109,11 +108,11 @@ GEM
       coffee-script-source (~> 1.11.1)
     jekyll-commonmark (1.4.0)
       commonmarker (~> 0.22)
-    jekyll-commonmark-ghpages (0.2.0)
-      commonmarker (~> 0.23.4)
+    jekyll-commonmark-ghpages (0.4.0)
+      commonmarker (~> 0.23.7)
       jekyll (~> 3.9.0)
       jekyll-commonmark (~> 1.4.0)
-      rouge (>= 2.0, < 4.0)
+      rouge (>= 2.0, < 5.0)
     jekyll-default-layout (0.1.4)
       jekyll (~> 3.0)
     jekyll-feed (0.15.1)
@@ -201,8 +200,8 @@ GEM
       rexml
     kramdown-parser-gfm (1.1.0)
       kramdown (~> 2.0)
-    liquid (4.0.3)
-    listen (3.7.1)
+    liquid (4.0.4)
+    listen (3.8.0)
       rb-fsevent (~> 0.10, >= 0.10.3)
       rb-inotify (~> 0.9, >= 0.9.10)
     mercenary (0.3.6)
@@ -210,10 +209,10 @@ GEM
       jekyll (>= 3.5, < 5.0)
       jekyll-feed (~> 0.9)
       jekyll-seo-tag (~> 2.1)
-    minitest (5.16.3)
-    nokogiri (1.13.8-arm64-darwin)
+    minitest (5.18.0)
+    nokogiri (1.14.3-arm64-darwin)
       racc (~> 1.4)
-    nokogiri (1.13.8-x86_64-darwin)
+    nokogiri (1.14.3-x86_64-darwin)
       racc (~> 1.4)
     octokit (4.25.1)
       faraday (>= 1, < 3)
@@ -221,7 +220,7 @@ GEM
     pathutil (0.16.2)
       forwardable-extended (~> 2.6)
     public_suffix (4.0.7)
-    racc (1.6.0)
+    racc (1.6.2)
     rb-fsevent (0.11.2)
     rb-inotify (0.10.1)
       ffi (~> 1.0)
@@ -242,17 +241,15 @@ GEM
       unf (~> 0.1.4)
     terminal-table (1.8.0)
       unicode-display_width (~> 1.1, >= 1.1.1)
-    thread_safe (0.3.6)
     typhoeus (1.4.0)
       ethon (>= 0.9.0)
-    tzinfo (1.2.10)
-      thread_safe (~> 0.1)
+    tzinfo (2.0.6)
+      concurrent-ruby (~> 1.0)
     unf (0.1.4)
       unf_ext
     unf_ext (0.0.8.2)
     unicode-display_width (1.8.0)
-    webrick (1.7.0)
-    zeitwerk (2.6.0)
+    webrick (1.8.1)
 
 PLATFORMS
   arm64-darwin-21
diff --git a/docs/pages/fortran/fortran-grid-formats.md b/docs/pages/fortran/fortran-grid-formats.md
index b013b151b..0c7de94b7 100644
--- a/docs/pages/fortran/fortran-grid-formats.md
+++ b/docs/pages/fortran/fortran-grid-formats.md
@@ -17,7 +17,7 @@ table:nth-of-type(n) {
 
 ## Supported grid formats
 
-SHTOOLS makes use of grid formats that accommodate exact quadrature. These include regularly spaced grids that satisfy the *Driscoll and Healy* (1994) sampling theorem, and grids for exact quadrature using Gauss-Legendre quadrature [e.g., Press et al. 1992].
+SHTOOLS makes use of grid formats that accommodate exact quadrature. These include regularly spaced grids that satisfy the *Driscoll and Healy* (1994) sampling theorem, and grids for exact quadrature using Gauss-Legendre quadrature [e.g., Press et al. 1992]. The grids are input as arrays where the rows and columns correspond to equal values of latitude and longitude, respectively. The first row corresponds to the latitude band closest to the north pole, and the first column corresponds to 0 degrees E.
 
 ### Gauss-Legendre Quadrature
 
diff --git a/docs/pages/mydoc/grid-formats.md b/docs/pages/mydoc/grid-formats.md
index f74937f4b..a4343295e 100644
--- a/docs/pages/mydoc/grid-formats.md
+++ b/docs/pages/mydoc/grid-formats.md
@@ -17,7 +17,7 @@ table:nth-of-type(n) {
 
 ## Supported grid formats
 
-pyshtools makes use of grid formats that accommodate exact quadrature. These include regularly spaced grids that satisfy the *Driscoll and Healy* (1994) sampling theorem, and grids for exact quadrature using Gauss-Legendre quadrature [e.g., Press et al. 1992].
+pyshtools makes use of grid formats that accommodate exact quadrature. These include regularly spaced grids that satisfy the *Driscoll and Healy* (1994) sampling theorem, and grids for exact quadrature using Gauss-Legendre quadrature [e.g., Press et al. 1992]. The grids are input as arrays where the rows and columns correspond to equal values of latitude and longitude, respectively. The first row corresponds to the latitude band closest to the north pole, and the first column corresponds to 0 degrees E.
 
 ### Gauss-Legendre Quadrature
 
diff --git a/environment-dev.yml b/environment-dev.yml
index 969494e7d..ded36f2bb 100644
--- a/environment-dev.yml
+++ b/environment-dev.yml
@@ -18,5 +18,4 @@ dependencies:
     - jupyter
     - pip
     - ducc0>=0.15
-    - pypandoc
-    - flake8
\ No newline at end of file
+    - flake8
diff --git a/man/man1/batohilm.1 b/man/man3/batohilm.3
similarity index 99%
rename from man/man1/batohilm.1
rename to man/man3/batohilm.3
index 6cfa982cb..74c39cdc6 100644
--- a/man/man1/batohilm.1
+++ b/man/man3/batohilm.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "batohilm" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "batohilm" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH BAtoHilm
 .PP
diff --git a/man/man1/batohilmrhoh.1 b/man/man3/batohilmrhoh.3
similarity index 99%
rename from man/man1/batohilmrhoh.1
rename to man/man3/batohilmrhoh.3
index e3ade789a..398de579f 100644
--- a/man/man1/batohilmrhoh.1
+++ b/man/man3/batohilmrhoh.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "batohilmrhoh" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "batohilmrhoh" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH BAtoHilmRhoH
 .PP
diff --git a/man/man1/cilmminus.1 b/man/man3/cilmminus.3
similarity index 99%
rename from man/man1/cilmminus.1
rename to man/man3/cilmminus.3
index 86e42d561..51e2684d3 100644
--- a/man/man1/cilmminus.1
+++ b/man/man3/cilmminus.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "cilmminus" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "cilmminus" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH CilmMinus
 .PP
diff --git a/man/man1/cilmminusrhoh.1 b/man/man3/cilmminusrhoh.3
similarity index 99%
rename from man/man1/cilmminusrhoh.1
rename to man/man3/cilmminusrhoh.3
index 4670b92a7..df820b9f4 100644
--- a/man/man1/cilmminusrhoh.1
+++ b/man/man3/cilmminusrhoh.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "cilmminusrhoh" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "cilmminusrhoh" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH CilmMinusRhoH
 .PP
diff --git a/man/man1/cilmplus.1 b/man/man3/cilmplus.3
similarity index 99%
rename from man/man1/cilmplus.1
rename to man/man3/cilmplus.3
index 18d6e662f..b3ff195b7 100644
--- a/man/man1/cilmplus.1
+++ b/man/man3/cilmplus.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "cilmplus" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "cilmplus" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH CilmPlus
 .PP
diff --git a/man/man1/cilmplusrhoh.1 b/man/man3/cilmplusrhoh.3
similarity index 99%
rename from man/man1/cilmplusrhoh.1
rename to man/man3/cilmplusrhoh.3
index 2cfa1d56d..bba9f1b0d 100644
--- a/man/man1/cilmplusrhoh.1
+++ b/man/man3/cilmplusrhoh.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "cilmplusrhoh" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "cilmplusrhoh" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH CilmPlusRhoH
 .PP
diff --git a/man/man1/computedg82.1 b/man/man3/computedg82.3
similarity index 97%
rename from man/man1/computedg82.1
rename to man/man3/computedg82.3
index 5ad99bec2..28592bcde 100644
--- a/man/man1/computedg82.1
+++ b/man/man3/computedg82.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "computedg82" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "computedg82" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH ComputeDG82
 .PP
diff --git a/man/man1/computedm.1 b/man/man3/computedm.3
similarity index 97%
rename from man/man1/computedm.1
rename to man/man3/computedm.3
index 80e367557..a6f51cb4f 100644
--- a/man/man1/computedm.1
+++ b/man/man3/computedm.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "computedm" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "computedm" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH ComputeDM
 .PP
diff --git a/man/man1/computedmap.1 b/man/man3/computedmap.3
similarity index 98%
rename from man/man1/computedmap.1
rename to man/man3/computedmap.3
index 7fc0b8b1d..6be64674d 100644
--- a/man/man1/computedmap.1
+++ b/man/man3/computedmap.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "computedmap" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "computedmap" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH ComputeDMap
 .PP
diff --git a/man/man1/curve2mask.1 b/man/man3/curve2mask.3
similarity index 98%
rename from man/man1/curve2mask.1
rename to man/man3/curve2mask.3
index c92ef2092..d31cafa3d 100644
--- a/man/man1/curve2mask.1
+++ b/man/man3/curve2mask.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "curve2mask" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "curve2mask" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH Curve2Mask
 .PP
diff --git a/man/man1/dhaj.1 b/man/man3/dhaj.3
similarity index 97%
rename from man/man1/dhaj.1
rename to man/man3/dhaj.3
index 8583ac4d8..103adfa04 100644
--- a/man/man1/dhaj.1
+++ b/man/man3/dhaj.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "dhaj" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "dhaj" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH DHaj
 .PP
diff --git a/man/man1/djpi2.1 b/man/man3/djpi2.3
similarity index 96%
rename from man/man1/djpi2.1
rename to man/man3/djpi2.3
index df89ad719..dd8edeaa1 100644
--- a/man/man1/djpi2.1
+++ b/man/man3/djpi2.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "djpi2" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "djpi2" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH djpi2
 .PP
diff --git a/man/man1/downcontfilterma.1 b/man/man3/downcontfilterma.3
similarity index 96%
rename from man/man1/downcontfilterma.1
rename to man/man3/downcontfilterma.3
index 45ed7f549..cf9718fd6 100644
--- a/man/man1/downcontfilterma.1
+++ b/man/man3/downcontfilterma.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "downcontfilterma" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "downcontfilterma" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH DownContFilterMA
 .PP
diff --git a/man/man1/downcontfiltermc.1 b/man/man3/downcontfiltermc.3
similarity index 97%
rename from man/man1/downcontfiltermc.1
rename to man/man3/downcontfiltermc.3
index e22f771c6..80dafa6ce 100644
--- a/man/man1/downcontfiltermc.1
+++ b/man/man3/downcontfiltermc.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "downcontfiltermc" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "downcontfiltermc" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH DownContFilterMC
 .PP
diff --git a/man/man1/eigvalsym.1 b/man/man3/eigvalsym.3
similarity index 96%
rename from man/man1/eigvalsym.1
rename to man/man3/eigvalsym.3
index 6053fc6d1..27e23771f 100644
--- a/man/man1/eigvalsym.1
+++ b/man/man3/eigvalsym.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "eigvalsym" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "eigvalsym" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH EigValSym
 .PP
diff --git a/man/man1/eigvalvecsym.1 b/man/man3/eigvalvecsym.3
similarity index 97%
rename from man/man1/eigvalvecsym.1
rename to man/man3/eigvalvecsym.3
index d59a143ed..443e1f637 100644
--- a/man/man1/eigvalvecsym.1
+++ b/man/man3/eigvalvecsym.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "eigvalvecsym" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "eigvalvecsym" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH EigValVecSym
 .PP
diff --git a/man/man1/eigvalvecsymtri.1 b/man/man3/eigvalvecsymtri.3
similarity index 97%
rename from man/man1/eigvalvecsymtri.1
rename to man/man3/eigvalvecsymtri.3
index a5bca0eed..b5b390774 100644
--- a/man/man1/eigvalvecsymtri.1
+++ b/man/man3/eigvalvecsymtri.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "eigvalvecsymtri" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "eigvalvecsymtri" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH EigValVecSymTri
 .PP
diff --git a/man/man1/glqgridcoord.1 b/man/man3/glqgridcoord.3
similarity index 97%
rename from man/man1/glqgridcoord.1
rename to man/man3/glqgridcoord.3
index b11ed9060..49a3c0f3c 100644
--- a/man/man1/glqgridcoord.1
+++ b/man/man3/glqgridcoord.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "glqgridcoord" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "glqgridcoord" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH GLQGridCoord
 .PP
diff --git a/man/man1/makecirclecoord.1 b/man/man3/makecirclecoord.3
similarity index 97%
rename from man/man1/makecirclecoord.1
rename to man/man3/makecirclecoord.3
index 3b330af9b..7c116443d 100644
--- a/man/man1/makecirclecoord.1
+++ b/man/man3/makecirclecoord.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "makecirclecoord" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "makecirclecoord" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH MakeCircleCoord
 .PP
diff --git a/man/man1/makeellipsecoord.1 b/man/man3/makeellipsecoord.3
similarity index 97%
rename from man/man1/makeellipsecoord.1
rename to man/man3/makeellipsecoord.3
index 16bf0126c..2165af742 100644
--- a/man/man1/makeellipsecoord.1
+++ b/man/man3/makeellipsecoord.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "makeellipsecoord" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "makeellipsecoord" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH MakeEllipseCoord
 .PP
diff --git a/man/man1/makegeoidgrid.1 b/man/man3/makegeoidgrid.3
similarity index 99%
rename from man/man1/makegeoidgrid.1
rename to man/man3/makegeoidgrid.3
index 7e961b2d1..db6d4c24e 100644
--- a/man/man1/makegeoidgrid.1
+++ b/man/man3/makegeoidgrid.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "makegeoidgrid" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "makegeoidgrid" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH MakeGeoidGrid
 .PP
diff --git a/man/man1/makegradientdh.1 b/man/man3/makegradientdh.3
similarity index 98%
rename from man/man1/makegradientdh.1
rename to man/man3/makegradientdh.3
index 9674b56d1..706b1d83e 100644
--- a/man/man1/makegradientdh.1
+++ b/man/man3/makegradientdh.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "makegradientdh" "1" "2021-09-03" "Fortran 95" "SHTOOLS 4.10"
+.TH "makegradientdh" "3" "2021-09-03" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH MakeGradientDH
 .PP
diff --git a/man/man1/makegravgradgriddh.1 b/man/man3/makegravgradgriddh.3
similarity index 99%
rename from man/man1/makegravgradgriddh.1
rename to man/man3/makegravgradgriddh.3
index 8d67bb585..4e8ac6592 100644
--- a/man/man1/makegravgradgriddh.1
+++ b/man/man3/makegravgradgriddh.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "makegravgradgriddh" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "makegravgradgriddh" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH MakeGravGradGridDH
 .PP
diff --git a/man/man1/makegravgriddh.1 b/man/man3/makegravgriddh.3
similarity index 99%
rename from man/man1/makegravgriddh.1
rename to man/man3/makegravgriddh.3
index 7e6609b00..ba9b005e2 100644
--- a/man/man1/makegravgriddh.1
+++ b/man/man3/makegravgriddh.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "makegravgriddh" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "makegravgriddh" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH MakeGravGridDH
 .PP
diff --git a/man/man1/makegravgridpoint.1 b/man/man3/makegravgridpoint.3
similarity index 97%
rename from man/man1/makegravgridpoint.1
rename to man/man3/makegravgridpoint.3
index 254f87236..a7dc45445 100644
--- a/man/man1/makegravgridpoint.1
+++ b/man/man3/makegravgridpoint.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "makegravgridpoint" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "makegravgridpoint" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH MakeGravGridPoint
 .PP
diff --git a/man/man1/makegrid2d.1 b/man/man3/makegrid2d.3
similarity index 98%
rename from man/man1/makegrid2d.1
rename to man/man3/makegrid2d.3
index 48c50fa04..1b5a6430d 100644
--- a/man/man1/makegrid2d.1
+++ b/man/man3/makegrid2d.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "makegrid2d" "1" "2021-10-22" "Fortran 95" "SHTOOLS 4.10"
+.TH "makegrid2d" "3" "2021-10-22" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH MakeGrid2D
 .PP
diff --git a/man/man1/makegriddh.1 b/man/man3/makegriddh.3
similarity index 98%
rename from man/man1/makegriddh.1
rename to man/man3/makegriddh.3
index d47ce68f0..796fea073 100644
--- a/man/man1/makegriddh.1
+++ b/man/man3/makegriddh.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "makegriddh" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "makegriddh" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH MakeGridDH
 .PP
diff --git a/man/man1/makegriddhc.1 b/man/man3/makegriddhc.3
similarity index 98%
rename from man/man1/makegriddhc.1
rename to man/man3/makegriddhc.3
index 2303bf49a..0df8427de 100644
--- a/man/man1/makegriddhc.1
+++ b/man/man3/makegriddhc.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "makegriddhc" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "makegriddhc" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH MakeGridDHC
 .PP
diff --git a/man/man1/makegridglq.1 b/man/man3/makegridglq.3
similarity index 98%
rename from man/man1/makegridglq.1
rename to man/man3/makegridglq.3
index 82f5a735b..b6a595157 100644
--- a/man/man1/makegridglq.1
+++ b/man/man3/makegridglq.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "makegridglq" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "makegridglq" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH MakeGridGLQ
 .PP
diff --git a/man/man1/makegridglqc.1 b/man/man3/makegridglqc.3
similarity index 98%
rename from man/man1/makegridglqc.1
rename to man/man3/makegridglqc.3
index 5e215d600..b0a1b88c6 100644
--- a/man/man1/makegridglqc.1
+++ b/man/man3/makegridglqc.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "makegridglqc" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "makegridglqc" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH MakeGridGLQC
 .PP
diff --git a/man/man1/makegridpoint.1 b/man/man3/makegridpoint.3
similarity index 97%
rename from man/man1/makegridpoint.1
rename to man/man3/makegridpoint.3
index 1bdeea244..dab854d08 100644
--- a/man/man1/makegridpoint.1
+++ b/man/man3/makegridpoint.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "makegridpoint" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "makegridpoint" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH MakeGridPoint
 .PP
diff --git a/man/man1/makegridpointc.1 b/man/man3/makegridpointc.3
similarity index 97%
rename from man/man1/makegridpointc.1
rename to man/man3/makegridpointc.3
index d21dc9306..5f2b5de69 100644
--- a/man/man1/makegridpointc.1
+++ b/man/man3/makegridpointc.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "makegridpointc" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "makegridpointc" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH MakeGridPointC
 .PP
diff --git a/man/man1/makemaggradgriddh.1 b/man/man3/makemaggradgriddh.3
similarity index 99%
rename from man/man1/makemaggradgriddh.1
rename to man/man3/makemaggradgriddh.3
index c244f5f18..bdbe66cbd 100644
--- a/man/man1/makemaggradgriddh.1
+++ b/man/man3/makemaggradgriddh.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "makemaggradgriddh" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "makemaggradgriddh" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH MakeMagGradGridDH
 .PP
diff --git a/man/man1/makemaggriddh.1 b/man/man3/makemaggriddh.3
similarity index 98%
rename from man/man1/makemaggriddh.1
rename to man/man3/makemaggriddh.3
index be94d9f9e..34a167379 100644
--- a/man/man1/makemaggriddh.1
+++ b/man/man3/makemaggriddh.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "makemaggriddh" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "makemaggriddh" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH MakeMagGridDH
 .PP
diff --git a/man/man1/makemaggridpoint.1 b/man/man3/makemaggridpoint.3
similarity index 97%
rename from man/man1/makemaggridpoint.1
rename to man/man3/makemaggridpoint.3
index 584367f7c..2b255f11c 100644
--- a/man/man1/makemaggridpoint.1
+++ b/man/man3/makemaggridpoint.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "makemaggridpoint" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "makemaggridpoint" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH MakeMagGridPoint
 .PP
diff --git a/man/man1/normalgravity.1 b/man/man3/normalgravity.3
similarity index 96%
rename from man/man1/normalgravity.1
rename to man/man3/normalgravity.3
index 4d2d908eb..1a0f29d75 100644
--- a/man/man1/normalgravity.1
+++ b/man/man3/normalgravity.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "normalgravity" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "normalgravity" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH NormalGravity
 .PP
diff --git a/man/man1/planetsconstants.1 b/man/man3/planetsconstants.3
similarity index 98%
rename from man/man1/planetsconstants.1
rename to man/man3/planetsconstants.3
index 02fd93bb6..6086e10fe 100644
--- a/man/man1/planetsconstants.1
+++ b/man/man3/planetsconstants.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "planetsconstants" "1" "2020-03-09" "Fortran 95" "SHTOOLS 4.10"
+.TH "planetsconstants" "3" "2020-03-09" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH PlanetsConstants
 .PP
diff --git a/man/man1/plbar.1 b/man/man3/plbar.3
similarity index 96%
rename from man/man1/plbar.1
rename to man/man3/plbar.3
index 913978250..6ced93fe4 100644
--- a/man/man1/plbar.1
+++ b/man/man3/plbar.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "plbar" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "plbar" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH PlBar
 .PP
diff --git a/man/man1/plbar_d1.1 b/man/man3/plbar_d1.3
similarity index 97%
rename from man/man1/plbar_d1.1
rename to man/man3/plbar_d1.3
index 4b4d58a4d..326b1c857 100644
--- a/man/man1/plbar_d1.1
+++ b/man/man3/plbar_d1.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "plbar_d1" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "plbar_d1" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH PlBar_d1
 .PP
diff --git a/man/man1/plegendre.1 b/man/man3/plegendre.3
similarity index 96%
rename from man/man1/plegendre.1
rename to man/man3/plegendre.3
index 045d0cc15..4da4cb2b7 100644
--- a/man/man1/plegendre.1
+++ b/man/man3/plegendre.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "plegendre" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "plegendre" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH PLegendre
 .PP
diff --git a/man/man1/plegendre_d1.1 b/man/man3/plegendre_d1.3
similarity index 97%
rename from man/man1/plegendre_d1.1
rename to man/man3/plegendre_d1.3
index f61e908da..734e35ca9 100644
--- a/man/man1/plegendre_d1.1
+++ b/man/man3/plegendre_d1.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "plegendre_d1" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "plegendre_d1" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH PLegendre_d1
 .PP
diff --git a/man/man1/plegendrea.1 b/man/man3/plegendrea.3
similarity index 97%
rename from man/man1/plegendrea.1
rename to man/man3/plegendrea.3
index 38b7e194e..b7d79df5b 100644
--- a/man/man1/plegendrea.1
+++ b/man/man3/plegendrea.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "plegendrea" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "plegendrea" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH PLegendreA
 .PP
diff --git a/man/man1/plegendrea_d1.1 b/man/man3/plegendrea_d1.3
similarity index 98%
rename from man/man1/plegendrea_d1.1
rename to man/man3/plegendrea_d1.3
index 92a3fe91f..e6c49b1d5 100644
--- a/man/man1/plegendrea_d1.1
+++ b/man/man3/plegendrea_d1.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "plegendrea_d1" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "plegendrea_d1" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH PLegendreA_d1
 .PP
diff --git a/man/man1/plmbar.1 b/man/man3/plmbar.3
similarity index 98%
rename from man/man1/plmbar.1
rename to man/man3/plmbar.3
index a118d52e8..d041ab0db 100644
--- a/man/man1/plmbar.1
+++ b/man/man3/plmbar.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "plmbar" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "plmbar" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH PlmBar
 .PP
diff --git a/man/man1/plmbar_d1.1 b/man/man3/plmbar_d1.3
similarity index 98%
rename from man/man1/plmbar_d1.1
rename to man/man3/plmbar_d1.3
index 9d07494ef..74d13406b 100644
--- a/man/man1/plmbar_d1.1
+++ b/man/man3/plmbar_d1.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "plmbar_d1" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "plmbar_d1" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH PlmBar_d1
 .PP
diff --git a/man/man1/plmindex.1 b/man/man3/plmindex.3
similarity index 95%
rename from man/man1/plmindex.1
rename to man/man3/plmindex.3
index 3b254e11d..7f4cc122b 100644
--- a/man/man1/plmindex.1
+++ b/man/man3/plmindex.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "plmindex" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "plmindex" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH PlmIndex
 .PP
diff --git a/man/man1/plmon.1 b/man/man3/plmon.3
similarity index 98%
rename from man/man1/plmon.1
rename to man/man3/plmon.3
index 4e5b088de..dc5831430 100644
--- a/man/man1/plmon.1
+++ b/man/man3/plmon.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "plmon" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "plmon" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH PlmON
 .PP
diff --git a/man/man1/plmon_d1.1 b/man/man3/plmon_d1.3
similarity index 98%
rename from man/man1/plmon_d1.1
rename to man/man3/plmon_d1.3
index 78d927f14..16551ba75 100644
--- a/man/man1/plmon_d1.1
+++ b/man/man3/plmon_d1.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "plmon_d1" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "plmon_d1" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH PlmON_d1
 .PP
diff --git a/man/man1/plmschmidt.1 b/man/man3/plmschmidt.3
similarity index 98%
rename from man/man1/plmschmidt.1
rename to man/man3/plmschmidt.3
index 97d20842e..7932304e8 100644
--- a/man/man1/plmschmidt.1
+++ b/man/man3/plmschmidt.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "plmschmidt" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "plmschmidt" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH PlmSchmidt
 .PP
diff --git a/man/man1/plmschmidt_d1.1 b/man/man3/plmschmidt_d1.3
similarity index 98%
rename from man/man1/plmschmidt_d1.1
rename to man/man3/plmschmidt_d1.3
index ac07a6c9d..8cfc565c5 100644
--- a/man/man1/plmschmidt_d1.1
+++ b/man/man3/plmschmidt_d1.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "plmschmidt_d1" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "plmschmidt_d1" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH PlmSchmidt_d1
 .PP
diff --git a/man/man1/plon.1 b/man/man3/plon.3
similarity index 97%
rename from man/man1/plon.1
rename to man/man3/plon.3
index 972fef2d1..0499eac92 100644
--- a/man/man1/plon.1
+++ b/man/man3/plon.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "plon" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "plon" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH PlON
 .PP
diff --git a/man/man1/plon_d1.1 b/man/man3/plon_d1.3
similarity index 97%
rename from man/man1/plon_d1.1
rename to man/man3/plon_d1.3
index af460d3ee..38ee89921 100644
--- a/man/man1/plon_d1.1
+++ b/man/man3/plon_d1.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "plon_d1" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "plon_d1" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH PlON_d1
 .PP
diff --git a/man/man1/plschmidt.1 b/man/man3/plschmidt.3
similarity index 96%
rename from man/man1/plschmidt.1
rename to man/man3/plschmidt.3
index 7f7b8be3a..5b788c782 100644
--- a/man/man1/plschmidt.1
+++ b/man/man3/plschmidt.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "plschmidt" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "plschmidt" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH PlSchmidt
 .PP
diff --git a/man/man1/plschmidt_d1.1 b/man/man3/plschmidt_d1.3
similarity index 97%
rename from man/man1/plschmidt_d1.1
rename to man/man3/plschmidt_d1.3
index d27ee3e06..7ad2438d2 100644
--- a/man/man1/plschmidt_d1.1
+++ b/man/man3/plschmidt_d1.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "plschmidt_d1" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "plschmidt_d1" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH PlSchmidt_d1
 .PP
diff --git a/man/man1/preglq.1 b/man/man3/preglq.3
similarity index 97%
rename from man/man1/preglq.1
rename to man/man3/preglq.3
index 36145e420..7cb9a4849 100644
--- a/man/man1/preglq.1
+++ b/man/man3/preglq.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "preglq" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "preglq" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH PreGLQ
 .PP
diff --git a/man/man1/randomgaussian.1 b/man/man3/randomgaussian.3
similarity index 96%
rename from man/man1/randomgaussian.1
rename to man/man3/randomgaussian.3
index addd018c4..d4637a34b 100644
--- a/man/man1/randomgaussian.1
+++ b/man/man3/randomgaussian.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "randomgaussian" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "randomgaussian" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH RandomGaussian
 .PP
diff --git a/man/man1/randomn.1 b/man/man3/randomn.3
similarity index 96%
rename from man/man1/randomn.1
rename to man/man3/randomn.3
index e73dd29e3..844f080cf 100644
--- a/man/man1/randomn.1
+++ b/man/man3/randomn.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "randomn" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "randomn" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH RandomN
 .PP
diff --git a/man/man1/shadmitcorr.1 b/man/man3/shadmitcorr.3
similarity index 97%
rename from man/man1/shadmitcorr.1
rename to man/man3/shadmitcorr.3
index e8eb52326..db3867227 100644
--- a/man/man1/shadmitcorr.1
+++ b/man/man3/shadmitcorr.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "shadmitcorr" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "shadmitcorr" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH SHAdmitCorr
 .PP
diff --git a/man/man1/shbias.1 b/man/man3/shbias.3
similarity index 98%
rename from man/man1/shbias.1
rename to man/man3/shbias.3
index 16c761b21..ac730882d 100644
--- a/man/man1/shbias.1
+++ b/man/man3/shbias.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "shbias" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "shbias" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH SHBias
 .PP
diff --git a/man/man1/shbiasadmitcorr.1 b/man/man3/shbiasadmitcorr.3
similarity index 98%
rename from man/man1/shbiasadmitcorr.1
rename to man/man3/shbiasadmitcorr.3
index 2f8291ae7..ab3ef149a 100644
--- a/man/man1/shbiasadmitcorr.1
+++ b/man/man3/shbiasadmitcorr.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "shbiasadmitcorr" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "shbiasadmitcorr" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH SHBiasAdmitCorr
 .PP
diff --git a/man/man1/shbiask.1 b/man/man3/shbiask.3
similarity index 98%
rename from man/man1/shbiask.1
rename to man/man3/shbiask.3
index b41daec64..1f7c57f5c 100644
--- a/man/man1/shbiask.1
+++ b/man/man3/shbiask.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "shbiask" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "shbiask" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH SHBiasK
 .PP
diff --git a/man/man1/shbiaskmask.1 b/man/man3/shbiaskmask.3
similarity index 98%
rename from man/man1/shbiaskmask.1
rename to man/man3/shbiaskmask.3
index bb63c3ff1..ab4fc6e44 100644
--- a/man/man1/shbiaskmask.1
+++ b/man/man3/shbiaskmask.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "shbiaskmask" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "shbiaskmask" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH SHBiasKMask
 .PP
diff --git a/man/man1/shcilmtocindex.1 b/man/man3/shcilmtocindex.3
similarity index 96%
rename from man/man1/shcilmtocindex.1
rename to man/man3/shcilmtocindex.3
index 6a92ffb4e..83781cba7 100644
--- a/man/man1/shcilmtocindex.1
+++ b/man/man3/shcilmtocindex.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "shcilmtocindex" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "shcilmtocindex" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH SHCilmToCindex
 .PP
diff --git a/man/man1/shcilmtovector.1 b/man/man3/shcilmtovector.3
similarity index 96%
rename from man/man1/shcilmtovector.1
rename to man/man3/shcilmtovector.3
index 8d6ec8ac2..6e3b7dcc5 100644
--- a/man/man1/shcilmtovector.1
+++ b/man/man3/shcilmtovector.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "shcilmtovector" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "shcilmtovector" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH SHCilmToVector
 .PP
diff --git a/man/man1/shcindextocilm.1 b/man/man3/shcindextocilm.3
similarity index 96%
rename from man/man1/shcindextocilm.1
rename to man/man3/shcindextocilm.3
index b06374358..0be76ed1a 100644
--- a/man/man1/shcindextocilm.1
+++ b/man/man3/shcindextocilm.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "shcindextocilm" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "shcindextocilm" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH SHCindexToCilm
 .PP
diff --git a/man/man1/shconfidence.1 b/man/man3/shconfidence.3
similarity index 95%
rename from man/man1/shconfidence.1
rename to man/man3/shconfidence.3
index 56d66448d..5346eec50 100644
--- a/man/man1/shconfidence.1
+++ b/man/man3/shconfidence.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "shconfidence" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "shconfidence" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH SHConfidence
 .PP
diff --git a/man/man1/shcrosspowerdensityl.1 b/man/man3/shcrosspowerdensityl.3
similarity index 96%
rename from man/man1/shcrosspowerdensityl.1
rename to man/man3/shcrosspowerdensityl.3
index 41d50dc3d..d07df39ef 100644
--- a/man/man1/shcrosspowerdensityl.1
+++ b/man/man3/shcrosspowerdensityl.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "shcrosspowerdensityl" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "shcrosspowerdensityl" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH SHCrossPowerDensityL
 .PP
diff --git a/man/man1/shcrosspowerdensitylc.1 b/man/man3/shcrosspowerdensitylc.3
similarity index 96%
rename from man/man1/shcrosspowerdensitylc.1
rename to man/man3/shcrosspowerdensitylc.3
index b3446bf04..79fcb9571 100644
--- a/man/man1/shcrosspowerdensitylc.1
+++ b/man/man3/shcrosspowerdensitylc.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "shcrosspowerdensitylc" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "shcrosspowerdensitylc" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH SHCrossPowerDensityLC
 .PP
diff --git a/man/man1/shcrosspowerl.1 b/man/man3/shcrosspowerl.3
similarity index 96%
rename from man/man1/shcrosspowerl.1
rename to man/man3/shcrosspowerl.3
index 00762524a..12ef85806 100644
--- a/man/man1/shcrosspowerl.1
+++ b/man/man3/shcrosspowerl.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "shcrosspowerl" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "shcrosspowerl" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH SHCrossPowerL
 .PP
diff --git a/man/man1/shcrosspowerlc.1 b/man/man3/shcrosspowerlc.3
similarity index 96%
rename from man/man1/shcrosspowerlc.1
rename to man/man3/shcrosspowerlc.3
index 36973fe24..16606ff5f 100644
--- a/man/man1/shcrosspowerlc.1
+++ b/man/man3/shcrosspowerlc.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "shcrosspowerlc" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "shcrosspowerlc" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH SHCrossPowerLC
 .PP
diff --git a/man/man1/shcrosspowerspectrum.1 b/man/man3/shcrosspowerspectrum.3
similarity index 96%
rename from man/man1/shcrosspowerspectrum.1
rename to man/man3/shcrosspowerspectrum.3
index 8bedbc2a4..aeb66d80b 100644
--- a/man/man1/shcrosspowerspectrum.1
+++ b/man/man3/shcrosspowerspectrum.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "shcrosspowerspectrum" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "shcrosspowerspectrum" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH SHCrossPowerSpectrum
 .PP
diff --git a/man/man1/shcrosspowerspectrumc.1 b/man/man3/shcrosspowerspectrumc.3
similarity index 96%
rename from man/man1/shcrosspowerspectrumc.1
rename to man/man3/shcrosspowerspectrumc.3
index b4700f29b..5ee698c32 100644
--- a/man/man1/shcrosspowerspectrumc.1
+++ b/man/man3/shcrosspowerspectrumc.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "shcrosspowerspectrumc" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "shcrosspowerspectrumc" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH SHCrossPowerSpectrumC
 .PP
diff --git a/man/man1/shcrosspowerspectrumdensity.1 b/man/man3/shcrosspowerspectrumdensity.3
similarity index 97%
rename from man/man1/shcrosspowerspectrumdensity.1
rename to man/man3/shcrosspowerspectrumdensity.3
index dc8838960..b96a94683 100644
--- a/man/man1/shcrosspowerspectrumdensity.1
+++ b/man/man3/shcrosspowerspectrumdensity.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "shcrosspowerspectrumdensity" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "shcrosspowerspectrumdensity" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH SHCrossPowerSpectrumDensity
 .PP
diff --git a/man/man1/shcrosspowerspectrumdensityc.1 b/man/man3/shcrosspowerspectrumdensityc.3
similarity index 97%
rename from man/man1/shcrosspowerspectrumdensityc.1
rename to man/man3/shcrosspowerspectrumdensityc.3
index 4c10431a5..40d59f3dc 100644
--- a/man/man1/shcrosspowerspectrumdensityc.1
+++ b/man/man3/shcrosspowerspectrumdensityc.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "shcrosspowerspectrumdensityc" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "shcrosspowerspectrumdensityc" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH SHCrossPowerSpectrumDensityC
 .PP
diff --git a/man/man1/shctor.1 b/man/man3/shctor.3
similarity index 98%
rename from man/man1/shctor.1
rename to man/man3/shctor.3
index 80cb63d67..e8acb088d 100644
--- a/man/man1/shctor.1
+++ b/man/man3/shctor.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "shctor" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "shctor" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH SHctor
 .PP
diff --git a/man/man1/shexpanddh.1 b/man/man3/shexpanddh.3
similarity index 98%
rename from man/man1/shexpanddh.1
rename to man/man3/shexpanddh.3
index bc997fb7d..414523fd6 100644
--- a/man/man1/shexpanddh.1
+++ b/man/man3/shexpanddh.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "shexpanddh" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "shexpanddh" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH SHExpandDH
 .PP
diff --git a/man/man1/shexpanddhc.1 b/man/man3/shexpanddhc.3
similarity index 98%
rename from man/man1/shexpanddhc.1
rename to man/man3/shexpanddhc.3
index 302c3f042..c2f87d1b2 100644
--- a/man/man1/shexpanddhc.1
+++ b/man/man3/shexpanddhc.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "shexpanddhc" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "shexpanddhc" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH SHExpandDHC
 .PP
diff --git a/man/man1/shexpandglq.1 b/man/man3/shexpandglq.3
similarity index 98%
rename from man/man1/shexpandglq.1
rename to man/man3/shexpandglq.3
index 085fb1b11..450d32438 100644
--- a/man/man1/shexpandglq.1
+++ b/man/man3/shexpandglq.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "shexpandglq" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "shexpandglq" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH SHExpandGLQ
 .PP
diff --git a/man/man1/shexpandglqc.1 b/man/man3/shexpandglqc.3
similarity index 98%
rename from man/man1/shexpandglqc.1
rename to man/man3/shexpandglqc.3
index 38044abb2..a8f5c542d 100644
--- a/man/man1/shexpandglqc.1
+++ b/man/man3/shexpandglqc.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "shexpandglqc" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "shexpandglqc" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH SHExpandGLQC
 .PP
diff --git a/man/man1/shexpandlsq.1 b/man/man3/shexpandlsq.3
similarity index 98%
rename from man/man1/shexpandlsq.1
rename to man/man3/shexpandlsq.3
index b78ea5b00..4a15908d0 100644
--- a/man/man1/shexpandlsq.1
+++ b/man/man3/shexpandlsq.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "shexpandlsq" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "shexpandlsq" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH SHExpandLSQ
 .PP
diff --git a/man/man1/shfindlwin.1 b/man/man3/shfindlwin.3
similarity index 96%
rename from man/man1/shfindlwin.1
rename to man/man3/shfindlwin.3
index ede0f9053..8cccc89a4 100644
--- a/man/man1/shfindlwin.1
+++ b/man/man3/shfindlwin.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "shfindlwin" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "shfindlwin" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH SHFindLWin
 .PP
diff --git a/man/man1/shglq.1 b/man/man3/shglq.3
similarity index 98%
rename from man/man1/shglq.1
rename to man/man3/shglq.3
index 8d1cee2eb..c3d4dfd5d 100644
--- a/man/man1/shglq.1
+++ b/man/man3/shglq.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "shglq" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "shglq" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH SHGLQ
 .PP
diff --git a/man/man1/shlocalizedadmitcorr.1 b/man/man3/shlocalizedadmitcorr.3
similarity index 99%
rename from man/man1/shlocalizedadmitcorr.1
rename to man/man3/shlocalizedadmitcorr.3
index 5d99dac9c..f0cf57bed 100644
--- a/man/man1/shlocalizedadmitcorr.1
+++ b/man/man3/shlocalizedadmitcorr.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "shlocalizedadmitcorr" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "shlocalizedadmitcorr" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH SHLocalizedAdmitCorr
 .PP
diff --git a/man/man1/shmagpowerl.1 b/man/man3/shmagpowerl.3
similarity index 96%
rename from man/man1/shmagpowerl.1
rename to man/man3/shmagpowerl.3
index 01d29613c..cad4a7b4b 100644
--- a/man/man1/shmagpowerl.1
+++ b/man/man3/shmagpowerl.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "shmagpowerl" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "shmagpowerl" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH SHMagPowerL
 .PP
diff --git a/man/man1/shmagpowerspectrum.1 b/man/man3/shmagpowerspectrum.3
similarity index 97%
rename from man/man1/shmagpowerspectrum.1
rename to man/man3/shmagpowerspectrum.3
index 8ea147261..3b6bdd03d 100644
--- a/man/man1/shmagpowerspectrum.1
+++ b/man/man3/shmagpowerspectrum.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "shmagpowerspectrum" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "shmagpowerspectrum" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH SHMagPowerSpectrum
 .PP
diff --git a/man/man1/shmtcouplingmatrix.1 b/man/man3/shmtcouplingmatrix.3
similarity index 98%
rename from man/man1/shmtcouplingmatrix.1
rename to man/man3/shmtcouplingmatrix.3
index 67f14b00c..9993a2dbd 100644
--- a/man/man1/shmtcouplingmatrix.1
+++ b/man/man3/shmtcouplingmatrix.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "shmtcouplingmatrix" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "shmtcouplingmatrix" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH SHMTCouplingMatrix
 .PP
diff --git a/man/man1/shmtdebias.1 b/man/man3/shmtdebias.3
similarity index 98%
rename from man/man1/shmtdebias.1
rename to man/man3/shmtdebias.3
index fe933c9cb..cd831260a 100644
--- a/man/man1/shmtdebias.1
+++ b/man/man3/shmtdebias.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "shmtdebias" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "shmtdebias" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH SHMTDebias
 .PP
diff --git a/man/man1/shmtvaropt.1 b/man/man3/shmtvaropt.3
similarity index 98%
rename from man/man1/shmtvaropt.1
rename to man/man3/shmtvaropt.3
index 04a14d66c..20e963f2b 100644
--- a/man/man1/shmtvaropt.1
+++ b/man/man3/shmtvaropt.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "shmtvaropt" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "shmtvaropt" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH SHMTVarOpt
 .PP
diff --git a/man/man1/shmultiply.1 b/man/man3/shmultiply.3
similarity index 98%
rename from man/man1/shmultiply.1
rename to man/man3/shmultiply.3
index c0eba5244..e5486dee7 100644
--- a/man/man1/shmultiply.1
+++ b/man/man3/shmultiply.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "shmultiply" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "shmultiply" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH SHMultiply
 .PP
diff --git a/man/man1/shmultitapercse.1 b/man/man3/shmultitapercse.3
similarity index 99%
rename from man/man1/shmultitapercse.1
rename to man/man3/shmultitapercse.3
index dfbba8429..aa2e743cc 100644
--- a/man/man1/shmultitapercse.1
+++ b/man/man3/shmultitapercse.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "shmultitapercse" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "shmultitapercse" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH SHMultiTaperCSE
 .PP
diff --git a/man/man1/shmultitapermaskcse.1 b/man/man3/shmultitapermaskcse.3
similarity index 98%
rename from man/man1/shmultitapermaskcse.1
rename to man/man3/shmultitapermaskcse.3
index 7f0bda721..e5fe8f510 100644
--- a/man/man1/shmultitapermaskcse.1
+++ b/man/man3/shmultitapermaskcse.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "shmultitapermaskcse" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "shmultitapermaskcse" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH SHMultiTaperMaskCSE
 .PP
diff --git a/man/man1/shmultitapermaskse.1 b/man/man3/shmultitapermaskse.3
similarity index 98%
rename from man/man1/shmultitapermaskse.1
rename to man/man3/shmultitapermaskse.3
index 0f58a21e0..c2ed4aac8 100644
--- a/man/man1/shmultitapermaskse.1
+++ b/man/man3/shmultitapermaskse.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "shmultitapermaskse" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "shmultitapermaskse" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH SHMultiTaperMaskSE
 .PP
diff --git a/man/man1/shmultitaperse.1 b/man/man3/shmultitaperse.3
similarity index 98%
rename from man/man1/shmultitaperse.1
rename to man/man3/shmultitaperse.3
index 3b01baee9..cbc91f314 100644
--- a/man/man1/shmultitaperse.1
+++ b/man/man3/shmultitaperse.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "shmultitaperse" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "shmultitaperse" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH SHMultiTaperSE
 .PP
diff --git a/man/man1/shpowerdensityl.1 b/man/man3/shpowerdensityl.3
similarity index 95%
rename from man/man1/shpowerdensityl.1
rename to man/man3/shpowerdensityl.3
index e21bd6c37..2629b479e 100644
--- a/man/man1/shpowerdensityl.1
+++ b/man/man3/shpowerdensityl.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "shpowerdensityl" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "shpowerdensityl" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH SHPowerDensityL
 .PP
diff --git a/man/man1/shpowerdensitylc.1 b/man/man3/shpowerdensitylc.3
similarity index 95%
rename from man/man1/shpowerdensitylc.1
rename to man/man3/shpowerdensitylc.3
index c8211c6e7..65470ac0e 100644
--- a/man/man1/shpowerdensitylc.1
+++ b/man/man3/shpowerdensitylc.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "shpowerdensitylc" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "shpowerdensitylc" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH SHPowerDensityLC
 .PP
diff --git a/man/man1/shpowerl.1 b/man/man3/shpowerl.3
similarity index 95%
rename from man/man1/shpowerl.1
rename to man/man3/shpowerl.3
index eb6e7ba35..8d973c5f4 100644
--- a/man/man1/shpowerl.1
+++ b/man/man3/shpowerl.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "shpowerl" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "shpowerl" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH SHPowerL
 .PP
diff --git a/man/man1/shpowerlc.1 b/man/man3/shpowerlc.3
similarity index 95%
rename from man/man1/shpowerlc.1
rename to man/man3/shpowerlc.3
index 2c33af1eb..9c258552e 100644
--- a/man/man1/shpowerlc.1
+++ b/man/man3/shpowerlc.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "shpowerlc" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "shpowerlc" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH SHPowerLC
 .PP
diff --git a/man/man1/shpowerspectrum.1 b/man/man3/shpowerspectrum.3
similarity index 96%
rename from man/man1/shpowerspectrum.1
rename to man/man3/shpowerspectrum.3
index cacf290ea..50073ab2c 100644
--- a/man/man1/shpowerspectrum.1
+++ b/man/man3/shpowerspectrum.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "shpowerspectrum" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "shpowerspectrum" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH SHPowerSpectrum
 .PP
diff --git a/man/man1/shpowerspectrumc.1 b/man/man3/shpowerspectrumc.3
similarity index 96%
rename from man/man1/shpowerspectrumc.1
rename to man/man3/shpowerspectrumc.3
index 4a2874d88..1aa5254cb 100644
--- a/man/man1/shpowerspectrumc.1
+++ b/man/man3/shpowerspectrumc.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "shpowerspectrumc" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "shpowerspectrumc" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH SHPowerSpectrumC
 .PP
diff --git a/man/man1/shpowerspectrumdensity.1 b/man/man3/shpowerspectrumdensity.3
similarity index 96%
rename from man/man1/shpowerspectrumdensity.1
rename to man/man3/shpowerspectrumdensity.3
index 7b8b088aa..30371099d 100644
--- a/man/man1/shpowerspectrumdensity.1
+++ b/man/man3/shpowerspectrumdensity.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "shpowerspectrumdensity" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "shpowerspectrumdensity" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH SHPowerSpectrumDensity
 .PP
diff --git a/man/man1/shpowerspectrumdensityc.1 b/man/man3/shpowerspectrumdensityc.3
similarity index 96%
rename from man/man1/shpowerspectrumdensityc.1
rename to man/man3/shpowerspectrumdensityc.3
index 0c522d6f8..1fa18186d 100644
--- a/man/man1/shpowerspectrumdensityc.1
+++ b/man/man3/shpowerspectrumdensityc.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "shpowerspectrumdensityc" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "shpowerspectrumdensityc" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH SHPowerSpectrumDensityC
 .PP
diff --git a/man/man1/shread.1 b/man/man3/shread.3
similarity index 98%
rename from man/man1/shread.1
rename to man/man3/shread.3
index b57aa4355..f156e2e93 100644
--- a/man/man1/shread.1
+++ b/man/man3/shread.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "shread" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "shread" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH SHRead
 .PP
diff --git a/man/man1/shread2.1 b/man/man3/shread2.3
similarity index 98%
rename from man/man1/shread2.1
rename to man/man3/shread2.3
index c27d4f193..a4122f3bf 100644
--- a/man/man1/shread2.1
+++ b/man/man3/shread2.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "shread2" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "shread2" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH SHRead2
 .PP
diff --git a/man/man1/shreadjpl.1 b/man/man3/shreadjpl.3
similarity index 97%
rename from man/man1/shreadjpl.1
rename to man/man3/shreadjpl.3
index 7a52d2b8f..18319a84b 100644
--- a/man/man1/shreadjpl.1
+++ b/man/man3/shreadjpl.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "shreadjpl" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "shreadjpl" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH SHReadJPL
 .PP
diff --git a/man/man1/shreturntapers.1 b/man/man3/shreturntapers.3
similarity index 98%
rename from man/man1/shreturntapers.1
rename to man/man3/shreturntapers.3
index 199d186b8..fc0f780b4 100644
--- a/man/man1/shreturntapers.1
+++ b/man/man3/shreturntapers.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "shreturntapers" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "shreturntapers" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH SHReturnTapers
 .PP
diff --git a/man/man1/shreturntapersm.1 b/man/man3/shreturntapersm.3
similarity index 98%
rename from man/man1/shreturntapersm.1
rename to man/man3/shreturntapersm.3
index 187640023..159bd6b5a 100644
--- a/man/man1/shreturntapersm.1
+++ b/man/man3/shreturntapersm.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "shreturntapersm" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "shreturntapersm" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH SHReturnTapersM
 .PP
diff --git a/man/man1/shreturntapersmap.1 b/man/man3/shreturntapersmap.3
similarity index 98%
rename from man/man1/shreturntapersmap.1
rename to man/man3/shreturntapersmap.3
index 394835da5..26e2eae34 100644
--- a/man/man1/shreturntapersmap.1
+++ b/man/man3/shreturntapersmap.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "shreturntapersmap" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "shreturntapersmap" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH SHReturnTapersMap
 .PP
diff --git a/man/man1/shrotatecoef.1 b/man/man3/shrotatecoef.3
similarity index 98%
rename from man/man1/shrotatecoef.1
rename to man/man3/shrotatecoef.3
index 2c328dc83..323621aad 100644
--- a/man/man1/shrotatecoef.1
+++ b/man/man3/shrotatecoef.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "shrotatecoef" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "shrotatecoef" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH SHRotateCoef
 .PP
diff --git a/man/man1/shrotaterealcoef.1 b/man/man3/shrotaterealcoef.3
similarity index 98%
rename from man/man1/shrotaterealcoef.1
rename to man/man3/shrotaterealcoef.3
index 9a17a8744..95a33755d 100644
--- a/man/man1/shrotaterealcoef.1
+++ b/man/man3/shrotaterealcoef.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "shrotaterealcoef" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "shrotaterealcoef" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH SHRotateRealCoef
 .PP
diff --git a/man/man1/shrotatetapers.1 b/man/man3/shrotatetapers.3
similarity index 98%
rename from man/man1/shrotatetapers.1
rename to man/man3/shrotatetapers.3
index 9252543f4..9ae331d71 100644
--- a/man/man1/shrotatetapers.1
+++ b/man/man3/shrotatetapers.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "shrotatetapers" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "shrotatetapers" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH SHRotateTapers
 .PP
diff --git a/man/man1/shrtoc.1 b/man/man3/shrtoc.3
similarity index 97%
rename from man/man1/shrtoc.1
rename to man/man3/shrtoc.3
index d77fb55f2..987b22074 100644
--- a/man/man1/shrtoc.1
+++ b/man/man3/shrtoc.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "shrtoc" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "shrtoc" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH SHrtoc
 .PP
diff --git a/man/man1/shscouplingmatrix.1 b/man/man3/shscouplingmatrix.3
similarity index 98%
rename from man/man1/shscouplingmatrix.1
rename to man/man3/shscouplingmatrix.3
index 287b65cf9..7fd42501d 100644
--- a/man/man1/shscouplingmatrix.1
+++ b/man/man3/shscouplingmatrix.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "shscouplingmatrix" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "shscouplingmatrix" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH SHSCouplingMatrix
 .PP
diff --git a/man/man1/shscouplingmatrixcap.1 b/man/man3/shscouplingmatrixcap.3
similarity index 98%
rename from man/man1/shscouplingmatrixcap.1
rename to man/man3/shscouplingmatrixcap.3
index 6d69f9feb..8debd36bf 100644
--- a/man/man1/shscouplingmatrixcap.1
+++ b/man/man3/shscouplingmatrixcap.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "shscouplingmatrixcap" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "shscouplingmatrixcap" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH SHSCouplingMatrixCap
 .PP
diff --git a/man/man1/shsjkpg.1 b/man/man3/shsjkpg.3
similarity index 98%
rename from man/man1/shsjkpg.1
rename to man/man3/shsjkpg.3
index bc0e37c24..7fbba53ca 100644
--- a/man/man1/shsjkpg.1
+++ b/man/man3/shsjkpg.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "shsjkpg" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "shsjkpg" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH SHSjkPG
 .PP
diff --git a/man/man1/shslepianvar.1 b/man/man3/shslepianvar.3
similarity index 97%
rename from man/man1/shslepianvar.1
rename to man/man3/shslepianvar.3
index 20b685d74..626b65e37 100644
--- a/man/man1/shslepianvar.1
+++ b/man/man3/shslepianvar.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "shslepianvar" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "shslepianvar" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH SHSlepianVar
 .PP
diff --git a/man/man1/shtools.1 b/man/man3/shtools.3
similarity index 96%
rename from man/man1/shtools.1
rename to man/man3/shtools.3
index c74731a7e..cc48c18d3 100644
--- a/man/man1/shtools.1
+++ b/man/man3/shtools.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "shtools" "1" "2020-09-24" "Fortran 95" "SHTOOLS 4.10"
+.TH "shtools" "3" "2020-09-24" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH SHTOOLS
 .PP
diff --git a/man/man1/shvectortocilm.1 b/man/man3/shvectortocilm.3
similarity index 96%
rename from man/man1/shvectortocilm.1
rename to man/man3/shvectortocilm.3
index 43ef11b5f..9a6926204 100644
--- a/man/man1/shvectortocilm.1
+++ b/man/man3/shvectortocilm.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "shvectortocilm" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "shvectortocilm" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH SHVectorToCilm
 .PP
diff --git a/man/man1/slepiancoeffs.1 b/man/man3/slepiancoeffs.3
similarity index 97%
rename from man/man1/slepiancoeffs.1
rename to man/man3/slepiancoeffs.3
index 440b53658..e82a6687c 100644
--- a/man/man1/slepiancoeffs.1
+++ b/man/man3/slepiancoeffs.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "slepiancoeffs" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "slepiancoeffs" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH SlepianCoeffs
 .PP
diff --git a/man/man1/slepiancoeffstosh.1 b/man/man3/slepiancoeffstosh.3
similarity index 97%
rename from man/man1/slepiancoeffstosh.1
rename to man/man3/slepiancoeffstosh.3
index e499a2878..84c8b0331 100644
--- a/man/man1/slepiancoeffstosh.1
+++ b/man/man3/slepiancoeffstosh.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "slepiancoeffstosh" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "slepiancoeffstosh" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH SlepianCoeffsToSH
 .PP
diff --git a/man/man1/sphericalcapcoef.1 b/man/man3/sphericalcapcoef.3
similarity index 96%
rename from man/man1/sphericalcapcoef.1
rename to man/man3/sphericalcapcoef.3
index b217bb280..5df5f4e5a 100644
--- a/man/man1/sphericalcapcoef.1
+++ b/man/man3/sphericalcapcoef.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "sphericalcapcoef" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "sphericalcapcoef" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH SphericalCapCoef
 .PP
diff --git a/man/man1/wigner3j.1 b/man/man3/wigner3j.3
similarity index 98%
rename from man/man1/wigner3j.1
rename to man/man3/wigner3j.3
index dddce6fc1..f91ce3438 100644
--- a/man/man1/wigner3j.1
+++ b/man/man3/wigner3j.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "wigner3j" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "wigner3j" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH Wigner3j
 .PP
diff --git a/man/man1/yilmindexvector.1 b/man/man3/yilmindexvector.3
similarity index 95%
rename from man/man1/yilmindexvector.1
rename to man/man3/yilmindexvector.3
index 166753a26..70689dca7 100644
--- a/man/man1/yilmindexvector.1
+++ b/man/man3/yilmindexvector.3
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "yilmindexvector" "1" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
+.TH "yilmindexvector" "3" "2021-02-15" "Fortran 95" "SHTOOLS 4.10"
 .hy
 .SH YilmIndexVector
 .PP
diff --git a/pyshtools/datasets/Ganymede.py b/pyshtools/datasets/Ganymede.py
new file mode 100644
index 000000000..3cd11488b
--- /dev/null
+++ b/pyshtools/datasets/Ganymede.py
@@ -0,0 +1,44 @@
+'''
+Datasets related to the satellite Ganymede.
+
+Gravity
+-------
+GANYMEDE2022 :  Gomez Casajus et al. (2022)
+'''
+from pooch import os_cache as _os_cache
+from pooch import retrieve as _retrieve
+from pooch import HTTPDownloader as _HTTPDownloader
+from ..shclasses import SHGravCoeffs as _SHGravCoeffs
+
+
+def GANYMEDE2022(lmax=5):
+    '''
+    GANYMEDE2022 is a JPL spherical harmonic model of the gravitational
+    potential of Ganymede to degree and order 5. This model is based on Galileo
+    and JUNO extended mission data.
+
+    Parameters
+    ----------
+    lmax : int, optional
+        The maximum spherical harmonic degree to return.
+
+    Reference
+    ---------
+    Gomez Casajus, L., Ermakov, A. I., Zannoni, M., Keane, J. T., Stevenson,
+        D., Buccino, D. R., Durante, D., Parisi, M., Park, R. S., Tortora,
+        P., Bolton, S. J. (2022). Gravity Field of Ganymede After the Juno
+        Extended Mission. Geophysical Research Letters, 49(24), e2022GL099475,
+        doi:10.1029/2022GL099475.
+    '''
+    fname = _retrieve(
+        url="https://zenodo.org/record/7665171/files/Ganymede2022.sh.gz",  # noqa: E501
+        known_hash="sha256:593b084cf91673a9093fdfdf657016d52246c6b1a9bf297e42cf543f88fb3b97",  # noqa: E501
+        downloader=_HTTPDownloader(progressbar=True),
+        path=_os_cache('pyshtools'),
+    )
+    return _SHGravCoeffs.from_file(fname, lmax=lmax, header_units='m',
+                                   r0_index=0, gm_index=1, errors=True,
+                                   name='GANYMEDE2022', encoding='utf-8')
+
+
+__all__ = ['GANYMEDE2022']
diff --git a/pyshtools/datasets/__init__.py b/pyshtools/datasets/__init__.py
index 2259638d3..7406c3f55 100644
--- a/pyshtools/datasets/__init__.py
+++ b/pyshtools/datasets/__init__.py
@@ -23,6 +23,8 @@
 from . import Mars
 from . import Vesta
 from . import Ceres
+from . import Ganymede
 
 
-__all__ = ['Mercury', 'Venus', 'Earth', 'Moon', 'Mars', 'Vesta', 'Ceres']
+__all__ = ['Mercury', 'Venus', 'Earth', 'Moon', 'Mars', 'Vesta', 'Ceres',
+           'Ganymede']
diff --git a/pyshtools/shclasses/shcoeffs.py b/pyshtools/shclasses/shcoeffs.py
index 7a1edb502..0d9ad6a71 100644
--- a/pyshtools/shclasses/shcoeffs.py
+++ b/pyshtools/shclasses/shcoeffs.py
@@ -60,7 +60,9 @@ class SHCoeffs(object):
 
     lmax          : The maximum spherical harmonic degree of the coefficients.
     coeffs        : The raw coefficients with the specified normalization and
-                    csphase conventions.
+                    csphase conventions. This is a three-dimensional array
+                    formatted as coeffs[i, degree, order], where i=0
+                    corresponds to positive orders and i=1 to negative orders.
     errors        : The uncertainties of the spherical harmonic coefficients.
     error_kind    : An arbitrary string describing the kind of errors, such as
                     'unknown', 'unspecified', 'calibrated', 'formal' or None.
@@ -162,7 +164,9 @@ def from_array(self, coeffs, errors=None, error_kind=None,
         Parameters
         ----------
         array : ndarray, shape (2, lmaxin+1, lmaxin+1).
-            The input spherical harmonic coefficients.
+            The input spherical harmonic coefficients. This is a three-
+            dimensional array formatted as coeffs[i, degree, order], where i=0
+            corresponds to positive orders and i=1 to negative orders.
         errors : ndarray, optional, default = None
             The uncertainties of the spherical harmonic coefficients.
         error_kind : str, optional, default = None
@@ -959,7 +963,7 @@ def set_coeffs(self, values, ls, ms):
         ls = _np.array(ls)
         ms = _np.array(ms)
 
-        mneg_mask = (ms < 0).astype(_np.int)
+        mneg_mask = (ms < 0).astype(_np.int_)
         self.coeffs[mneg_mask, ls, _np.abs(ms)] = values
 
     # ---- IO Routines
@@ -1145,7 +1149,10 @@ def to_array(self, normalization=None, csphase=None, lmax=None,
         Returns
         -------
         coeffs : ndarry, shape (2, lmax+1, lmax+1)
-            numpy ndarray of the spherical harmonic coefficients.
+            numpy ndarray of the spherical harmonic coefficients. This is a
+            three-dimensional array formatted as coeffs[i, degree, order],
+            where i=0 corresponds to positive orders and i=1 to negative
+            orders.
         errors : ndarry, shape (2, lmax+1, lmax+1)
             numpy ndarray of the errors of the spherical harmonic
             coefficients if they are not None and errors is True.
diff --git a/pyshtools/shclasses/shgravcoeffs.py b/pyshtools/shclasses/shgravcoeffs.py
index 72d07e082..593b57310 100644
--- a/pyshtools/shclasses/shgravcoeffs.py
+++ b/pyshtools/shclasses/shgravcoeffs.py
@@ -75,7 +75,9 @@ class SHGravCoeffs(object):
 
     lmax          : The maximum spherical harmonic degree of the coefficients.
     coeffs        : The raw coefficients with the specified normalization and
-                    csphase conventions.
+                    csphase conventions. This is a three-dimensional array
+                    formatted as coeffs[i, degree, order], where i=0
+                    corresponds to positive orders and i=1 to negative orders.
     errors        : The uncertainties of the spherical harmonic coefficients.
     error_kind    : An arbitrary string describing the kind of errors, such as
                     'unknown', 'unspecified', 'calibrated', 'formal' or None.
@@ -188,7 +190,9 @@ def from_array(self, coeffs, gm, r0, omega=None, errors=None,
         Parameters
         ----------
         array : ndarray, shape (2, lmaxin+1, lmaxin+1).
-            The input spherical harmonic coefficients.
+            The input spherical harmonic coefficients. This is a three-
+            dimensional array formatted as coeffs[i, degree, order], where i=0
+            corresponds to positive orders and i=1 to negative orders.
         gm : float
             The gravitational constant times the mass that is associated with
             the gravitational potential coefficients.
@@ -1281,7 +1285,7 @@ def set_coeffs(self, values, ls, ms):
         ls = _np.array(ls)
         ms = _np.array(ms)
 
-        mneg_mask = (ms < 0).astype(_np.int)
+        mneg_mask = (ms < 0).astype(_np.int_)
         self.coeffs[mneg_mask, ls, _np.abs(ms)] = values
 
     # ---- IO routines ----
@@ -1514,7 +1518,10 @@ def to_array(self, normalization=None, csphase=None, lmax=None,
         Returns
         -------
         coeffs : ndarry, shape (2, lmax+1, lmax+1)
-            numpy ndarray of the spherical harmonic coefficients.
+            numpy ndarray of the spherical harmonic coefficients. This is a
+            three-dimensional array formatted as coeffs[i, degree, order],
+            where i=0 corresponds to positive orders and i=1 to negative
+            orders.
         errors : ndarry, shape (2, lmax+1, lmax+1)
             numpy ndarray of the errors of the spherical harmonic
             coefficients if they are not None.
diff --git a/pyshtools/shclasses/shmagcoeffs.py b/pyshtools/shclasses/shmagcoeffs.py
index de7bd2fd1..105fd726e 100644
--- a/pyshtools/shclasses/shmagcoeffs.py
+++ b/pyshtools/shclasses/shmagcoeffs.py
@@ -66,7 +66,9 @@ class SHMagCoeffs(object):
 
     lmax          : The maximum spherical harmonic degree of the coefficients.
     coeffs        : The raw coefficients with the specified normalization and
-                    csphase conventions.
+                    csphase conventions. This is a three-dimensional array
+                    formatted as coeffs[i, degree, order], where i=0
+                    corresponds to positive orders and i=1 to negative orders.
     errors        : The uncertainties of the spherical harmonic coefficients.
     error_kind    : An arbitrary string describing the kind of errors, such as
                     'unknown', 'unspecified', 'calibrated', 'formal' or None.
@@ -158,7 +160,9 @@ def from_array(self, coeffs, r0, errors=None, error_kind=None,
         Parameters
         ----------
         array : ndarray, shape (2, lmaxin+1, lmaxin+1).
-            The input spherical harmonic coefficients.
+            The input spherical harmonic coefficients. This is a three-
+            dimensional array formatted as coeffs[i, degree, order], where i=0
+            corresponds to positive orders and i=1 to negative orders.
         r0 : float
             The reference radius of the spherical harmonic coefficients.
         errors : ndarray, optional, default = None
@@ -960,7 +964,7 @@ def set_coeffs(self, values, ls, ms):
         ls = _np.array(ls)
         ms = _np.array(ms)
 
-        mneg_mask = (ms < 0).astype(_np.int)
+        mneg_mask = (ms < 0).astype(_np.int_)
         self.coeffs[mneg_mask, ls, _np.abs(ms)] = values
 
     # ---- IO routines ----
@@ -1155,7 +1159,10 @@ def to_array(self, normalization=None, csphase=None, lmax=None,
         Returns
         -------
         coeffs : ndarry, shape (2, lmax+1, lmax+1)
-            numpy ndarray of the spherical harmonic coefficients.
+            numpy ndarray of the spherical harmonic coefficients. This is a
+            three-dimensional array formatted as coeffs[i, degree, order],
+            where i=0 corresponds to positive orders and i=1 to negative
+            orders.
         errors : ndarry, shape (2, lmax+1, lmax+1)
             numpy ndarray of the errors of the spherical harmonic coefficients
             if they are not None and errors is True.
diff --git a/pyshtools/shclasses/shwindow.py b/pyshtools/shclasses/shwindow.py
index f63de56bb..9b2ddee77 100644
--- a/pyshtools/shclasses/shwindow.py
+++ b/pyshtools/shclasses/shwindow.py
@@ -373,14 +373,15 @@ class instance.
         return SHCoeffs.from_array(coeffs, normalization=normalization.lower(),
                                    csphase=csphase, copy=False)
 
-    def to_shgrid(self, itaper, grid='DH2', zeros=None, extend=True):
+    def to_shgrid(self, itaper, grid='DH2', lmax=None, zeros=None,
+                  extend=True):
         """
         Evaluate the coefficients of taper i on a spherical grid and return
         a SHGrid class instance.
 
         Usage
         -----
-        f = x.to_shgrid(itaper, [grid, zeros, extend])
+        f = x.to_shgrid(itaper, [grid, lmax, zeros, extend])
 
         Returns
         -------
@@ -394,6 +395,9 @@ def to_shgrid(self, itaper, grid='DH2', zeros=None, extend=True):
             'DH' or 'DH1' for an equisampled lat/lon grid with nlat=nlon, 'DH2'
             for an equidistant lat/lon grid with nlon=2*nlat, or 'GLQ' for a
             Gauss-Legendre quadrature grid.
+        lmax : int, optional, default = x.lwin
+            The maximum spherical harmonic degree, which determines the grid
+            spacing of the output grid.
         zeros : ndarray, optional, default = None
             The cos(colatitude) nodes used in the Gauss-Legendre Quadrature
             grids.
@@ -407,23 +411,28 @@ def to_shgrid(self, itaper, grid='DH2', zeros=None, extend=True):
         the properties of the output grids, see the documentation for
         SHExpandDH and SHExpandGLQ.
         """
+        if lmax is None:
+            lmax = self.lwin
         if type(grid) != str:
             raise ValueError('grid must be a string. Input type is {:s}.'
                              .format(str(type(grid))))
 
         if grid.upper() in ('DH', 'DH1'):
             gridout = _shtools.MakeGridDH(self.to_array(itaper), sampling=1,
-                                          norm=1, csphase=1, extend=extend)
+                                          lmax=lmax, norm=1, csphase=1,
+                                          extend=extend)
             return SHGrid.from_array(gridout, grid='DH', copy=False)
         elif grid.upper() == 'DH2':
             gridout = _shtools.MakeGridDH(self.to_array(itaper), sampling=2,
-                                          norm=1, csphase=1, extend=extend)
+                                          lmax=lmax, norm=1, csphase=1,
+                                          extend=extend)
             return SHGrid.from_array(gridout, grid='DH', copy=False)
         elif grid.upper() == 'GLQ':
             if zeros is None:
-                zeros, weights = _shtools.SHGLQ(self.lwin)
+                zeros, weights = _shtools.SHGLQ(self.lmax)
             gridout = _shtools.MakeGridGLQ(self.to_array(itaper), zeros,
-                                           norm=1, csphase=1, extend=extend)
+                                           lmax=lmax, norm=1, csphase=1,
+                                           extend=extend)
             return SHGrid.from_array(gridout, grid='GLQ', copy=False)
         else:
             raise ValueError(
diff --git a/requirements-dev.txt b/requirements-dev.txt
index 5fdbd1c11..422344160 100644
--- a/requirements-dev.txt
+++ b/requirements-dev.txt
@@ -1,7 +1,6 @@
 ipython
 palettable>=3.3
 jupyter
-pypandoc
 cython
 pyshp
 six
diff --git a/setup.py b/setup.py
index 44e5a628b..d408e40be 100644
--- a/setup.py
+++ b/setup.py
@@ -16,7 +16,11 @@
     raise SystemError(error)
 
 import os  # noqa: E402
+from pathlib import Path  # noqa: E402
+from subprocess import check_call  # noqa: E402
+import pkg_resources  # noqa: E402
 import sysconfig  # noqa: E402
+
 import setuptools  # noqa: E402
 import numpy  # noqa: E402
 import versioneer  # noqa: E402
@@ -29,22 +33,6 @@
 from numpy.distutils.fcompiler import get_default_fcompiler  # noqa: E402
 from numpy.distutils.misc_util import Configuration  # noqa: E402
 from numpy.distutils.system_info import get_info, dict_append  # noqa: E402
-from subprocess import check_call  # noqa: E402
-
-
-# Convert markdown README.md to restructured text (.rst) for PyPi, and
-# remove the first 5 lines that contain a reference to the shtools logo.
-# pandoc can be installed either by conda or pip:
-#     conda install -c conda-forge pypandoc
-#     pip install pypandoc
-try:
-    import pypandoc
-    rst = pypandoc.convert_file('README.md', 'rst')
-    long_description = rst.split('\n', 5)[5]
-except(IOError, ImportError):
-    print('*** pypandoc is not installed. PYPI long_description will not be '
-          'formatted correctly. ***')
-    long_description = open('README.md').read()
 
 
 CLASSIFIERS = [
@@ -150,7 +138,7 @@ def run(self):
 
 def distutils_dir_name(dname):
     """Returns the name of a distutils build directory"""
-    parse_version = setuptools.version.pkg_resources.packaging.version.parse
+    parse_version = pkg_resources.packaging.version.parse
     if parse_version(setuptools.__version__) < parse_version('62.1.0'):
         f = "{dirname}.{platform}-{version[0]}.{version[1]}"
         return f.format(dirname=dname,
@@ -231,11 +219,12 @@ def configuration(parent_package='', top_path=None):
     name='pyshtools',
     version=VERSION,
     description='SHTOOLS - Spherical Harmonic Tools',
-    long_description=long_description,
+    long_description=Path('README.md').read_text(encoding='utf-8'),
+    long_description_content_type='text/markdown',
     url='https://shtools.github.io/SHTOOLS/',
     download_url='https://github.com/SHTOOLS/SHTOOLS/zipball/master',
     author='The SHTOOLS developers',
-    author_email="mark.a.wieczorek@gmail.com",
+    author_email="mark.wieczorek@ipgp.fr",
     license='BSD-3-Clause',
     keywords=KEYWORDS,
     python_requires=PYTHON_REQUIRES,
diff --git a/src/Makefile b/src/Makefile
index f187c0580..bf9d3ad33 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -79,10 +79,10 @@ $(PROG): $(OBJS)
 	@echo "--> Compilation of source files successful"
 	@echo
 	@rm -f $(PROG)
-	$(LIBTOOL) $(LIBTOOLFLAGS) -o $(PROG) $(OBJS)
+#	$(LIBTOOL) $(LIBTOOLFLAGS) -o $(PROG) $(OBJS)
 #	If you prefer to use libtool, uncomment the above line, and comment the two lines below (AR and RLIB)
-#	$(AR) $(ARFLAGS) $(PROG) $(OBJS)
-#	$(RLIB) $(RLIBFLAGS) $(PROG)
+	$(AR) $(ARFLAGS) $(PROG) $(OBJS)
+	$(RLIB) $(RLIBFLAGS) $(PROG)
 	@echo
 	@echo "--> Creation of static library successful"
 #	@rm -f $(OBJS)
diff --git a/src/SHLocalizedAdmitCorr.f95 b/src/SHLocalizedAdmitCorr.f95
index dd6e1a314..9cd81f018 100644
--- a/src/SHLocalizedAdmitCorr.f95
+++ b/src/SHLocalizedAdmitCorr.f95
@@ -202,7 +202,7 @@ subroutine SHLocalizedAdmitCorr(tapers, taper_order, lwin, lat, lon, gilm, &
     else if (size(tilm(:,1,1)) < 2 .or. size(tilm(1,:,1)) < lmax+1 .or. &
              size(tilm(1,1,:)) < lmax+1) then
         print*, "Error --- SHLocalizedAdmitCorr"
-        print*, "TILM must be dimensioned as (2, LMAX+1, LMAX+1) " // & 
+        print*, "TILM must be dimensioned as (2, LMAX+1, LMAX+1) " // &
                 "where LMAX is ", lmax
         print*, "Input array is dimensioned ", size(tilm(:,1,1)), &
                 size(tilm(1,:,1)), size(tilm(1,1,:))
@@ -329,16 +329,16 @@ subroutine SHLocalizedAdmitCorr(tapers, taper_order, lwin, lat, lon, gilm, &
     x(1) = 0.0_dp
     x(2) = -(90.0_dp - lat) * pi / 180.0_dp
     x(3) = -lon * pi / 180.0_dp
-        
+
     if (first == 1) then
         lwin_last = lwin
         lmaxwin_last = lmaxwin
         first = 0
- 
+
         allocate (zero(lmaxwin+1), stat = astat(1))
         allocate (w(lmaxwin+1), stat = astat(2))
         allocate (dj(lwin+1,lwin+1,lwin+1), stat = astat(3))
-        
+
         if (sum(astat(1:3)) /= 0) then
             print*, "Error --- SHLocalizedAdmitCorr"
             print*, "Problem allocating arrays ZERO, W and DJ", &
@@ -403,7 +403,7 @@ subroutine SHLocalizedAdmitCorr(tapers, taper_order, lwin, lat, lon, gilm, &
         deallocate (w)
         allocate (zero(lmaxwin+1), stat = astat(1))
         allocate (w(lmaxwin+1), stat = astat(2))
-        
+
         if (sum(astat(1:2)) /= 0) then
             print*, "Error --- SHLocalizedAdmitCorr"
             print*, "Problem allocating arrays ZERO and W", astat(1), astat(2)
@@ -527,7 +527,7 @@ subroutine SHLocalizedAdmitCorr(tapers, taper_order, lwin, lat, lon, gilm, &
                                           sgt(:,i))
                 call SHPowerSpectrum(shloc_g, lmax-lwin, sgg(:,i))
                 call SHPowerSpectrum(shloc_t, lmax-lwin, stt(:,i))
-        end if
+            end if
 
             if (present(taper_wt)) then
                 factor = sum(taper_wt(1:K))**2 - sum(taper_wt(1:K)**2)
@@ -720,7 +720,7 @@ subroutine SHLocalizedAdmitCorr(tapers, taper_order, lwin, lat, lon, gilm, &
         if (present(admit_error) .or. present(corr_error)) then
             do l = 0, lmax-lwin, 1
                 if (present(admit_error)) then
-                    if (K > 1) then 
+                    if (K > 1) then
                         admit_error(l+1) = sum( ( admit_k(l+1,1:K) &
                                            - admit(l+1) )**2 ) / dble(K-1) &
                                            / dble(K) ! standard error!
diff --git a/src/fdoc/Makefile b/src/fdoc/Makefile
index 0e1f22d3a..b4eb2fb72 100644
--- a/src/fdoc/Makefile
+++ b/src/fdoc/Makefile
@@ -18,7 +18,7 @@ SHELL=/bin/sh
 PREFIX=/usr/local
 
 PANDOC = pandoc
-MANDIR = ../../man/man1
+MANDIR = ../../man/man3
 PYTHON = python3
 
 MDFILES = shtools.md planetsconstants.md plmbar.md plmbar_d1.md plbar.md \
@@ -53,35 +53,35 @@ MDFILES = shtools.md planetsconstants.md plmbar.md plmbar_d1.md plbar.md \
 	shscouplingmatrixcap.md makegravgridpoint.md makemaggridpoint.md \
 	makegradientdh.md
 
-MANFILES = $(addprefix $(MANDIR)/, shtools.1 planetsconstants.1 plmbar.1 \
-	plmbar_d1.1 plbar.1 plbar_d1.1 plon.1 plmon.1 plmon_d1.1 plon_d1.1 \
-	plmschmidt.1 plschmidt.1 plmschmidt_d1.1 plschmidt_d1.1 plegendrea.1 \
-	plegendrea_d1.1 plegendre.1 plegendre_d1.1 plmindex.1 shexpanddh.1 \
-	makegriddh.1 shexpanddhc.1 makegriddhc.1 glqgridcoord.1 shexpandglq.1 \
-	makegridglq.1 shexpandglqc.1 makegridglqc.1 shexpandlsq.1 makegrid2d.1 \
-	makegridpoint.1 makegridpointc.1 shmultiply.1 shread.1 shread2.1 \
-	shreadjpl.1 shcilmtocindex.1 shcindextocilm.1 shcilmtovector.1 \
-	shvectortocilm.1 yilmindexvector.1 shrtoc.1 shctor.1 shpowerl.1 \
-	shpowerdensityl.1 shcrosspowerl.1 shcrosspowerdensityl.1 \
-	shpowerspectrum.1 shpowerspectrumdensity.1 shcrosspowerspectrum.1 \
-	shcrosspowerspectrumdensity.1 shadmitcorr.1 shconfidence.1 shpowerlc.1 \
-	shpowerdensitylc.1 shcrosspowerlc.1 shcrosspowerdensitylc.1 \
-	shpowerspectrumc.1 shpowerspectrumdensityc.1 shcrosspowerspectrumc.1 \
-	shcrosspowerspectrumdensityc.1 shmultitaperse.1 shmultitapercse.1 \
-	shlocalizedadmitcorr.1 shreturntapers.1 shreturntapersm.1 computedm.1 \
-	computedg82.1 shfindlwin.1 shbiask.1 shbiasadmitcorr.1 shmtdebias.1 \
-	shmtvaropt.1 shsjkpg.1 shreturntapersmap.1 computedmap.1 curve2mask.1 \
-	shbias.1 sphericalcapcoef.1 djpi2.1 shrotatecoef.1 shrotaterealcoef.1 \
-	makecirclecoord.1 makeellipsecoord.1 randomn.1 randomgaussian.1 preglq.1 \
-	eigvalvecsym.1 eigvalvecsymtri.1 eigvalsym.1 wigner3j.1 makegravgriddh.1 \
-	makegravgradgriddh.1 makegeoidgrid.1 cilmplus.1 cilmminus.1 \
-	cilmplusrhoh.1 cilmminusrhoh.1 batohilm.1 batohilmrhoh.1 \
-	downcontfilterma.1 downcontfiltermc.1 normalgravity.1 makemaggriddh.1 \
-	shmagpowerspectrum.1 shmagpowerl.1 shmtcouplingmatrix.1 \
-	shmultitapermaskcse.1 shmultitapermaskse.1 shbiaskmask.1 dhaj.1 shglq.1 \
-	makemaggradgriddh.1 shrotatetapers.1 slepiancoeffs.1 slepiancoeffstosh.1 \
-	shscouplingmatrix.1 shslepianvar.1 shscouplingmatrixcap.1 \
-	makegravgridpoint.1 makemaggridpoint.1 makegradientdh.1)
+MANFILES = $(addprefix $(MANDIR)/, shtools.3 planetsconstants.3 plmbar.3 \
+	plmbar_d1.3 plbar.3 plbar_d1.3 plon.3 plmon.3 plmon_d1.3 plon_d1.3 \
+	plmschmidt.3 plschmidt.3 plmschmidt_d1.3 plschmidt_d1.3 plegendrea.3 \
+	plegendrea_d1.3 plegendre.3 plegendre_d1.3 plmindex.3 shexpanddh.3 \
+	makegriddh.3 shexpanddhc.3 makegriddhc.3 glqgridcoord.3 shexpandglq.3 \
+	makegridglq.3 shexpandglqc.3 makegridglqc.3 shexpandlsq.3 makegrid2d.3 \
+	makegridpoint.3 makegridpointc.3 shmultiply.3 shread.3 shread2.3 \
+	shreadjpl.3 shcilmtocindex.3 shcindextocilm.3 shcilmtovector.3 \
+	shvectortocilm.3 yilmindexvector.3 shrtoc.3 shctor.3 shpowerl.3 \
+	shpowerdensityl.3 shcrosspowerl.3 shcrosspowerdensityl.3 \
+	shpowerspectrum.3 shpowerspectrumdensity.3 shcrosspowerspectrum.3 \
+	shcrosspowerspectrumdensity.3 shadmitcorr.3 shconfidence.3 shpowerlc.3 \
+	shpowerdensitylc.3 shcrosspowerlc.3 shcrosspowerdensitylc.3 \
+	shpowerspectrumc.3 shpowerspectrumdensityc.3 shcrosspowerspectrumc.3 \
+	shcrosspowerspectrumdensityc.3 shmultitaperse.3 shmultitapercse.3 \
+	shlocalizedadmitcorr.3 shreturntapers.3 shreturntapersm.3 computedm.3 \
+	computedg82.3 shfindlwin.3 shbiask.3 shbiasadmitcorr.3 shmtdebias.3 \
+	shmtvaropt.3 shsjkpg.3 shreturntapersmap.3 computedmap.3 curve2mask.3 \
+	shbias.3 sphericalcapcoef.3 djpi2.3 shrotatecoef.3 shrotaterealcoef.3 \
+	makecirclecoord.3 makeellipsecoord.3 randomn.3 randomgaussian.3 preglq.3 \
+	eigvalvecsym.3 eigvalvecsymtri.3 eigvalsym.3 wigner3j.3 makegravgriddh.3 \
+	makegravgradgriddh.3 makegeoidgrid.3 cilmplus.3 cilmminus.3 \
+	cilmplusrhoh.3 cilmminusrhoh.3 batohilm.3 batohilmrhoh.3 \
+	downcontfilterma.3 downcontfiltermc.3 normalgravity.3 makemaggriddh.3 \
+	shmagpowerspectrum.3 shmagpowerl.3 shmtcouplingmatrix.3 \
+	shmultitapermaskcse.3 shmultitapermaskse.3 shbiaskmask.3 dhaj.3 shglq.3 \
+	makemaggradgriddh.3 shrotatetapers.3 slepiancoeffs.3 slepiancoeffstosh.3 \
+	shscouplingmatrix.3 shslepianvar.3 shscouplingmatrixcap.3 \
+	makegravgridpoint.3 makemaggridpoint.3 makegradientdh.3)
 
 
 all: install-man
@@ -98,12 +98,12 @@ clean:
 	-rm -f $(MANFILES)
 
 uninstall:
-	-cd $(PREFIX)/share/man/man1/ ; rm $(MANFILES)
+	-cd $(PREFIX)/share/man/man3/ ; rm $(MANFILES)
 
 
-.SUFFIXES: $(SUFFIXES) .md .1
+.SUFFIXES: $(SUFFIXES) .md .3
 
-$(MANDIR)/%.1 : %.md
+$(MANDIR)/%.3 : %.md
 	printf "%% $(basename $<)(1) Fortran 95 | SHTOOLS $(VERSION)\n%%\n%% %s" > temp.md
 	stat -t "%F" -f "%Sm" $< >> temp.md
 	cat $< >> temp.md
diff --git a/src/pydoc/pyshlocalizedadmitcorr.md b/src/pydoc/pyshlocalizedadmitcorr.md
index da52e6c22..56147a3f6 100644
--- a/src/pydoc/pyshlocalizedadmitcorr.md
+++ b/src/pydoc/pyshlocalizedadmitcorr.md
@@ -50,7 +50,7 @@ lmax : optional, integer, default = min(lmaxgin, lmaxtin)
 :   The maximum spherical harmonic degree of the input functions corresponding to gilm and tilm.
 
 taper_wt : optional, float, dimension (k), default = -1 (not used)
-:   The weights to be applied to the spectral estimates when calculating the admittance, correlation, and their associated errors. This must sum to unity. The default value specifies that taper weights will not be used.
+:   The weights to be applied to the spectral estimates when calculating the admittance, correlation, and their associated errors. This must sum to unity, and is only implemented for the case of mtdef=1. The default value specifies that taper weights will not be used.
 
 mtdef : optional, integer, default = 1
 :   1 (default): Calculate the multitaper spectral estimates Sgt, Sgg and Stt first, and then use these to calculate the admittance and correlation functions. 2: Calculate admittance and correlation spectra using each individual taper, and then average these to obtain the multitaper admittance and correlation functions.
@@ -64,7 +64,7 @@ SHLocalizedAdmitCorr will calculate the localized admittance and degree correlat
 
 The admittance is defined as Sgt/Stt, where Sgt is the localized cross-power spectrum of two functions G and T expressed in spherical harmonics. The localized degree-correlation spectrum is defined as Sgt/sqrt(Sgg Stt), which can possess values between -1 and 1. Two methods are available for calculating the multitaper admittance and correlation functions. When mtdef is 1 (default), the multitaper estimates and errors of Sgt, Stt, and Sgg are calculated by calls to SHMultiTaperSE and SHMultiTaperCSE, and these results are then used to calculate the final admittance and correlation functions. When mtdef is 2, the admitance and correlation are calculated invidivually for each individual taper, and these results are then averaged.
 
-If the optional parameter k1linsig is specified, and only a single taper is being used, the uncertainty in the admittance function will be calculated by assuming the two sets of coefficients are related by a linear degree-dependent transfer function and that the lack of correlation is a result of uncorrelated noise. 
+If the optional parameter k1linsig is specified, and only a single taper is being used, the uncertainty in the admittance function will be calculated by assuming the two sets of coefficients are related by a linear degree-dependent transfer function and that the lack of correlation is a result of uncorrelated noise.
 
 When mtdef is 1, by default, the multitaper spectral estimates are calculated as an unweighted average of the individual tapered estimates. However, if the optional argument taper_wt is specified, a weighted average will be employed using the weights in this array. Minimum variance optimal weights can be obtained from the routines SHMTVarOpt if the form of the underlying global power spectrum is known. Taper weights can not be used when mtdef is 2
 
@@ -74,9 +74,9 @@ This routine assumes that the input functions and tapers are expressed using geo
 
 Wieczorek, M. A. and F. J. Simons, Minimum-variance multitaper spectral estimation on the sphere, J. Fourier Anal. Appl., 13, doi:10.1007/s00041-006-6904-1, 665-692, 2007.
 
-Simons, F. J., F. A. Dahlen and M. A. Wieczorek, Spatiospectral concentration on the sphere, SIAM Review, 48, 504-536, doi:10.1137/S0036144504445765, 2006. 
+Simons, F. J., F. A. Dahlen and M. A. Wieczorek, Spatiospectral concentration on the sphere, SIAM Review, 48, 504-536, doi:10.1137/S0036144504445765, 2006.
 
-Wieczorek, M. A. and F. J. Simons, Localized spectral analysis on the sphere, 
+Wieczorek, M. A. and F. J. Simons, Localized spectral analysis on the sphere,
 Geophys. J. Int., 162, 655-675, 2005.
 
 Simons, M., S. C. Solomon and B. H. Hager, Localization of gravity and topography: constrains on the tectonics and mantle dynamics of Venus, Geophys. J. Int., 131, 24-44, 1997.
diff --git a/src/pydoc/pyshmtvaropt.md b/src/pydoc/pyshmtvaropt.md
index fea74e29b..86318bfba 100644
--- a/src/pydoc/pyshmtvaropt.md
+++ b/src/pydoc/pyshmtvaropt.md
@@ -1,6 +1,6 @@
 # SHMTVarOpt()
 
-Calculate the theoretical minimum variance of a localized multitaper spectral estimate and the corresponding optimal weights to apply to each localized spectrum.
+Calculate the theoretical minimum variance of a localized multitaper spectral estimate and the corresponding optimal weights to apply to each localized spectrum. This routine only works using the tapers of the spherical cap concentration problem.
 
 # Usage
 


Test patch:
diff --git a/.github/workflows/ci_test.yml b/.github/workflows/ci_test.yml
index 442779003..aca86976a 100644
--- a/.github/workflows/ci_test.yml
+++ b/.github/workflows/ci_test.yml
@@ -12,16 +12,16 @@ jobs:
       fail-fast: false
       matrix:
         os: [ubuntu-latest, macos-latest]
-        python-version: ['3.8', '3.10']
+        python-version: ['3.8', '3.11']
 
     steps:
     - name: Cancel Previous Runs
-      uses: styfle/cancel-workflow-action@0.9.1
+      uses: styfle/cancel-workflow-action@0.11.0
       with:
         access_token: ${{ github.token }}
 
     - name: Checkout
-      uses: actions/checkout@v2
+      uses: actions/checkout@v3
 
     - name: Setup Miniconda
       uses: conda-incubator/setup-miniconda@v2