Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Combine ip and ip2 libraries #54

Merged
merged 41 commits into from
Jul 21, 2021
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
aa406bc
Combine ip and ip2 libraries
kgerheiser Jul 2, 2021
07fb03d
Save coeffecients separately for scalar and vector interp routines
kgerheiser Jul 2, 2021
5db0688
Update README.md
kgerheiser Jul 6, 2021
3ec00a2
Update README.md
kgerheiser Jul 6, 2021
96e0007
Update VERSION 4.0.0
kgerheiser Jul 6, 2021
5e0afec
Delete Release_Notes.ip2lib.v1.0.0.txt
kgerheiser Jul 6, 2021
524c904
Remove list_of_files.cmake and specify src in main CMakeLists
kgerheiser Jul 7, 2021
d511471
Update workflows
kgerheiser Jul 7, 2021
c69cb6c
Merge branch 'feature/combined-ip' of github.com:kgerheiser/NCEPLIBS-…
kgerheiser Jul 7, 2021
087068c
Add CMAKE_Fortran_FLAGS to testsg
kgerheiser Jul 7, 2021
bb67e3a
Update README.md
kgerheiser Jul 7, 2021
3926b13
Cleanup CMakeLists
kgerheiser Jul 7, 2021
b179d84
Merge branch 'feature/combined-ip' of github.com:kgerheiser/NCEPLIBS-…
kgerheiser Jul 7, 2021
a8eeefa
Fix docs
kgerheiser Jul 7, 2021
7d610ce
Update README
kgerheiser Jul 7, 2021
92b7e10
Add heap-arrays for tests
kgerheiser Jul 7, 2021
ec8ae43
Increase stack sizeg
kgerheiser Jul 7, 2021
ea9e3de
Add version for find_package(sp) and update Github workflow
kgerheiser Jul 15, 2021
aee44e5
Fix Github Action
kgerheiser Jul 15, 2021
0b875da
Fix workflow syntax
kgerheiser Jul 15, 2021
994251e
Fix sp version in find_package
kgerheiser Jul 15, 2021
fca7d54
Disable docs until fixed
kgerheiser Jul 15, 2021
5906c4c
Separate out debug compiler flags
kgerheiser Jul 20, 2021
01b9500
Use GCC-11
kgerheiser Jul 20, 2021
62fa22a
I mean GCC-10
kgerheiser Jul 20, 2021
f4cabb2
Setup Doxygen with CMake
kgerheiser Jul 20, 2021
bdc244e
Update Gitub Actions
kgerheiser Jul 20, 2021
0fa9ac8
Doxygen docs
kgerheiser Jul 20, 2021
585b6c2
More Doxygen
kgerheiser Jul 20, 2021
a15d899
Finish bicubic interpolation documentation
kgerheiser Jul 20, 2021
a137449
Remove duplicate file
kgerheiser Jul 20, 2021
f3a5c42
Ignore .DS_Store files
kgerheiser Jul 20, 2021
9f00ac4
Fix typo
kgerheiser Jul 20, 2021
60e2a92
Add Doxygen for ipolates
kgerheiser Jul 20, 2021
113bb4e
Cleanup docs for ipolates
kgerheiser Jul 20, 2021
b3b9415
Update user_guide.md
kgerheiser Jul 21, 2021
4317893
Add Doxygen docs to ip_interpolators_mod
kgerheiser Jul 21, 2021
9fc99f0
Make interpolation ids public
kgerheiser Jul 21, 2021
3ba5868
Fix Doxygen in ipolates
kgerheiser Jul 21, 2021
8619b97
Fix module syntax
kgerheiser Jul 21, 2021
3e6dcfc
Remove duplicate module use
kgerheiser Jul 21, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions .github/workflows/gcc-docs-coverage.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: GCC Build
name: GCC Docs Coverage Build
on: [push, pull_request]

