Coder Social home page Coder Social logo

noaa-emc / nceplibs-ip Goto Github PK

View Code? Open in Web Editor NEW
6.0 5.0 8.0 102.05 MB

Fortran 90 subprograms to be used for interpolating between nearly all grids used at NCEP.

License: Other

Fortran 86.10% C 2.92% CMake 1.54% Makefile 0.75% Shell 6.95% M4 0.12% Visual Basic 6.0 1.19% Python 0.42%

nceplibs-ip's Introduction

Status

Interpolation Library

The NCEP general interpolation library 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. It also contains routines for spectral transforms and other processing, including those previously contained in the NCEPLIBS-sp library.

This is part of the NCEPLIBS project.

There are currently six interpolation methods available in the library:

  • bilinear
  • bicubic
  • neighbor
  • budget
  • spectral
  • neighbor-budget

For full documentation see https://noaa-emc.github.io/NCEPLIBS-ip/.

To submit bug reports, feature requests, or other code-related issues including installation and usage questions, please create a GitHub issue. For general NCEPLIBS inquiries, contact Ed Hartnett (secondary point of contact Alex Richert).

Authors

  • NCEP/EMC Developers

Code Manager: Alex Richert

Prerequisites

This package requires a BLAS/LAPACK library to provide several LU decomposition-related routines, and requires CMake (version 3.15+) to build. In spack-stack, OpenBLAS will be used as the provider of BLAS/LAPACK routines for all compilers.

Installing

mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/path/to/install /path/to/NCEPLIBS-ip
make -j2
make test # (or ctest --verbose)
make install

Usage

Most routines and any public interfaces required can be accessed by adding use ip_mod to your Fortran code. Most spectral transform and processing subroutines can be accessed by calling them in your code (no use statement) and linking to the ip library at build time.

Disclaimer

The United States Department of Commerce (DOC) GitHub project code is provided on an "as is" basis and the user assumes responsibility for its use. DOC has relinquished control of the information and no longer has responsibility to protect the integrity, confidentiality, or availability of the information. Any claims against the Department of Commerce stemming from the use of its GitHub project will be governed by all applicable Federal law. Any reference to specific commercial products, processes, or services by service mark, trademark, manufacturer, or otherwise, does not constitute or imply their endorsement, recommendation or favoring by the Department of Commerce. The Department of Commerce seal and logo, or the seal and logo of a DOC bureau, shall not be used in any manner to imply endorsement of any commercial product or activity by DOC or the United States Government.

nceplibs-ip's People

Contributors

aerorahul avatar alexanderrichert-noaa avatar alexrichert avatar climbfuji avatar dexinzhang-noaa avatar dusanjovic-noaa avatar edwardhartnett avatar ericengle-noaa avatar georgegayno-noaa avatar hang-lei-noaa avatar kgerheiser avatar mark-a-potts avatar timothycera-noaa avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

nceplibs-ip's Issues

NCEPLIBS-ip fails to compile on WCOSS

@GeorgeGayno-NOAA reports:

budget_interp_mod.f90(129): error #7497: The variable must be type compatible with the expression and of the same rank.

[GRID_DESC_OUT2]

grid_desc_out2 = grid_out%descriptor

This seems to be a compiler bug with that specific version of ifort with polymorphic assignment.

Substituting the assignment with allocate(grid_desc_out2, source = grid_out%descriptor) may fix the issue.

warnings in fftpack.F

/var/lib/jenkins/workspace/NCEPLIBS-sp/src/fftpack.F:324:72:

  324 |       IF (J-4) 102,102,103
      |                                                                        1
Warning: Fortran 2018 deleted feature: Arithmetic IF statement at (1)
/var/lib/jenkins/workspace/NCEPLIBS-sp/src/fftpack.F:330:72:

  330 |       IF (NR) 101,105,101
      |                                                                        1
Warning: Fortran 2018 deleted feature: Arithmetic IF statement at (1)
/var/lib/jenkins/workspace/NCEPLIBS-sp/src/fftpack.F:385:72:

  385 |       IF (IDO-2) 107,105,102
      |                                                                        1
Warning: Fortran 2018 deleted feature: Arithmetic IF statement at (1)
/var/lib/jenkins/workspace/NCEPLIBS-sp/src/fftpack.F:462:72:

  462 |       IF (IDO-2) 107,105,102
      |                                                                        1
Warning: Fortran 2018 deleted feature: Arithmetic IF statement at (1)
/var/lib/jenkins/workspace/NCEPLIBS-sp/src/fftpack.F:750:72:

  750 |       IF (IDO-2) 107,105,102
      |                                                                        1
Warning: Fortran 2018 deleted feature: Arithmetic IF statement at (1)
/var/lib/jenkins/workspace/NCEPLIBS-sp/src/fftpack.F:819:72:

  819 |       IF (IDO-2) 107,105,102
      |                                                                        1
Warning: Fortran 2018 deleted feature: Arithmetic IF statement at (1)
/var/lib/jenkins/workspace/NCEPLIBS-sp/src/fftpack.F:192:72:

  192 |       CALL RFFTI1 (N,WSAVE(N+1),WSAVE(2*N+1))
      |                                                                        1
Warning: Type mismatch in argument ‘ifac’ at (1); passed REAL(8) to INTEGER(4) [-Wargument-mismatch]
/var/lib/jenkins/workspace/NCEPLIBS-sp/src/fftpack.F:484:43:

  466 |          DO 103 I=3,IDO,2
      |                                                                        2
......
  484 |             CH(I-1,K,2) = WA1(I-2)*CR2-WA1(I-1)*CI2
      |                                           1
Warning: Array reference at (1) out of bounds (2 > 1) in loop beginning at (2)
/var/lib/jenkins/workspace/NCEPLIBS-sp/src/fftpack.F:485:41:

  466 |          DO 103 I=3,IDO,2
      |                                                                        2
......
  485 |             CH(I,K,2) = WA1(I-2)*CI2+WA1(I-1)*CR2
      |                                         1
Warning: Array reference at (1) out of bounds (2 > 1) in loop beginning at (2)
/var/lib/jenkins/workspace/NCEPLIBS-sp/src/fftpack.F:486:43:

  466 |          DO 103 I=3,IDO,2
      |                                                                        2
......
  486 |             CH(I-1,K,3) = WA2(I-2)*CR3-WA2(I-1)*CI3
      |                                           1
Warning: Array reference at (1) out of bounds (2 > 1) in loop beginning at (2)
/var/lib/jenkins/workspace/NCEPLIBS-sp/src/fftpack.F:487:41:

  466 |          DO 103 I=3,IDO,2
      |                                                                        2
......
  487 |             CH(I,K,3) = WA2(I-2)*CI3+WA2(I-1)*CR3
      |                                         1
Warning: Array reference at (1) out of bounds (2 > 1) in loop beginning at (2)
/var/lib/jenkins/workspace/NCEPLIBS-sp/src/fftpack.F:488:43:

  466 |          DO 103 I=3,IDO,2
      |                                                                        2
......
  488 |             CH(I-1,K,4) = WA3(I-2)*CR4-WA3(I-1)*CI4
      |                                           1
Warning: Array reference at (1) out of bounds (2 > 1) in loop beginning at (2)
/var/lib/jenkins/workspace/NCEPLIBS-sp/src/fftpack.F:489:41:

  466 |          DO 103 I=3,IDO,2
      |                                                                        2
......
  489 |             CH(I,K,4) = WA3(I-2)*CI4+WA3(I-1)*CR4
      |                                         1
Warning: Array reference at (1) out of bounds (2 > 1) in loop beginning at (2)
/var/lib/jenkins/workspace/NCEPLIBS-sp/src/fftpack.F:395:43:

  389 |          DO 103 I=3,IDO,2
      |                                                                        2
......
  395 |             CH(I-1,K,2) = WA1(I-2)*TR2-WA1(I-1)*TI2
      |                                           1
Warning: Array reference at (1) out of bounds (2 > 1) in loop beginning at (2)
/var/lib/jenkins/workspace/NCEPLIBS-sp/src/fftpack.F:396:41:

  389 |          DO 103 I=3,IDO,2
      |                                                                        2
......
  396 |             CH(I,K,2) = WA1(I-2)*TI2+WA1(I-1)*TR2
      |                                         1
Warning: Array reference at (1) out of bounds (2 > 1) in loop beginning at (2)
/var/lib/jenkins/workspace/NCEPLIBS-sp/src/fftpack.F:438:43:

  424 |          DO 102 I=3,IDO,2
      |                                                                        2
......
  438 |             CH(I-1,K,2) = WA1(I-2)*DR2-WA1(I-1)*DI2
      |                                           1
Warning: Array reference at (1) out of bounds (2 > 1) in loop beginning at (2)
/var/lib/jenkins/workspace/NCEPLIBS-sp/src/fftpack.F:439:41:

  424 |          DO 102 I=3,IDO,2
      |                                                                        2
......
  439 |             CH(I,K,2) = WA1(I-2)*DI2+WA1(I-1)*DR2
      |                                         1
Warning: Array reference at (1) out of bounds (2 > 1) in loop beginning at (2)
/var/lib/jenkins/workspace/NCEPLIBS-sp/src/fftpack.F:440:43:

  424 |          DO 102 I=3,IDO,2
      |                                                                        2
......
  440 |             CH(I-1,K,3) = WA2(I-2)*DR3-WA2(I-1)*DI3
      |                                           1
Warning: Array reference at (1) out of bounds (2 > 1) in loop beginning at (2)
/var/lib/jenkins/workspace/NCEPLIBS-sp/src/fftpack.F:441:41:

  424 |          DO 102 I=3,IDO,2
      |                                                                        2
......
  441 |             CH(I,K,3) = WA2(I-2)*DI3+WA2(I-1)*DR3
      |                                         1
Warning: Array reference at (1) out of bounds (2 > 1) in loop beginning at (2)
/var/lib/jenkins/workspace/NCEPLIBS-sp/src/fftpack.F:559:43:

  531 |          DO 102 I=3,IDO,2
      |                                                                        2
......
  559 |             CH(I-1,K,2) = WA1(I-2)*DR2-WA1(I-1)*DI2
      |                                           1
Warning: Array reference at (1) out of bounds (2 > 1) in loop beginning at (2)
/var/lib/jenkins/workspace/NCEPLIBS-sp/src/fftpack.F:560:41:

  531 |          DO 102 I=3,IDO,2
      |                                                                        2
......
  560 |             CH(I,K,2) = WA1(I-2)*DI2+WA1(I-1)*DR2
      |                                         1
Warning: Array reference at (1) out of bounds (2 > 1) in loop beginning at (2)
/var/lib/jenkins/workspace/NCEPLIBS-sp/src/fftpack.F:561:43:

  531 |          DO 102 I=3,IDO,2
      |                                                                        2
......
  561 |             CH(I-1,K,3) = WA2(I-2)*DR3-WA2(I-1)*DI3
      |                                           1
Warning: Array reference at (1) out of bounds (2 > 1) in loop beginning at (2)
/var/lib/jenkins/workspace/NCEPLIBS-sp/src/fftpack.F:562:41:

  531 |          DO 102 I=3,IDO,2
      |                                                                        2
......
  562 |             CH(I,K,3) = WA2(I-2)*DI3+WA2(I-1)*DR3
      |                                         1
Warning: Array reference at (1) out of bounds (2 > 1) in loop beginning at (2)
/var/lib/jenkins/workspace/NCEPLIBS-sp/src/fftpack.F:563:43:

  531 |          DO 102 I=3,IDO,2
      |                                                                        2
......
  563 |             CH(I-1,K,4) = WA3(I-2)*DR4-WA3(I-1)*DI4
      |                                           1
Warning: Array reference at (1) out of bounds (2 > 1) in loop beginning at (2)
/var/lib/jenkins/workspace/NCEPLIBS-sp/src/fftpack.F:564:41:

  531 |          DO 102 I=3,IDO,2
      |                                                                        2
......
  564 |             CH(I,K,4) = WA3(I-2)*DI4+WA3(I-1)*DR4
      |                                         1
Warning: Array reference at (1) out of bounds (2 > 1) in loop beginning at (2)
/var/lib/jenkins/workspace/NCEPLIBS-sp/src/fftpack.F:565:43:

  531 |          DO 102 I=3,IDO,2
      |                                                                        2
......
  565 |             CH(I-1,K,5) = WA4(I-2)*DR5-WA4(I-1)*DI5
      |                                           1
Warning: Array reference at (1) out of bounds (2 > 1) in loop beginning at (2)
/var/lib/jenkins/workspace/NCEPLIBS-sp/src/fftpack.F:566:41:

  531 |          DO 102 I=3,IDO,2
      |                                                                        2
......
  566 |             CH(I,K,5) = WA4(I-2)*DI5+WA4(I-1)*DR5
      |                                         1
Warning: Array reference at (1) out of bounds (2 > 1) in loop beginning at (2)
/var/lib/jenkins/workspace/NCEPLIBS-sp/src/fftpack.F:186:72:

  186 |       CALL RFFTB1 (N,R,WSAVE,WSAVE(N+1),WSAVE(2*N+1))
      |                                                                        1
Warning: Type mismatch in argument ‘ifac’ at (1); passed REAL(8) to INTEGER(4) [-Wargument-mismatch]
/var/lib/jenkins/workspace/NCEPLIBS-sp/src/fftpack.F:825:43:

  823 |          DO 103 I=3,IDO,2
      |                                                                        2
  824 |             IC = IDP2-I
  825 |             CR2 = WA1(I-2)*CC(I-1,K,2)+WA1(I-1)*CC(I,K,2)
      |                                           1
Warning: Array reference at (1) out of bounds (2 > 1) in loop beginning at (2)
/var/lib/jenkins/workspace/NCEPLIBS-sp/src/fftpack.F:826:41:

  823 |          DO 103 I=3,IDO,2
      |                                                                        2
......
  826 |             CI2 = WA1(I-2)*CC(I,K,2)-WA1(I-1)*CC(I-1,K,2)
      |                                         1
Warning: Array reference at (1) out of bounds (2 > 1) in loop beginning at (2)
/var/lib/jenkins/workspace/NCEPLIBS-sp/src/fftpack.F:827:43:

  823 |          DO 103 I=3,IDO,2
      |                                                                        2
......
  827 |             CR3 = WA2(I-2)*CC(I-1,K,3)+WA2(I-1)*CC(I,K,3)
      |                                           1
Warning: Array reference at (1) out of bounds (2 > 1) in loop beginning at (2)
/var/lib/jenkins/workspace/NCEPLIBS-sp/src/fftpack.F:828:41:

  823 |          DO 103 I=3,IDO,2
      |                                                                        2
......
  828 |             CI3 = WA2(I-2)*CC(I,K,3)-WA2(I-1)*CC(I-1,K,3)
      |                                         1
Warning: Array reference at (1) out of bounds (2 > 1) in loop beginning at (2)
/var/lib/jenkins/workspace/NCEPLIBS-sp/src/fftpack.F:829:43:

  823 |          DO 103 I=3,IDO,2
      |                                                                        2
......
  829 |             CR4 = WA3(I-2)*CC(I-1,K,4)+WA3(I-1)*CC(I,K,4)
      |                                           1
Warning: Array reference at (1) out of bounds (2 > 1) in loop beginning at (2)
/var/lib/jenkins/workspace/NCEPLIBS-sp/src/fftpack.F:830:41:

  823 |          DO 103 I=3,IDO,2
      |                                                                        2
......
  830 |             CI4 = WA3(I-2)*CC(I,K,4)-WA3(I-1)*CC(I-1,K,4)
      |                                         1
Warning: Array reference at (1) out of bounds (2 > 1) in loop beginning at (2)
/var/lib/jenkins/workspace/NCEPLIBS-sp/src/fftpack.F:755:43:

  753 |          DO 103 I=3,IDO,2
      |                                                                        2
  754 |             IC = IDP2-I
  755 |             TR2 = WA1(I-2)*CC(I-1,K,2)+WA1(I-1)*CC(I,K,2)
      |                                           1
Warning: Array reference at (1) out of bounds (2 > 1) in loop beginning at (2)
/var/lib/jenkins/workspace/NCEPLIBS-sp/src/fftpack.F:756:41:

  753 |          DO 103 I=3,IDO,2
      |                                                                        2
......
  756 |             TI2 = WA1(I-2)*CC(I,K,2)-WA1(I-1)*CC(I-1,K,2)
      |                                         1
Warning: Array reference at (1) out of bounds (2 > 1) in loop beginning at (2)
/var/lib/jenkins/workspace/NCEPLIBS-sp/src/fftpack.F:787:43:

  785 |          DO 102 I=3,IDO,2
      |                                                                        2
  786 |             IC = IDP2-I
  787 |             DR2 = WA1(I-2)*CC(I-1,K,2)+WA1(I-1)*CC(I,K,2)
      |                                           1
Warning: Array reference at (1) out of bounds (2 > 1) in loop beginning at (2)
/var/lib/jenkins/workspace/NCEPLIBS-sp/src/fftpack.F:788:41:

  785 |          DO 102 I=3,IDO,2
      |                                                                        2
......
  788 |             DI2 = WA1(I-2)*CC(I,K,2)-WA1(I-1)*CC(I-1,K,2)
      |                                         1
Warning: Array reference at (1) out of bounds (2 > 1) in loop beginning at (2)
/var/lib/jenkins/workspace/NCEPLIBS-sp/src/fftpack.F:789:43:

  785 |          DO 102 I=3,IDO,2
      |                                                                        2
......
  789 |             DR3 = WA2(I-2)*CC(I-1,K,3)+WA2(I-1)*CC(I,K,3)
      |                                           1
Warning: Array reference at (1) out of bounds (2 > 1) in loop beginning at (2)
/var/lib/jenkins/workspace/NCEPLIBS-sp/src/fftpack.F:790:41:

  785 |          DO 102 I=3,IDO,2
      |                                                                        2
......
  790 |             DI3 = WA2(I-2)*CC(I,K,3)-WA2(I-1)*CC(I-1,K,3)
      |                                         1
Warning: Array reference at (1) out of bounds (2 > 1) in loop beginning at (2)
/var/lib/jenkins/workspace/NCEPLIBS-sp/src/fftpack.F:884:43:

  882 |          DO 102 I=3,IDO,2
      |                                                                        2
  883 |             IC = IDP2-I
  884 |             DR2 = WA1(I-2)*CC(I-1,K,2)+WA1(I-1)*CC(I,K,2)
      |                                           1
Warning: Array reference at (1) out of bounds (2 > 1) in loop beginning at (2)
/var/lib/jenkins/workspace/NCEPLIBS-sp/src/fftpack.F:885:41:

  882 |          DO 102 I=3,IDO,2
      |                                                                        2
......
  885 |             DI2 = WA1(I-2)*CC(I,K,2)-WA1(I-1)*CC(I-1,K,2)
      |                                         1
Warning: Array reference at (1) out of bounds (2 > 1) in loop beginning at (2)
/var/lib/jenkins/workspace/NCEPLIBS-sp/src/fftpack.F:886:43:

  882 |          DO 102 I=3,IDO,2
      |                                                                        2
......
  886 |             DR3 = WA2(I-2)*CC(I-1,K,3)+WA2(I-1)*CC(I,K,3)
      |                                           1
Warning: Array reference at (1) out of bounds (2 > 1) in loop beginning at (2)
/var/lib/jenkins/workspace/NCEPLIBS-sp/src/fftpack.F:887:41:

  882 |          DO 102 I=3,IDO,2
      |                                                                        2
......
  887 |             DI3 = WA2(I-2)*CC(I,K,3)-WA2(I-1)*CC(I-1,K,3)
      |                                         1
Warning: Array reference at (1) out of bounds (2 > 1) in loop beginning at (2)
/var/lib/jenkins/workspace/NCEPLIBS-sp/src/fftpack.F:888:43:

  882 |          DO 102 I=3,IDO,2
      |                                                                        2
......
  888 |             DR4 = WA3(I-2)*CC(I-1,K,4)+WA3(I-1)*CC(I,K,4)
      |                                           1
Warning: Array reference at (1) out of bounds (2 > 1) in loop beginning at (2)
/var/lib/jenkins/workspace/NCEPLIBS-sp/src/fftpack.F:889:41:

  882 |          DO 102 I=3,IDO,2
      |                                                                        2
......
  889 |             DI4 = WA3(I-2)*CC(I,K,4)-WA3(I-1)*CC(I-1,K,4)
      |                                         1
Warning: Array reference at (1) out of bounds (2 > 1) in loop beginning at (2)
/var/lib/jenkins/workspace/NCEPLIBS-sp/src/fftpack.F:890:43:

  882 |          DO 102 I=3,IDO,2
      |                                                                        2
......
  890 |             DR5 = WA4(I-2)*CC(I-1,K,5)+WA4(I-1)*CC(I,K,5)
      |                                           1
Warning: Array reference at (1) out of bounds (2 > 1) in loop beginning at (2)
/var/lib/jenkins/workspace/NCEPLIBS-sp/src/fftpack.F:891:41:

  882 |          DO 102 I=3,IDO,2
      |                                                                        2
......
  891 |             DI5 = WA4(I-2)*CC(I,K,5)-WA4(I-1)*CC(I-1,K,5)
      |                                         1
Warning: Array reference at (1) out of bounds (2 > 1) in loop beginning at (2)
/var/lib/jenkins/workspace/NCEPLIBS-sp/src/fftpack.F:180:72:

  180 |       CALL RFFTF1 (N,R,WSAVE,WSAVE(N+1),WSAVE(2*N+1))
      |                                                                        1
Warning: Type mismatch in argument ‘ifac’ at (1); passed REAL(8) to INTEGER(4) [-Wargument-mismatch]

do we really need pfUnit?

It seems that there is some testing framework needed by the build: pfUnit.

Testing frameworks are considered harmful! Note that other science software packages in our stack don't use them.

We are asking users to run tests on the software, but to do that, they must first install this test framework? Well, no one will do that - they will just skip running our tests. So we are shooting ourselves in the foot, because having users run tests is the most cost-effective way to handle problems. If the tests fail, that saves everyone the time and trouble of investigating whatever user code is going to use the library, and then fail.

Both CMake and autotools provide full and complete support for unit testing, including in Fortran, including with MPI and multi-processor testing. The NetCDF, HDF5, and pnetcdf packages all face these same issues, and do not use any kind of testing framework, other than those provided by the build systems. All of these packages have significant fortran tests, and significant parallel I/O testing.