jobs:
Expand Down Expand Up @@ -49,7 +49,11 @@ jobs:
- name: test
run: |
cd $GITHUB_WORKSPACE/ip/build
ctest --verbose
ctest --output-on-failure

- name: run-gcovr
run: |
cd $GITHUB_WORKSPACE/ip/build
gcovr -r .. -v --html-details -o test-coverage.html

- name: upload-test-coverage
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/intel.yml
Original file line number Diff line number Diff line change
Expand Up @@ -65,4 +65,4 @@ jobs:
run: |
ulimit -s unlimited
cd $GITHUB_WORKSPACE/ip/build
ctest
ctest --output-on-failure
12 changes: 12 additions & 0 deletions docs/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# This is the CMake file for building the docs directory of NCEPLIBS-ip
IF(ENABLE_DOCS)

# Create doxyfile.
SET(abs_top_srcdir "${CMAKE_SOURCE_DIR}")
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY)
ADD_CUSTOM_TARGET(doc ALL
${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Generating API Documentation with Doxygen" VERBATIM)

ENDIF(ENABLE_DOCS)
2,524 changes: 2,524 additions & 0 deletions docs/Doxyfile.in

Large diffs are not rendered by default.

7 changes: 4 additions & 3 deletions docs/user_guide.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# Documentation of the general interpolation library 2 - ip2lib
# Documentation of the general interpolation library - iplib

## Introduction

The NCEP general interpolation library 2 (ip2lib) contains Fortran 90 subprograms
The NCEP general interpolation library (ip2lib) contains Fortran 90 subprograms
to be used for interpolating between nearly all grids used at NCEP.
The library is particularly efficient when interpolating many fields at one time.
The library has been extensively tested with AIX and Intel Fortran compilers.
The library has been extensively tested with GNU and Intel Fortran compilers.
kgerheiser marked this conversation as resolved.
Show resolved Hide resolved

There are currently six interpolation methods available in the library:
bilinear, bicubic, neighbor, budget, spectral and neighbor-budget.
Expand Down Expand Up @@ -204,6 +204,7 @@ Example 1. Read a grib 2 file of scalar data on a global regular

program example_1

use ip_mod
use grib_mod ! ncep grib 2 library

implicit none
Expand Down
2 changes: 1 addition & 1 deletion src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ set(fortran_src
)

if(CMAKE_Fortran_COMPILER_ID MATCHES "^(Intel)$")
set(CMAKE_Fortran_FLAGS "-g -traceback -warn all -auto -convert big_endian -assume byterecl -fpp ${CMAKE_Fortran_FLAGS}")
set(CMAKE_Fortran_FLAGS "-g -traceback -warn all -auto -convert big_endian -assume byterecl -fp-model strict -fpp ${CMAKE_Fortran_FLAGS}")
set(CMAKE_Fortran_FLAGS_DEBUG "-O0 -check all -warn all")
set(fortran_d_flags "-r8")
set(fortran_8_flags "-i8 -r8")
Expand Down
252 changes: 133 additions & 119 deletions src/ip_gaussian_grid_mod.f90
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
!> @file
!! @brief Gaussian grid

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Author tag at file level as well...

module ip_gaussian_grid_mod
use ip_grid_descriptor_mod
use ip_grid_mod
Expand Down Expand Up @@ -25,6 +28,12 @@ module ip_gaussian_grid_mod

contains

!> Initializes a gaussian grid given a grib1 grib1_descriptor object.
!!
!! @param[inout] self The grid to initialize
!! @param[in] g1_desc A grib1_descriptor
!!
!! @author Kyle Gerheiser
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add a @Date tag as well.

subroutine init_grib1(self, g1_desc)
class(ip_gaussian_grid), intent(inout) :: self
type(grib1_descriptor), intent(in) :: g1_desc
Expand Down Expand Up @@ -68,6 +77,11 @@ subroutine init_grib1(self, g1_desc)
end associate
end subroutine init_grib1

!> Initializes a gaussian grid given a grib1 grib2_descriptor object.
!! @param[inout] self The grid to initialize
!! @param[in] g1_desc A grib1_descriptor
!!
!! @author Kyle Gerheiser
subroutine init_grib2(self, g2_desc)
class(ip_gaussian_grid), intent(inout) :: self
type(grib2_descriptor), intent(in) :: g2_desc
Expand Down Expand Up @@ -110,128 +124,128 @@ subroutine init_grib2(self, g2_desc)

end subroutine init_grib2

!$$$ SUBPROGRAM DOCUMENTATION BLOCK
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This whole comment block must also be doxygenated.

!
! SUBPROGRAM: GDSWZD_GAUSSIAN GDS WIZARD FOR GAUSSIAN CYLINDRICAL
! PRGMMR: IREDELL ORG: W/NMC23 DATE: 96-04-10
!
! ABSTRACT: THIS SUBPROGRAM DECODES THE GRIB 2 GRID DEFINITION
! TEMPLATE (PASSED IN INTEGER FORM AS DECODED BY THE
! NCEP G2 LIBRARY) AND RETURNS ONE OF THE FOLLOWING:
! (IOPT=+1) EARTH COORDINATES OF SELECTED GRID COORDINATES
! (IOPT=-1) GRID COORDINATES OF SELECTED EARTH COORDINATES
! WORKS FOR GAUSSIAN CYLINDRICAL PROJECTIONS.
! IF THE SELECTED COORDINATES ARE MORE THAN ONE GRIDPOINT
! BEYOND THE THE EDGES OF THE GRID DOMAIN, THEN THE RELEVANT
! OUTPUT ELEMENTS ARE SET TO FILL VALUES.
! THE ACTUAL NUMBER OF VALID POINTS COMPUTED IS RETURNED TOO.
! OPTIONALLY, THE VECTOR ROTATIONS, THE MAP JACOBIANS AND
! THE GRID BOX AREAS MAY BE RETURNED AS WELL. TO COMPUTE
! THE VECTOR ROTATIONS, THE OPTIONAL ARGUMENTS 'SROT' AND 'CROT'
! MUST BE PRESENT. TO COMPUTE THE MAP JACOBIANS, THE
! OPTIONAL ARGUMENTS 'XLON', 'XLAT', 'YLON', 'YLAT' MUST BE PRESENT.
! TO COMPUTE THE GRID BOX AREAS, THE OPTIONAL ARGUMENT
! 'AREA' MUST BE PRESENT.
!
! PROGRAM HISTORY LOG:
! 96-04-10 IREDELL
! 97-10-20 IREDELL INCLUDE MAP OPTIONS
! 1999-04-08 IREDELL USE SUBROUTINE SPLAT
! 2001-06-18 IREDELL CORRECT AREA COMPUTATION
! 2012-08-01 GAYNO CORRECT AREA COMPUTATION AT POLE.
! CORRECT YLAT COMPUTATION.
! 2015-01-21 GAYNO MERGER OF GDSWIZ04 AND GDSWZD04. MAKE
! CROT,SORT,XLON,XLAT,YLON,YLAT AND AREA
! OPTIONAL ARGUMENTS. MAKE PART OF A MODULE.
! MOVE VECTOR ROTATION, MAP JACOBIAN AND GRID
! BOX AREA COMPUTATIONS TO SEPARATE SUBROUTINES.
! 2015-07-13 GAYNO CONVERT TO GRIB 2. REPLACE GRIB 1 KGDS ARRAY
! WITH GRIB 2 GRID DEFINITION TEMPLATE ARRAY.
! RENAME AS "GDSWZD_GAUSSIAN".
! 2018-07-20 WESLEY ADD THREADS.
!
! USAGE: CALL GDSWZD_GAUSSIAN(IGDTNUM,IGDTMPL,IGDTLEN,IOPT,NPTS,FILL,
! & XPTS,YPTS,RLON,RLAT,NRET,
! & CROT,SROT,XLON,XLAT,YLON,YLAT,AREA)
!
! INPUT ARGUMENT LIST:
! IGDTNUM - INTEGER GRID DEFINITION TEMPLATE NUMBER.
! CORRESPONDS TO THE GFLD%IGDTNUM COMPONENT OF THE
! NCEP G2 LIBRARY GRIDMOD DATA STRUCTURE.
! MUST BE "40" FOR GAUSSIAN GRIDS.
! IGDTMPL - INTEGER (IGDTLEN) GRID DEFINITION TEMPLATE ARRAY.
! CORRESPONDS TO THE GFLD%IGDTMPL COMPONENT OF THE
! NCEP G2 LIBRARY GRIDMOD DATA STRUCTURE FOR SECTION
! THREE:
! (1): SHAPE OF EARTH, OCTET 15
! (2): SCALE FACTOR OF SPHERICAL EARTH RADIUS,
! OCTET 16
! (3): SCALED VALUE OF RADIUS OF SPHERICAL EARTH,
! OCTETS 17-20
! (4): SCALE FACTOR OF MAJOR AXIS OF ELLIPTICAL EARTH,
! OCTET 21
! (5): SCALED VALUE OF MAJOR AXIS OF ELLIPTICAL EARTH,
! OCTETS 22-25
! (6): SCALE FACTOR OF MINOR AXIS OF ELLIPTICAL EARTH,
! OCTET 26
! (7): SCALED VALUE OF MINOR AXIS OF ELLIPTICAL EARTH,
! OCTETS 27-30
! (8): NUMBER OF POINTS ALONG A PARALLEL, OCTS 31-34
! (9): NUMBER OF POINTS ALONG A MERIDIAN, OCTS 35-38
! (10): BASIC ANGLE OF INITIAL PRODUCTION DOMAIN,
! OCTETS 39-42
! (11): SUBDIVISIONS OF BASIC ANGLE, OCTETS 43-46
! (12): LATITUDE OF FIRST GRID POINT, OCTETS 47-50
! (13): LONGITUDE OF FIRST GRID POINT, OCTETS 51-54
! (14): RESOLUTION AND COMPONENT FLAGS, OCTET 55
! (15): LATITUDE OF LAST GRID POINT, OCTETS 56-59
! (16): LONGITUDE OF LAST GRID POINT, OCTETS 60-63
! (17): I-DIRECTION INCREMENT, OCTETS 64-67
! (18): NUMBER OF PARALLELS BETWEEN POLE AND EQUATOR,
! OCTETS 68-71
! (19): SCANNING MODE, OCTET 72
! IGDTLEN - INTEGER NUMBER OF ELEMENTS (19) OF THE GRID DEFINITION
! TEMPLATE ARRAY. CORRESPONDS TO THE GFLD%IGDTLEN
! COMPONENT OF THE NCEP G2 LIBRARY GRIDMOD DATA STRUCTURE.
! IOPT - INTEGER OPTION FLAG
! (+1 TO COMPUTE EARTH COORDS OF SELECTED GRID COORDS)
! (-1 TO COMPUTE GRID COORDS OF SELECTED EARTH COORDS)
! NPTS - INTEGER MAXIMUM NUMBER OF COORDINATES
! FILL - REAL FILL VALUE TO SET INVALID OUTPUT DATA
! (MUST BE IMPOSSIBLE VALUE; SUGGESTED VALUE: -9999.)
! XPTS - REAL (NPTS) GRID X POINT COORDINATES IF IOPT>0
! YPTS - REAL (NPTS) GRID Y POINT COORDINATES IF IOPT>0
! RLON - REAL (NPTS) EARTH LONGITUDES IN DEGREES E IF IOPT<0
! (ACCEPTABLE RANGE: -360. TO 360.)
! RLAT - REAL (NPTS) EARTH LATITUDES IN DEGREES N IF IOPT<0
! (ACCEPTABLE RANGE: -90. TO 90.)
!
! OUTPUT ARGUMENT LIST:
! XPTS - REAL (NPTS) GRID X POINT COORDINATES IF IOPT<0
! YPTS - REAL (NPTS) GRID Y POINT COORDINATES IF IOPT<0
! RLON - REAL (NPTS) EARTH LONGITUDES IN DEGREES E IF IOPT>0
! RLAT - REAL (NPTS) EARTH LATITUDES IN DEGREES N IF IOPT>0
! NRET - INTEGER NUMBER OF VALID POINTS COMPUTED
! CROT - REAL, OPTIONAL (NPTS) CLOCKWISE VECTOR ROTATION COSINES
! SROT - REAL, OPTIONAL (NPTS) CLOCKWISE VECTOR ROTATION SINES
! (UGRID=CROT*UEARTH-SROT*VEARTH;
! VGRID=SROT*UEARTH+CROT*VEARTH)
! XLON - REAL, OPTIONAL (NPTS) DX/DLON IN 1/DEGREES
! XLAT - REAL, OPTIONAL (NPTS) DX/DLAT IN 1/DEGREES
! YLON - REAL, OPTIONAL (NPTS) DY/DLON IN 1/DEGREES
! YLAT - REAL, OPTIONAL (NPTS) DY/DLAT IN 1/DEGREES
! AREA - REAL, OPTIONAL (NPTS) AREA WEIGHTS IN M**2
!
! EXTERNAL SUBPROGRAMS CALLED:
! SPLAT COMPUTE LATITUDE FUNCTIONS
!
! ATTRIBUTES:
! LANGUAGE: FORTRAN 90
!
!$$$
SUBROUTINE GDSWZD_GAUSSIAN(self,IOPT,NPTS,FILL, &
XPTS,YPTS,RLON,RLAT,NRET, &
CROT,SROT,XLON,XLAT,YLON,YLAT,AREA)
!$$$ SUBPROGRAM DOCUMENTATION BLOCK
!
! SUBPROGRAM: GDSWZD_GAUSSIAN GDS WIZARD FOR GAUSSIAN CYLINDRICAL
! PRGMMR: IREDELL ORG: W/NMC23 DATE: 96-04-10
!
! ABSTRACT: THIS SUBPROGRAM DECODES THE GRIB 2 GRID DEFINITION
! TEMPLATE (PASSED IN INTEGER FORM AS DECODED BY THE
! NCEP G2 LIBRARY) AND RETURNS ONE OF THE FOLLOWING:
! (IOPT=+1) EARTH COORDINATES OF SELECTED GRID COORDINATES
! (IOPT=-1) GRID COORDINATES OF SELECTED EARTH COORDINATES
! WORKS FOR GAUSSIAN CYLINDRICAL PROJECTIONS.
! IF THE SELECTED COORDINATES ARE MORE THAN ONE GRIDPOINT
! BEYOND THE THE EDGES OF THE GRID DOMAIN, THEN THE RELEVANT
! OUTPUT ELEMENTS ARE SET TO FILL VALUES.
! THE ACTUAL NUMBER OF VALID POINTS COMPUTED IS RETURNED TOO.
! OPTIONALLY, THE VECTOR ROTATIONS, THE MAP JACOBIANS AND
! THE GRID BOX AREAS MAY BE RETURNED AS WELL. TO COMPUTE
! THE VECTOR ROTATIONS, THE OPTIONAL ARGUMENTS 'SROT' AND 'CROT'
! MUST BE PRESENT. TO COMPUTE THE MAP JACOBIANS, THE
! OPTIONAL ARGUMENTS 'XLON', 'XLAT', 'YLON', 'YLAT' MUST BE PRESENT.
! TO COMPUTE THE GRID BOX AREAS, THE OPTIONAL ARGUMENT
! 'AREA' MUST BE PRESENT.
!
! PROGRAM HISTORY LOG:
! 96-04-10 IREDELL
! 97-10-20 IREDELL INCLUDE MAP OPTIONS
! 1999-04-08 IREDELL USE SUBROUTINE SPLAT
! 2001-06-18 IREDELL CORRECT AREA COMPUTATION
! 2012-08-01 GAYNO CORRECT AREA COMPUTATION AT POLE.
! CORRECT YLAT COMPUTATION.
! 2015-01-21 GAYNO MERGER OF GDSWIZ04 AND GDSWZD04. MAKE
! CROT,SORT,XLON,XLAT,YLON,YLAT AND AREA
! OPTIONAL ARGUMENTS. MAKE PART OF A MODULE.
! MOVE VECTOR ROTATION, MAP JACOBIAN AND GRID
! BOX AREA COMPUTATIONS TO SEPARATE SUBROUTINES.
! 2015-07-13 GAYNO CONVERT TO GRIB 2. REPLACE GRIB 1 KGDS ARRAY
! WITH GRIB 2 GRID DEFINITION TEMPLATE ARRAY.
! RENAME AS "GDSWZD_GAUSSIAN".
! 2018-07-20 WESLEY ADD THREADS.
!
! USAGE: CALL GDSWZD_GAUSSIAN(IGDTNUM,IGDTMPL,IGDTLEN,IOPT,NPTS,FILL,
! & XPTS,YPTS,RLON,RLAT,NRET,
! & CROT,SROT,XLON,XLAT,YLON,YLAT,AREA)
!
! INPUT ARGUMENT LIST:
! IGDTNUM - INTEGER GRID DEFINITION TEMPLATE NUMBER.
! CORRESPONDS TO THE GFLD%IGDTNUM COMPONENT OF THE
! NCEP G2 LIBRARY GRIDMOD DATA STRUCTURE.
! MUST BE "40" FOR GAUSSIAN GRIDS.
! IGDTMPL - INTEGER (IGDTLEN) GRID DEFINITION TEMPLATE ARRAY.
! CORRESPONDS TO THE GFLD%IGDTMPL COMPONENT OF THE
! NCEP G2 LIBRARY GRIDMOD DATA STRUCTURE FOR SECTION
! THREE:
! (1): SHAPE OF EARTH, OCTET 15
! (2): SCALE FACTOR OF SPHERICAL EARTH RADIUS,
! OCTET 16
! (3): SCALED VALUE OF RADIUS OF SPHERICAL EARTH,
! OCTETS 17-20
! (4): SCALE FACTOR OF MAJOR AXIS OF ELLIPTICAL EARTH,
! OCTET 21
! (5): SCALED VALUE OF MAJOR AXIS OF ELLIPTICAL EARTH,
! OCTETS 22-25
! (6): SCALE FACTOR OF MINOR AXIS OF ELLIPTICAL EARTH,
! OCTET 26
! (7): SCALED VALUE OF MINOR AXIS OF ELLIPTICAL EARTH,
! OCTETS 27-30
! (8): NUMBER OF POINTS ALONG A PARALLEL, OCTS 31-34
! (9): NUMBER OF POINTS ALONG A MERIDIAN, OCTS 35-38
! (10): BASIC ANGLE OF INITIAL PRODUCTION DOMAIN,
! OCTETS 39-42
! (11): SUBDIVISIONS OF BASIC ANGLE, OCTETS 43-46
! (12): LATITUDE OF FIRST GRID POINT, OCTETS 47-50
! (13): LONGITUDE OF FIRST GRID POINT, OCTETS 51-54
! (14): RESOLUTION AND COMPONENT FLAGS, OCTET 55
! (15): LATITUDE OF LAST GRID POINT, OCTETS 56-59
! (16): LONGITUDE OF LAST GRID POINT, OCTETS 60-63
! (17): I-DIRECTION INCREMENT, OCTETS 64-67
! (18): NUMBER OF PARALLELS BETWEEN POLE AND EQUATOR,
! OCTETS 68-71
! (19): SCANNING MODE, OCTET 72
! IGDTLEN - INTEGER NUMBER OF ELEMENTS (19) OF THE GRID DEFINITION
! TEMPLATE ARRAY. CORRESPONDS TO THE GFLD%IGDTLEN
! COMPONENT OF THE NCEP G2 LIBRARY GRIDMOD DATA STRUCTURE.
! IOPT - INTEGER OPTION FLAG
! (+1 TO COMPUTE EARTH COORDS OF SELECTED GRID COORDS)
! (-1 TO COMPUTE GRID COORDS OF SELECTED EARTH COORDS)
! NPTS - INTEGER MAXIMUM NUMBER OF COORDINATES
! FILL - REAL FILL VALUE TO SET INVALID OUTPUT DATA
! (MUST BE IMPOSSIBLE VALUE; SUGGESTED VALUE: -9999.)
! XPTS - REAL (NPTS) GRID X POINT COORDINATES IF IOPT>0
! YPTS - REAL (NPTS) GRID Y POINT COORDINATES IF IOPT>0
! RLON - REAL (NPTS) EARTH LONGITUDES IN DEGREES E IF IOPT<0
! (ACCEPTABLE RANGE: -360. TO 360.)
! RLAT - REAL (NPTS) EARTH LATITUDES IN DEGREES N IF IOPT<0
! (ACCEPTABLE RANGE: -90. TO 90.)
!
! OUTPUT ARGUMENT LIST:
! XPTS - REAL (NPTS) GRID X POINT COORDINATES IF IOPT<0
! YPTS - REAL (NPTS) GRID Y POINT COORDINATES IF IOPT<0
! RLON - REAL (NPTS) EARTH LONGITUDES IN DEGREES E IF IOPT>0
! RLAT - REAL (NPTS) EARTH LATITUDES IN DEGREES N IF IOPT>0
! NRET - INTEGER NUMBER OF VALID POINTS COMPUTED
! CROT - REAL, OPTIONAL (NPTS) CLOCKWISE VECTOR ROTATION COSINES
! SROT - REAL, OPTIONAL (NPTS) CLOCKWISE VECTOR ROTATION SINES
! (UGRID=CROT*UEARTH-SROT*VEARTH;
! VGRID=SROT*UEARTH+CROT*VEARTH)
! XLON - REAL, OPTIONAL (NPTS) DX/DLON IN 1/DEGREES
! XLAT - REAL, OPTIONAL (NPTS) DX/DLAT IN 1/DEGREES
! YLON - REAL, OPTIONAL (NPTS) DY/DLON IN 1/DEGREES
! YLAT - REAL, OPTIONAL (NPTS) DY/DLAT IN 1/DEGREES
! AREA - REAL, OPTIONAL (NPTS) AREA WEIGHTS IN M**2
!
! EXTERNAL SUBPROGRAMS CALLED:
! SPLAT COMPUTE LATITUDE FUNCTIONS
!
! ATTRIBUTES:
! LANGUAGE: FORTRAN 90
!
!$$$
IMPLICIT NONE
!
class(ip_gaussian_grid), intent(in) :: self
Expand Down
2 changes: 2 additions & 0 deletions src/ip_interpolator_mod.f90
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
!> @file
!! @brief
kgerheiser marked this conversation as resolved.
Show resolved Hide resolved
module ip_interpolator_mod
implicit none

Expand Down
5 changes: 5 additions & 0 deletions src/ip_mod.f90
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
!> @file
!! @brief Top-level module for the ip library.
!! @author Kyle Gerheiser

!> Top-level module for the ip library which re-exports public routines such as ipolates, ipolatev, and gdswzd.
module ip_mod
use ipolates_mod
use ipolatev_mod
Expand Down
Loading