The GFDL people on the FMS project (and others) also were using a test framework (a different one, called "bats"). For the same reasons I outlined above, they recently removed it and have followed the example of other packages by using the built-in testing frameworks of autotools/CMake. (Which are very full-featured and have many interesting bells and whistles if you are interested in improving test output or experience.)

Part of the appeal of this framework may be the transition to fully automated testing. For those used to manual testing, a testing framework may seem to provide value. But with automated testing, test output is rarely examined. It either succeeds completely, or fails. So there is little need for any framework to help with manual test running. All that is done by the CI systems anyway.

Recover reg_test tests

These tests were deleted, but are still in the history. Recover them and convert them to CMake.

Identify areas for test improvement

We need to run code coverage analysis for this library.

copybg is a utility that will be useful in testing.

Some reg_tests were in the repo but have been lost. They can be recovered. Kyle will recover these.

make test doesn't work?

When I build this package, and then do a make test, I get this:

(base) ed@mikado:~/NCEPLIBS-ip/b$ make VERBOSE=1 tests
make: *** No rule to make target 'tests'.  Stop.
(base) ed@mikado:~/NCEPLIBS-ip/b$ make VERBOSE=1 test
make: *** No rule to make target 'test'.  Stop.

Yet I see there is a tests directory. So how do I run the tests?

warning during build of 4.0.0

[ 95%] Building C object tests/CMakeFiles/test_gdswzd_grib1.dir/test_gdswzd_grib1.c.o
/home/ed/Downloads/NCEPLIBS-ip-4.0.0/tests/test_gdswzd_grib1.c: In function ‘main’:
/home/ed/Downloads/NCEPLIBS-ip-4.0.0/tests/test_gdswzd_grib1.c:67:3: warning: implicit declaration of function ‘gdswzd_grib1’ [-Wimplicit-function-declaration]
   67 |   gdswzd_grib1(kgds, iopt, npts, fill,
      |   ^~~~~~~~~~~~

Combine all library builds so only one libip is needed

After building this package, in the lib directory, I see several libraries. What's the difference between them?

/home/ed/NCEPLIBS/NCEPLIBS-ip/lib:
  total used in directory 2552 available 187783064
  drwxrwxr-x 3 ed ed   4096 Sep 30 06:49 .
  drwxrwxr-x 6 ed ed   4096 Sep 30 06:49 ..
  drwxrwxr-x 3 ed ed   4096 Sep 30 06:49 cmake
  -rw-r--r-- 1 ed ed 855098 Sep 30 06:48 libip_4.a
  -rw-r--r-- 1 ed ed 888482 Sep 30 06:48 libip_8.a
  -rw-r--r-- 1 ed ed 854490 Sep 30 06:48 libip_d.a

tests for functions used in NCEPLIBS-ip

When I take NCEPLIBS-sp out of the NCEPLIBS-ip build, I get the following errors:

/usr/bin/ld: /home/ed/NCEPLIBS-ip/src/polates4.f90:263: undefined reference to `sptrunm_'
/usr/bin/ld: /home/ed/NCEPLIBS-ip/src/polates4.f90:270: undefined reference to `sptrung_'
/usr/bin/ld: /home/ed/NCEPLIBS-ip/src/polates4.f90:240: undefined reference to `sptruns_'
/usr/bin/ld: ../src/libip_4.a(gdswzd04_mod.f90.o): in function `__gdswzd04_mod_MOD_gdswzd04':
/home/ed/NCEPLIBS-ip/src/gdswzd04_mod.f90:177: undefined reference to `splat_'

So these functions would be a good place to start testing.

Rename gdswzd_c.F90 to gdswzd_c.f90

gdswzd_c.F90 is the only file with an "F90" extension. The rest have "f90".

The reason to use F90 is if we want pre-processing with the C pre-processor, which all modern Fortran compilers support (as far as a I know).

But we are not using any pre-processing symbols in gdswzd_c.F90 so it should use the same extension as all the other files.

interesting include directory names

Instead of the usual "include" directory, this package creates some interesting include directory names:

/home/ed/NCEPLIBS/NCEPLIBS-ip:
 total used in directory 24 available 187782844
 drwxrwxr-x 6 ed ed 4096 Sep 30 06:49 .
 drwxrwxr-x 7 ed ed 4096 Sep 30 06:49 ..
 drwxr-xr-x 2 ed ed 4096 Sep 30 06:49 include_4
 drwxr-xr-x 2 ed ed 4096 Sep 30 06:49 include_8
 drwxr-xr-x 2 ed ed 4096 Sep 30 06:49 include_d
 drwxrwxr-x 3 ed ed 4096 Sep 30 06:49 lib

Within the include_4 directory, I find:

  /home/ed/NCEPLIBS/NCEPLIBS-ip/include_4:
  total used in directory 40 available 187782720
  drwxr-xr-x 2 ed ed 4096 Sep 30 06:49 .
  drwxrwxr-x 6 ed ed 4096 Sep 30 06:49 ..
  -rw-r--r-- 1 ed ed  515 Sep 30 06:48 gdswzd00_mod.mod
  -rw-r--r-- 1 ed ed  516 Sep 30 06:48 gdswzd01_mod.mod
  -rw-r--r-- 1 ed ed  515 Sep 30 06:48 gdswzd03_mod.mod
  -rw-r--r-- 1 ed ed  531 Sep 30 06:48 gdswzd04_mod.mod
  -rw-r--r-- 1 ed ed  515 Sep 30 06:48 gdswzd05_mod.mod
  -rw-r--r-- 1 ed ed  516 Sep 30 06:48 gdswzdcb_mod.mod
  -rw-r--r-- 1 ed ed  515 Sep 30 06:48 gdswzdcd_mod.mod
  -rw-r--r-- 1 ed ed  531 Sep 30 06:48 gdswzd_mod.mod

Why all the mod files?

many doxygen warnings

Generating docs for file gdswzd_c.F90...
/home/ed/NCEPLIBS-ip/src/gdswzd_c.F90:7: warning: Member gdswzd_c(IGDTNUM, IGDTMPL, IGDTLEN, IOPT, NPTS, FILL, XPTS, YPTS, RLON, RLAT, NRET, CROT, SROT, XLON, XLAT, YLON, YLAT, AREA) (function) of module gdswzd_c_mod is not documented.
Generating docs for file gdswzd_mod.f90...
Generating docs for file ip_equid_cylind_grid_mod.f90...
/home/ed/NCEPLIBS-ip/src/ip_equid_cylind_grid_mod.f90:306: warning: Member equid_cylind_error(IOPT, FILL, RLAT, RLON, XPTS, YPTS, NPTS) (function) of module ip_equid_cylind_grid_mod is not documented.
/home/ed/NCEPLIBS-ip/src/ip_equid_cylind_grid_mod.f90:28: warning: Member dlat (variable) of module ip_equid_cylind_grid_mod is not documented.
/home/ed/NCEPLIBS-ip/src/ip_equid_cylind_grid_mod.f90:29: warning: Member dlon (variable) of module ip_equid_cylind_grid_mod is not documented.
/home/ed/NCEPLIBS-ip/src/ip_equid_cylind_grid_mod.f90:30: warning: Member rerth (variable) of module ip_equid_cylind_grid_mod is not documented.
Generating docs for file ip_gaussian_grid_mod.f90...
/home/ed/NCEPLIBS-ip/src/ip_gaussian_grid_mod.f90:351: warning: Member gaussian_error(IOPT, FILL, RLAT, RLON, XPTS, YPTS, NPTS) (function) of module ip_gaussian_grid_mod is not documented.
/home/ed/NCEPLIBS-ip/src/ip_gaussian_grid_mod.f90:31: warning: Member blat (variable) of module ip_gaussian_grid_mod is not documented.
/home/ed/NCEPLIBS-ip/src/ip_gaussian_grid_mod.f90:32: warning: Member dlon (variable) of module ip_gaussian_grid_mod is not documented.
/home/ed/NCEPLIBS-ip/src/ip_gaussian_grid_mod.f90:30: warning: Member j1 (variable) of module ip_gaussian_grid_mod is not documented.
/home/ed/NCEPLIBS-ip/src/ip_gaussian_grid_mod.f90:30: warning: Member jh (variable) of module ip_gaussian_grid_mod is not documented.
/home/ed/NCEPLIBS-ip/src/ip_gaussian_grid_mod.f90:32: warning: Member rerth (variable) of module ip_gaussian_grid_mod is not documented.
/home/ed/NCEPLIBS-ip/src/ip_gaussian_grid_mod.f90:33: warning: Member ylat_row (variable) of module ip_gaussian_grid_mod is not documented.
Generating docs for file ip_grid_descriptor_mod.f90...
Generating docs for file ip_grid_factory_mod.f90...
Generating docs for file ip_grid_mod.f90...
Generating docs for file ip_interpolators_mod.f90...
Generating docs for file ip_mod.f90...
Generating docs for file ip_rot_equid_cylind_egrid_mod.f90...
/home/ed/NCEPLIBS-ip/src/ip_rot_equid_cylind_egrid_mod.f90:423: warning: Member rot_equid_cylind_egrid_error(IOPT, FILL, RLAT, RLON, XPTS, YPTS, NPTS) (function) of module ip_rot_equid_cylind_egrid_mod is not documented.
/home/ed/NCEPLIBS-ip/src/ip_rot_equid_cylind_egrid_mod.f90:35: warning: Member clat (variable) of module ip_rot_equid_cylind_egrid_mod is not documented.
/home/ed/NCEPLIBS-ip/src/ip_rot_equid_cylind_egrid_mod.f90:35: warning: Member clat0 (variable) of module ip_rot_equid_cylind_egrid_mod is not documented.
/home/ed/NCEPLIBS-ip/src/ip_rot_equid_cylind_egrid_mod.f90:35: warning: Member clatr (variable) of module ip_rot_equid_cylind_egrid_mod is not documented.
/home/ed/NCEPLIBS-ip/src/ip_rot_equid_cylind_egrid_mod.f90:36: warning: Member clon (variable) of module ip_rot_equid_cylind_egrid_mod is not documented.
/home/ed/NCEPLIBS-ip/src/ip_rot_equid_cylind_egrid_mod.f90:36: warning: Member dlats (variable) of module ip_rot_equid_cylind_egrid_mod is not documented.
/home/ed/NCEPLIBS-ip/src/ip_rot_equid_cylind_egrid_mod.f90:36: warning: Member dlons (variable) of module ip_rot_equid_cylind_egrid_mod is not documented.
/home/ed/NCEPLIBS-ip/src/ip_rot_equid_cylind_egrid_mod.f90:33: warning: Member irot (variable) of module ip_rot_equid_cylind_egrid_mod is not documented.
/home/ed/NCEPLIBS-ip/src/ip_rot_equid_cylind_egrid_mod.f90:21: warning: Member kd (variable) of module ip_rot_equid_cylind_egrid_mod is not documented.
/home/ed/NCEPLIBS-ip/src/ip_rot_equid_cylind_egrid_mod.f90:36: warning: Member rerth (variable) of module ip_rot_equid_cylind_egrid_mod is not documented.
/home/ed/NCEPLIBS-ip/src/ip_rot_equid_cylind_egrid_mod.f90:37: warning: Member rlon0 (variable) of module ip_rot_equid_cylind_egrid_mod is not documented.
/home/ed/NCEPLIBS-ip/src/ip_rot_equid_cylind_egrid_mod.f90:37: warning: Member slat (variable) of module ip_rot_equid_cylind_egrid_mod is not documented.
/home/ed/NCEPLIBS-ip/src/ip_rot_equid_cylind_egrid_mod.f90:37: warning: Member slat0 (variable) of module ip_rot_equid_cylind_egrid_mod is not documented.
/home/ed/NCEPLIBS-ip/src/ip_rot_equid_cylind_egrid_mod.f90:37: warning: Member slatr (variable) of module ip_rot_equid_cylind_egrid_mod is not documented.
Generating docs for file ipolates.f90...
Generating docs for file ipolatev.f90...
Generating docs for file spectral_interp_mod.f90...
/home/ed/NCEPLIBS-ip/src/spectral_interp_mod.f90:28: warning: Member interpolate_spectral_scalar(IPOPT, grid_in, grid_out, MI, MO, KM, IBI, GI, NO, RLAT, RLON, IBO, LO, GO, IRET) (function) of module spectral_interp_mod is not documented.
/home/ed/NCEPLIBS-ip/src/spectral_interp_mod.f90:64: warning: Member interpolate_spectral_vector(IPOPT, grid_in, grid_out, MI, MO, KM, IBI, UI, VI, NO, RLAT, RLON, CROT, SROT, IBO, LO, UO, VO, IRET) (function) of module spectral_interp_mod is not documented.
/home/ed/NCEPLIBS-ip/src/spectral_interp_mod.f90:102: warning: Member polates4_grib2(IPOPT, IGDTNUMI, IGDTMPLI, IGDTLENI, IGDTNUMO, IGDTMPLO, IGDTLENO, MI, MO, KM, IBI, GI, NO, RLAT, RLON, IBO, LO, GO, IRET) (function) of module spectral_interp_mod is not documented.
/home/ed/NCEPLIBS-ip/src/spectral_interp_mod.f90:755: warning: Member polatev4_grib2(IPOPT, IGDTNUMI, IGDTMPLI, IGDTLENI, IGDTNUMO, IGDTMPLO, IGDTLENO, MI, MO, KM, IBI, UI, VI, NO, RLAT, RLON, CROT, SROT, IBO, LO, UO, VO, IRET) (function) of module spectral_interp_mod is not documented.
/home/ed/NCEPLIBS-ip/src/spectral_interp_mod.f90:466: warning: argument 'li' of command @param is not found in the argument list of spectral_interp_mod::polates4_grib1(integer, dimension(20), intent(in) IPOPT, integer, dimension(200), intent(in) KGDSI, integer, dimension(200), intent(in) KGDSO, integer, intent(in) MI, integer, intent(in) MO, integer, intent(in) KM, integer, dimension(km), intent(in) IBI, real, dimension(mi, km), intent(in) GI, integer NO, real, dimension(mo), intent(inout) RLAT, real, dimension(mo), intent(inout) RLON, integer, dimension(km), intent(out) IBO, logical *1, dimension(mo, km), intent(out) LO, real, dimension(mo, km), intent(out) GO, integer, intent(out) IRET)
/home/ed/NCEPLIBS-ip/src/spectral_interp_mod.f90:1156: warning: argument 'li' of command @param is not found in the argument list of spectral_interp_mod::polatev4_grib1(integer, dimension(20), intent(in) IPOPT, integer, dimension(200), intent(in) KGDSI, integer, dimension(200), intent(in) KGDSO, integer, intent(in) MI, integer, intent(in) MO, integer, intent(in) KM, integer, dimension(km), intent(in) IBI, real, dimension(mi, km), intent(in) UI, real, dimension(mi, km), intent(in) VI, integer NO, real, dimension(mo), intent(inout) RLAT, real, dimension(mo), intent(inout) RLON, real, dimension(mo), intent(out) CROT, real, dimension(mo), intent(out) SROT, integer, dimension(km), intent(out) IBO, logical *1, dimension(mo, km), intent(out) LO, real, dimension(mo, km), intent(out) UO, real, dimension(mo, km), intent(out) VO, integer, intent(out) IRET)
Generating page documentation...
Generating docs for page md__home_ed_NCEPLIBS_ip_docs_user_guide...
Generating group documentation...
Generating class documentation...
Generating namespace index...
Generating docs for namespace bicubic_interp_mod
Generating docs for compound bicubic_interp_mod::interpolate_bicubic...
Generating docs for namespace bilinear_interp_mod
Generating docs for compound bilinear_interp_mod::interpolate_bilinear...
Generating docs for namespace budget_interp_mod
/home/ed/NCEPLIBS-ip/src/budget_interp_mod.f90:409: warning: The following parameter of budget_interp_mod::interpolate_budget_vector(integer, dimension(20), intent(in) IPOPT, class(ip_grid), intent(in) grid_in, class(ip_grid), intent(in) grid_out, integer, intent(in) MI, integer, intent(in) MO, integer, intent(in) KM, integer, dimension(km), intent(in) IBI, logical *1, dimension(mi, km), intent(in) LI, real, dimension(mi, km), intent(in) UI, real, dimension(mi, km), intent(in) VI, integer, intent(out) NO, real, dimension(mo), intent(inout) RLAT, real, dimension(mo), intent(inout) RLON, real, dimension(mo), intent(out) CROT, real, dimension(mo), intent(out) SROT, integer, dimension(km), intent(out) IBO, logical *1, dimension(mo, km), intent(out) LO, real, dimension(mo, km), intent(out) UO, real, dimension(mo, km), intent(out) VO, integer, intent(out) IRET) is not documented:
  parameter 'ipopt'
Generating docs for compound budget_interp_mod::interpolate_budget...
/home/ed/NCEPLIBS-ip/src/budget_interp_mod.f90:409: warning: The following parameter of budget_interp_mod::interpolate_budget::interpolate_budget_vector(integer, dimension(20), intent(in) IPOPT, class(ip_grid), intent(in) grid_in, class(ip_grid), intent(in) grid_out, integer, intent(in) MI, integer, intent(in) MO, integer, intent(in) KM, integer, dimension(km), intent(in) IBI, logical *1, dimension(mi, km), intent(in) LI, real, dimension(mi, km), intent(in) UI, real, dimension(mi, km), intent(in) VI, integer, intent(out) NO, real, dimension(mo), intent(inout) RLAT, real, dimension(mo), intent(inout) RLON, real, dimension(mo), intent(out) CROT, real, dimension(mo), intent(out) SROT, integer, dimension(km), intent(out) IBO, logical *1, dimension(mo, km), intent(out) LO, real, dimension(mo, km), intent(out) UO, real, dimension(mo, km), intent(out) VO, integer, intent(out) IRET) is not documented:
  parameter 'ipopt'
Generating docs for namespace constants_mod
Generating docs for namespace gdswzd_mod
/home/ed/NCEPLIBS-ip/src/gdswzd_mod.f90:663: warning: argument 'xlon' from the argument list of gdswzd_mod::gdswzd_1d_array has multiple @param documentation sections
/home/ed/NCEPLIBS-ip/src/gdswzd_mod.f90:456: warning: argument 'xlon' from the argument list of gdswzd_mod::gdswzd_2d_array has multiple @param documentation sections
/home/ed/NCEPLIBS-ip/src/gdswzd_mod.f90:850: warning: argument 'xlon' from the argument list of gdswzd_mod::gdswzd_2d_array_grib1 has multiple @param documentation sections
/home/ed/NCEPLIBS-ip/src/gdswzd_mod.f90:757: warning: argument 'xlon' from the argument list of gdswzd_mod::gdswzd_grib1 has multiple @param documentation sections
/home/ed/NCEPLIBS-ip/src/gdswzd_mod.f90:108: warning: argument 'xlon' from the argument list of gdswzd_mod::gdswzd_grid has multiple @param documentation sections
/home/ed/NCEPLIBS-ip/src/gdswzd_mod.f90:274: warning: argument 'xlon' from the argument list of gdswzd_mod::gdswzd_scalar has multiple @param documentation sections
Generating docs for compound gdswzd_mod::gdswzd...
/home/ed/NCEPLIBS-ip/src/gdswzd_mod.f90:663: warning: argument 'xlon' from the argument list of gdswzd_mod::gdswzd::gdswzd_1d_array has multiple @param documentation sections
/home/ed/NCEPLIBS-ip/src/gdswzd_mod.f90:456: warning: argument 'xlon' from the argument list of gdswzd_mod::gdswzd::gdswzd_2d_array has multiple @param documentation sections
/home/ed/NCEPLIBS-ip/src/gdswzd_mod.f90:850: warning: argument 'xlon' from the argument list of gdswzd_mod::gdswzd::gdswzd_2d_array_grib1 has multiple @param documentation sections
/home/ed/NCEPLIBS-ip/src/gdswzd_mod.f90:757: warning: argument 'xlon' from the argument list of gdswzd_mod::gdswzd::gdswzd_grib1 has multiple @param documentation sections
/home/ed/NCEPLIBS-ip/src/gdswzd_mod.f90:108: warning: argument 'xlon' from the argument list of gdswzd_mod::gdswzd::gdswzd_grid has multiple @param documentation sections
/home/ed/NCEPLIBS-ip/src/gdswzd_mod.f90:274: warning: argument 'xlon' from the argument list of gdswzd_mod::gdswzd::gdswzd_scalar has multiple @param documentation sections
Generating docs for namespace ip_equid_cylind_grid_mod
/home/ed/NCEPLIBS-ip/src/ip_equid_cylind_grid_mod.f90:306: warning: Member equid_cylind_error(IOPT, FILL, RLAT, RLON, XPTS, YPTS, NPTS) (function) of module ip_equid_cylind_grid_mod is not documented.
/home/ed/NCEPLIBS-ip/src/ip_equid_cylind_grid_mod.f90:28: warning: Member dlat (variable) of module ip_equid_cylind_grid_mod is not documented.
/home/ed/NCEPLIBS-ip/src/ip_equid_cylind_grid_mod.f90:29: warning: Member dlon (variable) of module ip_equid_cylind_grid_mod is not documented.
/home/ed/NCEPLIBS-ip/src/ip_equid_cylind_grid_mod.f90:30: warning: Member rerth (variable) of module ip_equid_cylind_grid_mod is not documented.
/home/ed/NCEPLIBS-ip/src/ip_equid_cylind_grid_mod.f90:380: warning: argument 'ypts' of command @param is not found in the argument list of ip_equid_cylind_grid_mod::equid_cylind_map_jacob(real, intent(out) XLON, real, intent(out) XLAT, real, intent(out) YLON, real, intent(out) YLAT)
Generating docs for compound ip_equid_cylind_grid_mod::ip_equid_cylind_grid...
sh: 1: epstopdf: not found
error: Problems running epstopdf. Check your TeX installation!
/home/ed/NCEPLIBS-ip/src/ip_equid_cylind_grid_mod.f90:25: warning: Member gdswzd=> gdswzd_equid_cylind (function) of type ip_equid_cylind_grid_mod::ip_equid_cylind_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_grid_mod.f90:75: warning: Member init=> init_grib1, init_grib2 (function) of type ip_grid_mod::ip_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_equid_cylind_grid_mod.f90:23: warning: Member init_grib1 (function) of type ip_equid_cylind_grid_mod::ip_equid_cylind_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_equid_cylind_grid_mod.f90:24: warning: Member init_grib2 (function) of type ip_equid_cylind_grid_mod::ip_equid_cylind_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_grid_mod.f90:46: warning: Member descriptor (variable) of type ip_grid_mod::ip_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_equid_cylind_grid_mod.f90:21: warning: Member dlat (variable) of type ip_equid_cylind_grid_mod::ip_equid_cylind_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_equid_cylind_grid_mod.f90:21: warning: Member dlon (variable) of type ip_equid_cylind_grid_mod::ip_equid_cylind_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_equid_cylind_grid_mod.f90:20: warning: Member hi (variable) of type ip_equid_cylind_grid_mod::ip_equid_cylind_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_equid_cylind_grid_mod.f90:20: warning: Member rlat1 (variable) of type ip_equid_cylind_grid_mod::ip_equid_cylind_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_equid_cylind_grid_mod.f90:20: warning: Member rlat2 (variable) of type ip_equid_cylind_grid_mod::ip_equid_cylind_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_equid_cylind_grid_mod.f90:20: warning: Member rlon1 (variable) of type ip_equid_cylind_grid_mod::ip_equid_cylind_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_equid_cylind_grid_mod.f90:20: warning: Member rlon2 (variable) of type ip_equid_cylind_grid_mod::ip_equid_cylind_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_grid_mod.f90:74: warning: return type of member ip_grid_mod::ip_grid::field_pos is not documented
Generating docs for namespace ip_gaussian_grid_mod
/home/ed/NCEPLIBS-ip/src/ip_gaussian_grid_mod.f90:351: warning: Member gaussian_error(IOPT, FILL, RLAT, RLON, XPTS, YPTS, NPTS) (function) of module ip_gaussian_grid_mod is not documented.
/home/ed/NCEPLIBS-ip/src/ip_gaussian_grid_mod.f90:31: warning: Member blat (variable) of module ip_gaussian_grid_mod is not documented.
/home/ed/NCEPLIBS-ip/src/ip_gaussian_grid_mod.f90:32: warning: Member dlon (variable) of module ip_gaussian_grid_mod is not documented.
/home/ed/NCEPLIBS-ip/src/ip_gaussian_grid_mod.f90:30: warning: Member j1 (variable) of module ip_gaussian_grid_mod is not documented.
/home/ed/NCEPLIBS-ip/src/ip_gaussian_grid_mod.f90:30: warning: Member jh (variable) of module ip_gaussian_grid_mod is not documented.
/home/ed/NCEPLIBS-ip/src/ip_gaussian_grid_mod.f90:32: warning: Member rerth (variable) of module ip_gaussian_grid_mod is not documented.
/home/ed/NCEPLIBS-ip/src/ip_gaussian_grid_mod.f90:33: warning: Member ylat_row (variable) of module ip_gaussian_grid_mod is not documented.
Generating docs for compound ip_gaussian_grid_mod::ip_gaussian_grid...
sh: 1: epstopdf: not found
error: Problems running epstopdf. Check your TeX installation!
/home/ed/NCEPLIBS-ip/src/ip_gaussian_grid_mod.f90:27: warning: Member gdswzd=> gdswzd_gaussian (function) of type ip_gaussian_grid_mod::ip_gaussian_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_grid_mod.f90:75: warning: Member init=> init_grib1, init_grib2 (function) of type ip_grid_mod::ip_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_gaussian_grid_mod.f90:25: warning: Member init_grib1 (function) of type ip_gaussian_grid_mod::ip_gaussian_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_gaussian_grid_mod.f90:26: warning: Member init_grib2 (function) of type ip_gaussian_grid_mod::ip_gaussian_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_grid_mod.f90:46: warning: Member descriptor (variable) of type ip_grid_mod::ip_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_gaussian_grid_mod.f90:22: warning: Member dlon (variable) of type ip_gaussian_grid_mod::ip_gaussian_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_gaussian_grid_mod.f90:22: warning: Member hi (variable) of type ip_gaussian_grid_mod::ip_gaussian_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_gaussian_grid_mod.f90:23: warning: Member jg (variable) of type ip_gaussian_grid_mod::ip_gaussian_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_gaussian_grid_mod.f90:21: warning: Member jh (variable) of type ip_gaussian_grid_mod::ip_gaussian_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_gaussian_grid_mod.f90:23: warning: Member jscan (variable) of type ip_gaussian_grid_mod::ip_gaussian_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_gaussian_grid_mod.f90:22: warning: Member rlat1 (variable) of type ip_gaussian_grid_mod::ip_gaussian_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_gaussian_grid_mod.f90:22: warning: Member rlon1 (variable) of type ip_gaussian_grid_mod::ip_gaussian_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_gaussian_grid_mod.f90:22: warning: Member rlon2 (variable) of type ip_gaussian_grid_mod::ip_gaussian_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_grid_mod.f90:74: warning: return type of member ip_grid_mod::ip_grid::field_pos is not documented
Generating docs for namespace ip_grid_descriptor_mod
/home/ed/NCEPLIBS-ip/src/ip_grid_descriptor_mod.f90:82: warning: argument 'gds' of command @param is not found in the argument list of ip_grid_descriptor_mod::init_grib2_descriptor(integer, intent(in) gdt_num, integer, intent(in) gdt_len, integer, dimension(:), intent(in) gdt_tmpl)
/home/ed/NCEPLIBS-ip/src/ip_grid_descriptor_mod.f90:90: warning: The following parameter of ip_grid_descriptor_mod::init_grib2_descriptor(integer, intent(in) gdt_num, integer, intent(in) gdt_len, integer, dimension(:), intent(in) gdt_tmpl) is not documented:
  parameter 'gdt_tmpl'
Generating docs for compound ip_grid_descriptor_mod::grib1_descriptor...
sh: 1: epstopdf: not found
error: Problems running epstopdf. Check your TeX installation!
/home/ed/NCEPLIBS-ip/src/ip_grid_descriptor_mod.f90:31: warning: Member is_same_grid (function) of type ip_grid_descriptor_mod::ip_grid_descriptor is not documented.
/home/ed/NCEPLIBS-ip/src/ip_grid_descriptor_mod.f90:40: warning: Member is_same_grid_grib1 (function) of type ip_grid_descriptor_mod::grib1_descriptor is not documented.
Generating docs for compound ip_grid_descriptor_mod::grib2_descriptor...
sh: 1: epstopdf: not found
error: Problems running epstopdf. Check your TeX installation!
/home/ed/NCEPLIBS-ip/src/ip_grid_descriptor_mod.f90:31: warning: Member is_same_grid (function) of type ip_grid_descriptor_mod::ip_grid_descriptor is not documented.
/home/ed/NCEPLIBS-ip/src/ip_grid_descriptor_mod.f90:50: warning: Member is_same_grid_grib2 (function) of type ip_grid_descriptor_mod::grib2_descriptor is not documented.
Generating docs for compound ip_grid_descriptor_mod::init_descriptor...
<unknown>:1: warning: argument 'gds' of command @param is not found in the argument list of ip_grid_descriptor_mod::init_descriptor::init_grib2_descriptor(integer, intent(in) gdt_num, integer, intent(in) gdt_len, integer, dimension(:), intent(in) gdt_tmpl)
/home/ed/NCEPLIBS-ip/src/ip_grid_descriptor_mod.f90:90: warning: The following parameter of ip_grid_descriptor_mod::init_descriptor::init_grib2_descriptor(integer, intent(in) gdt_num, integer, intent(in) gdt_len, integer, dimension(:), intent(in) gdt_tmpl) is not documented:
  parameter 'gdt_tmpl'
Generating docs for compound ip_grid_descriptor_mod::ip_grid_descriptor...
sh: 1: epstopdf: not found
error: Problems running epstopdf. Check your TeX installation!
/home/ed/NCEPLIBS-ip/src/ip_grid_descriptor_mod.f90:31: warning: Member is_same_grid (function) of type ip_grid_descriptor_mod::ip_grid_descriptor is not documented.
Generating docs for compound ip_grid_descriptor_mod::operator(==)...
Generating docs for namespace ip_grid_factory_mod
Generating docs for compound ip_grid_factory_mod::init_grid...
Generating docs for namespace ip_grid_mod
Generating docs for compound ip_grid_mod::gdswzd_interface...
/home/ed/NCEPLIBS-ip/src/ip_grid_mod.f90:79: warning: Member gdswzd_interface(self, iopt, npts, fill, xpts, ypts, rlon, rlat, nret, crot, srot, xlon, xlat, ylon, ylat, area) (function) of interface ip_grid_mod::gdswzd_interface is not documented.
Generating docs for compound ip_grid_mod::init_grib1_interface...
/home/ed/NCEPLIBS-ip/src/ip_grid_mod.f90:94: warning: Member init_grib1_interface(self, g1_desc) (function) of interface ip_grid_mod::init_grib1_interface is not documented.
Generating docs for compound ip_grid_mod::init_grib2_interface...
/home/ed/NCEPLIBS-ip/src/ip_grid_mod.f90:100: warning: Member init_grib2_interface(self, g2_desc) (function) of interface ip_grid_mod::init_grib2_interface is not documented.
Generating docs for compound ip_grid_mod::ip_grid...
sh: 1: epstopdf: not found
error: Problems running epstopdf. Check your TeX installation!
/home/ed/NCEPLIBS-ip/src/ip_grid_mod.f90:75: warning: Member init=> init_grib1, init_grib2 (function) of type ip_grid_mod::ip_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_grid_mod.f90:46: warning: Member descriptor (variable) of type ip_grid_mod::ip_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_grid_mod.f90:74: warning: return type of member ip_grid_mod::ip_grid::field_pos is not documented
/home/ed/NCEPLIBS-ip/src/ip_grid_mod.f90:72: warning: return type of member ip_grid_mod::ip_grid::gdswzd is not documented
/home/ed/NCEPLIBS-ip/src/ip_grid_mod.f90:68: warning: return type of member ip_grid_mod::ip_grid::init_grib1 is not documented
/home/ed/NCEPLIBS-ip/src/ip_grid_mod.f90:70: warning: return type of member ip_grid_mod::ip_grid::init_grib2 is not documented
Generating docs for compound ip_grid_mod::operator(==)...
Generating docs for namespace ip_interpolators_mod
Generating docs for compound ip_lambert_conf_grid_mod::ip_lambert_conf_grid...
sh: 1: epstopdf: not found
error: Problems running epstopdf. Check your TeX installation!
/home/ed/NCEPLIBS-ip/src/ip_lambert_conf_grid_mod.f90:18: warning: Member gdswzd=> gdswzd_lambert_conf (function) of type ip_lambert_conf_grid_mod::ip_lambert_conf_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_grid_mod.f90:75: warning: Member init=> init_grib1, init_grib2 (function) of type ip_grid_mod::ip_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_lambert_conf_grid_mod.f90:16: warning: Member init_grib1 (function) of type ip_lambert_conf_grid_mod::ip_lambert_conf_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_lambert_conf_grid_mod.f90:17: warning: Member init_grib2 (function) of type ip_lambert_conf_grid_mod::ip_lambert_conf_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_grid_mod.f90:46: warning: Member descriptor (variable) of type ip_grid_mod::ip_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_lambert_conf_grid_mod.f90:13: warning: Member dxs (variable) of type ip_lambert_conf_grid_mod::ip_lambert_conf_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_lambert_conf_grid_mod.f90:13: warning: Member dys (variable) of type ip_lambert_conf_grid_mod::ip_lambert_conf_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_lambert_conf_grid_mod.f90:13: warning: Member h (variable) of type ip_lambert_conf_grid_mod::ip_lambert_conf_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_lambert_conf_grid_mod.f90:14: warning: Member irot (variable) of type ip_lambert_conf_grid_mod::ip_lambert_conf_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_lambert_conf_grid_mod.f90:12: warning: Member orient (variable) of type ip_lambert_conf_grid_mod::ip_lambert_conf_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_lambert_conf_grid_mod.f90:12: warning: Member rlat1 (variable) of type ip_lambert_conf_grid_mod::ip_lambert_conf_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_lambert_conf_grid_mod.f90:12: warning: Member rlati1 (variable) of type ip_lambert_conf_grid_mod::ip_lambert_conf_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_lambert_conf_grid_mod.f90:12: warning: Member rlati2 (variable) of type ip_lambert_conf_grid_mod::ip_lambert_conf_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_lambert_conf_grid_mod.f90:12: warning: Member rlon1 (variable) of type ip_lambert_conf_grid_mod::ip_lambert_conf_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_grid_mod.f90:74: warning: return type of member ip_grid_mod::ip_grid::field_pos is not documented
Generating docs for compound ip_mercator_grid_mod::ip_mercator_grid...
sh: 1: epstopdf: not found
error: Problems running epstopdf. Check your TeX installation!
/home/ed/NCEPLIBS-ip/src/ip_mercator_grid_mod.f90:16: warning: Member gdswzd=> gdswzd_mercator (function) of type ip_mercator_grid_mod::ip_mercator_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_grid_mod.f90:75: warning: Member init=> init_grib1, init_grib2 (function) of type ip_grid_mod::ip_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_mercator_grid_mod.f90:14: warning: Member init_grib1 (function) of type ip_mercator_grid_mod::ip_mercator_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_mercator_grid_mod.f90:15: warning: Member init_grib2 (function) of type ip_mercator_grid_mod::ip_mercator_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_grid_mod.f90:46: warning: Member descriptor (variable) of type ip_grid_mod::ip_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_mercator_grid_mod.f90:12: warning: Member dlon (variable) of type ip_mercator_grid_mod::ip_mercator_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_mercator_grid_mod.f90:12: warning: Member dphi (variable) of type ip_mercator_grid_mod::ip_mercator_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_mercator_grid_mod.f90:12: warning: Member hi (variable) of type ip_mercator_grid_mod::ip_mercator_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_mercator_grid_mod.f90:12: warning: Member rlat1 (variable) of type ip_mercator_grid_mod::ip_mercator_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_mercator_grid_mod.f90:12: warning: Member rlati (variable) of type ip_mercator_grid_mod::ip_mercator_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_mercator_grid_mod.f90:12: warning: Member rlon1 (variable) of type ip_mercator_grid_mod::ip_mercator_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_mercator_grid_mod.f90:12: warning: Member rlon2 (variable) of type ip_mercator_grid_mod::ip_mercator_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_grid_mod.f90:74: warning: return type of member ip_grid_mod::ip_grid::field_pos is not documented
Generating docs for namespace ip_mod
Generating docs for compound ip_polar_stereo_grid_mod::ip_polar_stereo_grid...
sh: 1: epstopdf: not found
error: Problems running epstopdf. Check your TeX installation!
/home/ed/NCEPLIBS-ip/src/ip_polar_stereo_grid_mod.f90:18: warning: Member gdswzd=> gdswzd_polar_stereo (function) of type ip_polar_stereo_grid_mod::ip_polar_stereo_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_grid_mod.f90:75: warning: Member init=> init_grib1, init_grib2 (function) of type ip_grid_mod::ip_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_polar_stereo_grid_mod.f90:16: warning: Member init_grib1 (function) of type ip_polar_stereo_grid_mod::ip_polar_stereo_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_polar_stereo_grid_mod.f90:17: warning: Member init_grib2 (function) of type ip_polar_stereo_grid_mod::ip_polar_stereo_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_grid_mod.f90:46: warning: Member descriptor (variable) of type ip_grid_mod::ip_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_polar_stereo_grid_mod.f90:13: warning: Member dxs (variable) of type ip_polar_stereo_grid_mod::ip_polar_stereo_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_polar_stereo_grid_mod.f90:13: warning: Member dys (variable) of type ip_polar_stereo_grid_mod::ip_polar_stereo_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_polar_stereo_grid_mod.f90:12: warning: Member elliptical (variable) of type ip_polar_stereo_grid_mod::ip_polar_stereo_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_polar_stereo_grid_mod.f90:13: warning: Member h (variable) of type ip_polar_stereo_grid_mod::ip_polar_stereo_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_polar_stereo_grid_mod.f90:14: warning: Member irot (variable) of type ip_polar_stereo_grid_mod::ip_polar_stereo_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_polar_stereo_grid_mod.f90:13: warning: Member orient (variable) of type ip_polar_stereo_grid_mod::ip_polar_stereo_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_polar_stereo_grid_mod.f90:13: warning: Member rlat1 (variable) of type ip_polar_stereo_grid_mod::ip_polar_stereo_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_polar_stereo_grid_mod.f90:13: warning: Member rlon1 (variable) of type ip_polar_stereo_grid_mod::ip_polar_stereo_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_polar_stereo_grid_mod.f90:13: warning: Member slatr (variable) of type ip_polar_stereo_grid_mod::ip_polar_stereo_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_grid_mod.f90:74: warning: return type of member ip_grid_mod::ip_grid::field_pos is not documented
Generating docs for namespace ip_rot_equid_cylind_egrid_mod
/home/ed/NCEPLIBS-ip/src/ip_rot_equid_cylind_egrid_mod.f90:423: warning: Member rot_equid_cylind_egrid_error(IOPT, FILL, RLAT, RLON, XPTS, YPTS, NPTS) (function) of module ip_rot_equid_cylind_egrid_mod is not documented.
/home/ed/NCEPLIBS-ip/src/ip_rot_equid_cylind_egrid_mod.f90:35: warning: Member clat (variable) of module ip_rot_equid_cylind_egrid_mod is not documented.
/home/ed/NCEPLIBS-ip/src/ip_rot_equid_cylind_egrid_mod.f90:35: warning: Member clat0 (variable) of module ip_rot_equid_cylind_egrid_mod is not documented.
/home/ed/NCEPLIBS-ip/src/ip_rot_equid_cylind_egrid_mod.f90:35: warning: Member clatr (variable) of module ip_rot_equid_cylind_egrid_mod is not documented.
/home/ed/NCEPLIBS-ip/src/ip_rot_equid_cylind_egrid_mod.f90:36: warning: Member clon (variable) of module ip_rot_equid_cylind_egrid_mod is not documented.
/home/ed/NCEPLIBS-ip/src/ip_rot_equid_cylind_egrid_mod.f90:36: warning: Member dlats (variable) of module ip_rot_equid_cylind_egrid_mod is not documented.
/home/ed/NCEPLIBS-ip/src/ip_rot_equid_cylind_egrid_mod.f90:36: warning: Member dlons (variable) of module ip_rot_equid_cylind_egrid_mod is not documented.
/home/ed/NCEPLIBS-ip/src/ip_rot_equid_cylind_egrid_mod.f90:33: warning: Member irot (variable) of module ip_rot_equid_cylind_egrid_mod is not documented.
/home/ed/NCEPLIBS-ip/src/ip_rot_equid_cylind_egrid_mod.f90:21: warning: Member kd (variable) of module ip_rot_equid_cylind_egrid_mod is not documented.
/home/ed/NCEPLIBS-ip/src/ip_rot_equid_cylind_egrid_mod.f90:36: warning: Member rerth (variable) of module ip_rot_equid_cylind_egrid_mod is not documented.
/home/ed/NCEPLIBS-ip/src/ip_rot_equid_cylind_egrid_mod.f90:37: warning: Member rlon0 (variable) of module ip_rot_equid_cylind_egrid_mod is not documented.
/home/ed/NCEPLIBS-ip/src/ip_rot_equid_cylind_egrid_mod.f90:37: warning: Member slat (variable) of module ip_rot_equid_cylind_egrid_mod is not documented.
/home/ed/NCEPLIBS-ip/src/ip_rot_equid_cylind_egrid_mod.f90:37: warning: Member slat0 (variable) of module ip_rot_equid_cylind_egrid_mod is not documented.
/home/ed/NCEPLIBS-ip/src/ip_rot_equid_cylind_egrid_mod.f90:37: warning: Member slatr (variable) of module ip_rot_equid_cylind_egrid_mod is not documented.
Generating docs for compound ip_rot_equid_cylind_egrid_mod::ip_rot_equid_cylind_egrid...
sh: 1: epstopdf: not found
error: Problems running epstopdf. Check your TeX installation!
/home/ed/NCEPLIBS-ip/src/ip_rot_equid_cylind_egrid_mod.f90:30: warning: Member gdswzd=> gdswzd_rot_equid_cylind_egrid (function) of type ip_rot_equid_cylind_egrid_mod::ip_rot_equid_cylind_egrid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_grid_mod.f90:75: warning: Member init=> init_grib1, init_grib2 (function) of type ip_grid_mod::ip_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_rot_equid_cylind_egrid_mod.f90:28: warning: Member init_grib1 (function) of type ip_rot_equid_cylind_egrid_mod::ip_rot_equid_cylind_egrid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_rot_equid_cylind_egrid_mod.f90:29: warning: Member init_grib2 (function) of type ip_rot_equid_cylind_egrid_mod::ip_rot_equid_cylind_egrid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_rot_equid_cylind_egrid_mod.f90:24: warning: Member clat0 (variable) of type ip_rot_equid_cylind_egrid_mod::ip_rot_equid_cylind_egrid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_grid_mod.f90:46: warning: Member descriptor (variable) of type ip_grid_mod::ip_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_rot_equid_cylind_egrid_mod.f90:25: warning: Member dlats (variable) of type ip_rot_equid_cylind_egrid_mod::ip_rot_equid_cylind_egrid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_rot_equid_cylind_egrid_mod.f90:25: warning: Member dlons (variable) of type ip_rot_equid_cylind_egrid_mod::ip_rot_equid_cylind_egrid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_rot_equid_cylind_egrid_mod.f90:25: warning: Member hi (variable) of type ip_rot_equid_cylind_egrid_mod::ip_rot_equid_cylind_egrid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_rot_equid_cylind_egrid_mod.f90:26: warning: Member irot (variable) of type ip_rot_equid_cylind_egrid_mod::ip_rot_equid_cylind_egrid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_rot_equid_cylind_egrid_mod.f90:24: warning: Member rlat1 (variable) of type ip_rot_equid_cylind_egrid_mod::ip_rot_equid_cylind_egrid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_rot_equid_cylind_egrid_mod.f90:24: warning: Member rlon0 (variable) of type ip_rot_equid_cylind_egrid_mod::ip_rot_equid_cylind_egrid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_rot_equid_cylind_egrid_mod.f90:24: warning: Member rlon1 (variable) of type ip_rot_equid_cylind_egrid_mod::ip_rot_equid_cylind_egrid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_rot_equid_cylind_egrid_mod.f90:24: warning: Member slat0 (variable) of type ip_rot_equid_cylind_egrid_mod::ip_rot_equid_cylind_egrid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_grid_mod.f90:74: warning: return type of member ip_grid_mod::ip_grid::field_pos is not documented
Generating docs for compound ip_rot_equid_cylind_grid_mod::ip_rot_equid_cylind_grid...
sh: 1: epstopdf: not found
error: Problems running epstopdf. Check your TeX installation!
/home/ed/NCEPLIBS-ip/src/ip_rot_equid_cylind_grid_mod.f90:20: warning: Member gdswzd=> gdswzd_rot_equid_cylind (function) of type ip_rot_equid_cylind_grid_mod::ip_rot_equid_cylind_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_grid_mod.f90:75: warning: Member init=> init_grib1, init_grib2 (function) of type ip_grid_mod::ip_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_rot_equid_cylind_grid_mod.f90:18: warning: Member init_grib1 (function) of type ip_rot_equid_cylind_grid_mod::ip_rot_equid_cylind_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_rot_equid_cylind_grid_mod.f90:19: warning: Member init_grib2 (function) of type ip_rot_equid_cylind_grid_mod::ip_rot_equid_cylind_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_rot_equid_cylind_grid_mod.f90:15: warning: Member clat0 (variable) of type ip_rot_equid_cylind_grid_mod::ip_rot_equid_cylind_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_grid_mod.f90:46: warning: Member descriptor (variable) of type ip_grid_mod::ip_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_rot_equid_cylind_grid_mod.f90:15: warning: Member dlats (variable) of type ip_rot_equid_cylind_grid_mod::ip_rot_equid_cylind_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_rot_equid_cylind_grid_mod.f90:15: warning: Member dlons (variable) of type ip_rot_equid_cylind_grid_mod::ip_rot_equid_cylind_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_rot_equid_cylind_grid_mod.f90:16: warning: Member irot (variable) of type ip_rot_equid_cylind_grid_mod::ip_rot_equid_cylind_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_rot_equid_cylind_grid_mod.f90:15: warning: Member rlon0 (variable) of type ip_rot_equid_cylind_grid_mod::ip_rot_equid_cylind_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_rot_equid_cylind_grid_mod.f90:15: warning: Member sbd (variable) of type ip_rot_equid_cylind_grid_mod::ip_rot_equid_cylind_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_rot_equid_cylind_grid_mod.f90:15: warning: Member slat0 (variable) of type ip_rot_equid_cylind_grid_mod::ip_rot_equid_cylind_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_rot_equid_cylind_grid_mod.f90:15: warning: Member wbd (variable) of type ip_rot_equid_cylind_grid_mod::ip_rot_equid_cylind_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_grid_mod.f90:74: warning: return type of member ip_grid_mod::ip_grid::field_pos is not documented
Generating docs for compound ip_station_points_grid_mod::ip_station_points_grid...
sh: 1: epstopdf: not found
error: Problems running epstopdf. Check your TeX installation!
/home/ed/NCEPLIBS-ip/src/ip_station_points_grid_mod.f90:14: warning: Member gdswzd=> gdswzd_station_points (function) of type ip_station_points_grid_mod::ip_station_points_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_grid_mod.f90:75: warning: Member init=> init_grib1, init_grib2 (function) of type ip_grid_mod::ip_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_station_points_grid_mod.f90:12: warning: Member init_grib1 (function) of type ip_station_points_grid_mod::ip_station_points_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_station_points_grid_mod.f90:13: warning: Member init_grib2 (function) of type ip_station_points_grid_mod::ip_station_points_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_grid_mod.f90:46: warning: Member descriptor (variable) of type ip_grid_mod::ip_grid is not documented.
/home/ed/NCEPLIBS-ip/src/ip_grid_mod.f90:74: warning: return type of member ip_grid_mod::ip_grid::field_pos is not documented
Generating docs for namespace ipolates_mod
/home/ed/NCEPLIBS-ip/src/ipolates.f90:494: warning: Found unknown command '@para'
/home/ed/NCEPLIBS-ip/src/ipolates.f90:549: warning: The following parameter of ipolates_mod::ipolates_grib2(integer, intent(in) IP, integer, dimension(20), intent(in) IPOPT, integer, intent(in) IGDTNUMI, integer, dimension(igdtleni), intent(in) IGDTMPLI, integer, intent(in) IGDTLENI, integer, intent(in) IGDTNUMO, integer, dimension(igdtleno), intent(in) IGDTMPLO, integer, intent(in) IGDTLENO, integer, intent(in) MI, integer, intent(in) MO, integer, intent(in) KM, integer, dimension(km), intent(in) IBI, logical *1, dimension(mi, km), intent(in) LI, real, dimension(mi, km), intent(in) GI, integer, intent(out) NO, real, dimension(mo), intent(inout) RLAT, real, dimension(mo), intent(inout) RLON, integer, dimension(km), intent(out) IBO, logical *1, dimension(mo, km), intent(out) LO, real, dimension(mo, km), intent(out) GO, integer, intent(out) IRET) is not documented:
  parameter 'gi'
Generating docs for compound ipolates_mod::ipolates...
<unknown>:193: warning: Found unknown command '@para'
/home/ed/NCEPLIBS-ip/src/ipolates.f90:549: warning: The following parameter of ipolates_mod::ipolates::ipolates_grib2(integer, intent(in) IP, integer, dimension(20), intent(in) IPOPT, integer, intent(in) IGDTNUMI, integer, dimension(igdtleni), intent(in) IGDTMPLI, integer, intent(in) IGDTLENI, integer, intent(in) IGDTNUMO, integer, dimension(igdtleno), intent(in) IGDTMPLO, integer, intent(in) IGDTLENO, integer, intent(in) MI, integer, intent(in) MO, integer, intent(in) KM, integer, dimension(km), intent(in) IBI, logical *1, dimension(mi, km), intent(in) LI, real, dimension(mi, km), intent(in) GI, integer, intent(out) NO, real, dimension(mo), intent(inout) RLAT, real, dimension(mo), intent(inout) RLON, integer, dimension(km), intent(out) IBO, logical *1, dimension(mo, km), intent(out) LO, real, dimension(mo, km), intent(out) GO, integer, intent(out) IRET) is not documented:
  parameter 'gi'
Generating docs for namespace ipolatev_mod
Generating docs for compound ipolatev_mod::ipolatev...
Generating docs for compound neighbor_budget_interp_mod::interpolate_neighbor_budget...
/home/ed/NCEPLIBS-ip/src/neighbor_budget_interp_mod.f90:17: warning: Member interpolate_neighbor_budget_scalar(IPOPT, grid_in, grid_out, MI, MO, KM, IBI, LI, GI, NO, RLAT, RLON, IBO, LO, GO, IRET) (function) of interface neighbor_budget_interp_mod::interpolate_neighbor_budget is not documented.
/home/ed/NCEPLIBS-ip/src/neighbor_budget_interp_mod.f90:281: warning: Member interpolate_neighbor_budget_vector(IPOPT, grid_in, grid_out, MI, MO, KM, IBI, LI, UI, VI, NO, RLAT, RLON, CROT, SROT, IBO, LO, UO, VO, IRET) (function) of interface neighbor_budget_interp_mod::interpolate_neighbor_budget is not documented.
Generating docs for compound neighbor_interp_mod::interpolate_neighbor...
/home/ed/NCEPLIBS-ip/src/neighbor_interp_mod.f90:17: warning: Member interpolate_neighbor_scalar(IPOPT, grid_in, grid_out, MI, MO, KM, IBI, LI, GI, NO, RLAT, RLON, IBO, LO, GO, IRET) (function) of interface neighbor_interp_mod::interpolate_neighbor is not documented.
/home/ed/NCEPLIBS-ip/src/neighbor_interp_mod.f90:321: warning: Member interpolate_neighbor_vector(IPOPT, grid_in, grid_out, MI, MO, KM, IBI, LI, UI, VI, NO, RLAT, RLON, CROT, SROT, IBO, LO, UO, VO, IRET) (function) of interface neighbor_interp_mod::interpolate_neighbor is not documented.
Generating docs for compound spectral_interp_mod::interpolate_spectral...
/home/ed/NCEPLIBS-ip/src/spectral_interp_mod.f90:28: warning: Member interpolate_spectral_scalar(IPOPT, grid_in, grid_out, MI, MO, KM, IBI, GI, NO, RLAT, RLON, IBO, LO, GO, IRET) (function) of interface spectral_interp_mod::interpolate_spectral is not documented.
/home/ed/NCEPLIBS-ip/src/spectral_interp_mod.f90:64: warning: Member interpolate_spectral_vector(IPOPT, grid_in, grid_out, MI, MO, KM, IBI, UI, VI, NO, RLAT, RLON, CROT, SROT, IBO, LO, UO, VO, IRET) (function) of interface spectral_interp_mod::interpolate_spectral is not documented.
Generating docs for compound spectral_interp_mod::polates4...
/home/ed/NCEPLIBS-ip/src/spectral_interp_mod.f90:102: warning: Member polates4_grib2(IPOPT, IGDTNUMI, IGDTMPLI, IGDTLENI, IGDTNUMO, IGDTMPLO, IGDTLENO, MI, MO, KM, IBI, GI, NO, RLAT, RLON, IBO, LO, GO, IRET) (function) of interface spectral_interp_mod::polates4 is not documented.
<unknown>:1: warning: argument 'li' of command @param is not found in the argument list of spectral_interp_mod::polates4::polates4_grib1(integer, dimension(20), intent(in) IPOPT, integer, dimension(200), intent(in) KGDSI, integer, dimension(200), intent(in) KGDSO, integer, intent(in) MI, integer, intent(in) MO, integer, intent(in) KM, integer, dimension(km), intent(in) IBI, real, dimension(mi, km), intent(in) GI, integer NO, real, dimension(mo), intent(inout) RLAT, real, dimension(mo), intent(inout) RLON, integer, dimension(km), intent(out) IBO, logical *1, dimension(mo, km), intent(out) LO, real, dimension(mo, km), intent(out) GO, integer, intent(out) IRET)
Generating docs for compound spectral_interp_mod::polatev4...
/home/ed/NCEPLIBS-ip/src/spectral_interp_mod.f90:755: warning: Member polatev4_grib2(IPOPT, IGDTNUMI, IGDTMPLI, IGDTLENI, IGDTNUMO, IGDTMPLO, IGDTLENO, MI, MO, KM, IBI, UI, VI, NO, RLAT, RLON, CROT, SROT, IBO, LO, UO, VO, IRET) (function) of interface spectral_interp_mod::polatev4 is not documented.
<unknown>:1: warning: argument 'li' of command @param is not found in the argument list of spectral_interp_mod::polatev4::polatev4_grib1(integer, dimension(20), intent(in) IPOPT, integer, dimension(200), intent(in) KGDSI, integer, dimension(200), intent(in) KGDSO, integer, intent(in) MI, integer, intent(in) MO, integer, intent(in) KM, integer, dimension(km), intent(in) IBI, real, dimension(mi, km), intent(in) UI, real, dimension(mi, km), intent(in) VI, integer NO, real, dimension(mo), intent(inout) RLAT, real, dimension(mo), intent(inout) RLON, real, dimension(mo), intent(out) CROT, real, dimension(mo), intent(out) SROT, integer, dimension(km), intent(out) IBO, logical *1, dimension(mo, km), intent(out) LO, real, dimension(mo, km), intent(out) UO, real, dimension(mo, km), intent(out) VO, integer, intent(out) IRET)

Cleanup IPLIB

Version of the develop branch (3.0.0) should be >= version of release/public-v1 branch (3.1.0).

CMake build needs to require sp library

In the workflow we have:

    - name: checkout-sp
      uses: actions/checkout@v2
      with:
        repository: NOAA-EMC/NCEPLIBS-sp
        path: sp
        ref: develop

    - name: build-sp
      run: |
        cd sp
        mkdir build
        cd build
        cmake .. -DCMAKE_INSTALL_PREFIX=~/sp
        make -j2
        make install


Yet CMakeLists.txt does not check for sp, and it is not needed to build ip.

NCEP authors list is a 404 error...

We have the following in the README:

Authors

This gives us a link in the README, but when I click on the link I get a 404 not found error. ;-)

What is this supposed to be pointing to?

Test in unit_test_for_c requires missing iplib.h

When I try to build the test in unit_test_for_c, it fails because it can't find iplib.h. There is no iplib.h in the project. ;-)

So where is it supposed to come from?

/home/ed/NCEPLIBS-ip/tests/unit_test_for_c/test_gdswzd_4.c:4:10: fatal error: iplib.h: No such file or directory
    4 | #include "iplib.h"
      |          ^~~~~~~~~
compilation terminated.


clean up legacy testing directories and code

We have some legacy testing here that needs to be modernized.

There is a tests directory, with two subdirectories, unit_test and unit_test_for_c.

In unit_test_for_c there are two subdirectories, sorc and scripts. The sorc directory contains the test code, the scripts directory some scripts to run the tests. (At least oneof the scripts would not run because it has merge artivacts in in...).

OK, the answer here is to remove move the test codes up one level, and remove the sorc and scripts directories. As far as I can see there should be no need for scripts to run tests in any case, this is a library and can be tested directly from code, which can be run directly from CMake. No need for a script.

(But when I did this I discovered that a header file is missing, iplib.h, and the tests don't build. See #34 )

For the unit_test directory we have even more complexity. There is a sorc directory with scalar and vector subdirectories. There is an autoconf build system, but just for the tests in unit_test. Within scalar and vector are some Fortran test codes. There is also a scripts directory.

The answer here is going to be once again remove all the scripts, which we don't need, and remove the autoconf build system, eliminate the sorc and scripts subdirectories and move all the fortran test code up to the unit_test directory, changing the file names to distinguish between the vector and scalar tests.

Add modules and interfaces for this code.

As suggested by @kgerheiser

Kyle please correct me if I am wrong here...

The problem is that we have a bunch of Fortran functions which actually work for different types (kinds). So the way we cope with this is to build several versions of the library with different names, with the kind in the library name.

Another way to handle this, as Kyle is recommending, is to have a Fortran interface, and then have a function for each kind. The interface would map between the generic name and the specific Fortran function which handles that kind.

This is what we do in the PIO library with this code, for example:

  !>
  !! PIO_initdecomp is an overload interface the models decomposition to pio.
  !! initdecomp_1dof_bin_i8, initdecomp_1dof_nf_i4, initdecomp_2dof_bin_i4,
  !! and initdecomp_2dof_nf_i4 are all depreciated, but supported for backwards
  !! compatibility.
  !<
  interface PIO_initdecomp
     module procedure PIO_initdecomp_dof_i4  ! previous name: initdecomop_1dof_nf_box
     module procedure PIO_initdecomp_dof_i8  ! previous name: initdecomop_1dof_nf_box
     module procedure initdecomp_1dof_nf_i4
     module procedure initdecomp_1dof_nf_i8
     module procedure initdecomp_1dof_bin_i4
     module procedure initdecomp_1dof_bin_i8
     module procedure initdecomp_2dof_nf_i4
     module procedure initdecomp_2dof_nf_i8
     module procedure PIO_initdecomp_bc
  end interface PIO_initdecomp

So to implement Kyle's suggestion, we would add an interface of the existing function name, add new functions for each of the supported kinds, and use the interface statement. Then we would compile the library one time, with one name.

This is a backward compatible change, because calling fortran code does not have to change. (But their build system changes, because we would be changing the library name.)

Do I understand you correctly Kyle? I see other libraries with similar-looking build instructions. Other than the sp library, which ones do we build different libraries for different fortran kinds?

Implement v3.0.2

GFS v16 requires v3.0.2. The v3.0.2 tag has old release notes. Update the notes and make any other required changes.

Following the Gitflow method, a support branch will be created from the v3.0.2 tag. Once the branch is working, I can recreate the v3.0.2 tag.

Syntax error in tests/interp_mod.f90

I am getting this syntax error when I compile on wcoss2 TDS (acorn)

[ 91%] Building Fortran object tests/CMakeFiles/test_library.dir/interp_mod.f90.o
cd /lfs/h2/emc/ptmp/Dusan.Jovic/simple-ufs/libs/nceplibs/NCEPLIBS-ip/build/tests && /opt/cray/pe/craype/2.7.0/bin/ftn  -I/lfs/h2/emc/ptmp/Dusan.Jovic/simple-ufs/libs/nceplibs/NCEPLIBS-ip/build/src/include_d  -r8 -g -traceback -assume byterecl -O3   -c /lfs/h2/emc/ptmp/Dusan.Jovic/simple-ufs/libs/nceplibs/NCEPLIBS-ip/tests/interp_mod.f90 -o CMakeFiles/test_library.dir/interp_mod.f90.o
/lfs/h2/emc/ptmp/Dusan.Jovic/simple-ufs/libs/nceplibs/NCEPLIBS-ip/tests/interp_mod.f90(347): error #7912: An explicit INTENT(OUT) declaration is expected for this dummy argument.   [GETARG]
    call getarg(i1, grid)
--------------------^
/lfs/h2/emc/ptmp/Dusan.Jovic/simple-ufs/libs/nceplibs/NCEPLIBS-ip/tests/interp_mod.f90(349): error #7912: An explicit INTENT(OUT) declaration is expected for this dummy argument.   [GETARG]
    call getarg(i1, interp_opt)
--------------------^
compilation aborted for /lfs/h2/emc/ptmp/Dusan.Jovic/simple-ufs/libs/nceplibs/NCEPLIBS-ip/tests/interp_mod.f90 (code 1)
make[2]: *** [tests/CMakeFiles/test_library.dir/build.make:76: tests/CMakeFiles/test_library.dir/interp_mod.f90.o] Error 1
make[2]: Leaving directory '/lfs/h2/emc/ptmp/Dusan.Jovic/simple-ufs/libs/nceplibs/NCEPLIBS-ip/build'
make[1]: *** [CMakeFiles/Makefile2:1039: tests/CMakeFiles/test_library.dir/all] Error 2

automate test coverage measurment

We need this on all projects, and this is a simple one to start with.

We need some method of automatically running code coverage analysis on GitHub actions. In this way, all developers will easily be able to tell what code is untested.

release 4.0.0

The ip library has changed and absorbed the ip2 library. It's time for a release.

Should the next release be called ip-4.0.0 since it represents an important change in the API?

can't get grib_util to build with ip-4.0.0

I have been trying to get grib_util to build with ip-4.0.0, but no luck.

In the CMakeLists.txt I added:

# For NCEPLIBS-ip-4.0.0 and later, we need to add a "use" statement to
# the code. Check for this...
if(ip_VERSION GREATER_EQUAL 4.0.0)
  add_compile_definitions(USE_IP_MOD)
  message(STATUS "ip library > 4.0.0, USE_IP_MOD set")
else()
  message(STATUS "ip library < 4.0.0, USE_IP_MOD not set")
endif()

And this seems to work, when compiling with ip-4.0.0 I see:

cd /home/ed/NCEPLIBS-grib_util/b/src/copygb && /usr/bin/gfortran -DUSE_IP_MOD -I/usr/local/NCEPLIBS-bacio-2.5.0/include -I/usr/local/NCEPLIBS-w3emc-2.9.2/include_d -I/usr/local/NCEPLIBS-ip-4.0.0/include_d -I/usr/local/NCEPLIBS-sp-2.3.3/include_d -g -fdefault-real-8 -O3 -g -fdefault-real-8 -c /home/ed/NCEPLIBS-grib_util/src/copygb/copygb.F -o CMakeFiles/copygb.dir/copygb.F.o

So the USE_IP_MOD pre-processor define is being properly set.

In the code I have:

      PROGRAM COPYGB
#ifdef USE_IP_MOD
      use ip_mod
#endif

But when I try to build:

cd /home/ed/NCEPLIBS-grib_util/b/src/copygb && /snap/cmake/1000/bin/cmake -E cmake_link_script CMakeFiles/copygb.dir/link.txt --verbose=1
/usr/bin/gfortran -g -fdefault-real-8  -O3 -g -fdefault-real-8  CMakeFiles/copygb.dir/copygb.F.o -o copygb  /usr/local/NCEPLIBS-bacio-2.5.0/lib/libbacio.a /usr/local/NCEPLIBS-w3emc-2.9.2/lib/libw3emc_d.a /usr/local/NCEPLIBS-ip-4.0.0/lib/libip_d.a /usr/local/NCEPLIBS-sp-2.3.3/lib/libsp_d.a /usr/local/NCEPLIBS-bacio-2.5.0/lib/libbacio.a 
/usr/bin/ld: CMakeFiles/copygb.dir/copygb.F.o: in function `intgrib1_':
/home/ed/NCEPLIBS-grib_util/src/copygb/copygb.F:1225: undefined reference to `ipolates_'
/usr/bin/ld: /home/ed/NCEPLIBS-grib_util/src/copygb/copygb.F:1300: undefined reference to `ipolatev_'
/usr/bin/ld: /home/ed/NCEPLIBS-grib_util/src/copygb/copygb.F:1331: undefined reference to `ipolatev_'
/usr/bin/ld: /home/ed/NCEPLIBS-grib_util/src/copygb/copygb.F:1290: undefined reference to `ipolatev_'
/usr/bin/ld: /home/ed/NCEPLIBS-grib_util/src/copygb/copygb.F:1231: undefined reference to `ipolates_'
/usr/bin/ld: /home/ed/NCEPLIBS-grib_util/src/copygb/copygb.F:1268: undefined reference to `ipolatev_'
/usr/bin/ld: /home/ed/NCEPLIBS-grib_util/src/copygb/copygb.F:1253: undefined reference to `ipolates_'
/usr/bin/ld: /home/ed/NCEPLIBS-grib_util/src/copygb/copygb.F:1212: undefined reference to `ipolates_'
/usr/bin/ld: CMakeFiles/copygb.dir/copygb.F.o: in function `MAIN__':
/home/ed/NCEPLIBS-grib_util/src/copygb/copygb.F:260: undefined reference to `makgds_'
collect2: error: ld returned 1 exit status
make[2]: *** [src/copygb/CMakeFiles/copygb.dir/build.make:101: src/copygb/copygb] Error 1
make[2]: Leaving directory '/home/ed/NCEPLIBS-grib_util/b'
make[1]: *** [CMakeFiles/Makefile2:1075: src/copygb/CMakeFiles/copygb.dir/all] Error 2
make[1]: Leaving directory '/home/ed/NCEPLIBS-grib_util/b'
make: *** [Makefile:146: all] Error 2

What am I doing wrong?

There is a branch in grib_util called ejh_ip which has all these changes...

add build option to build without sp library

One change that wgrib2 made to NCEPLIBS-ip was to take out support for the NCEPLIBS-sp library.

So let's put an option in to build without the sp library, leaving out all functions that need it, in that case.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.