Giter VIP home page Giter VIP logo

jingxianwen / crtmv3 Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jcsda/crtmv3

0.0 0.0 0.0 168.54 MB

CRTMv3 repository for coordinated development and releases. Code history is not carried in this repository prior to v3, to reduce the cloning overhead. For v2.x history leading up to v3, see JCSDA/crtm repository.

License: Other

Shell 1.74% Ruby 0.39% C++ 1.89% Python 0.01% Perl 0.01% C 0.02% Fortran 87.97% Assembly 4.81% IDL 0.55% Makefile 1.84% HTML 0.01% CMake 0.63% M4 0.05% NASL 0.10%

crtmv3's Introduction

CRTM REL-3.1.0

Build Status

Preamble

CRTM v3.1.0 release (REL-3.1.0)

v3.1.0 (alpha) Released October 31, 2023 v3.0.0 Released March, 2023
v2.4.1-alpha Released on April 1, 2021 (internal realease only) v2.4.0 Released on October 23, 2020

This is an experimental release of CRTM v3.0, some features may not be fully functional. Contact [email protected].
v3.x features will be rolled out in incremental updates.

Basic requirements:
(1) A Fortran 2003 compatible compiler (2) A netCDF4 / HDF5 library that has been built with the compiler you're going to use (module environments are helpful here) (3) A linux, macOS, or unix-style environment. This has not been tested under any Windows Fortran environments. (4) Bash shell is preferred. (5) git and git-lfs (minimum version TBD, but has been tested on git-lfs v2.10 and higher ) (6) cmake / make build system

=========================================================

JEDI NOTE This develop branch is also designed to work directly in a JEDI container or JEDI environment. If you're doing JEDI things, you're probably in the right spot. However, you should stop reading right now and have a look at the README_JEDI.md file.

If you're looking for an older version of CRTM (v2.3.0 or older) you should obtain the appropriate tarball from https://bin.ssec.wisc.edu/pub/s4/CRTM/ OR https://github.com/JCSDA/crtm (old versions).

If you're looking for version 2.4.0 or newer in a structure similar to older CRTM tarball releases, you should check out the appropriate release/ branch. git branch --remote | grep "release/" to see a list of release branches OR you may checkout the appropriate tag on the master branch and build it yourself.

Finally, you may follow the instructions here to build a "latest" release based on the most recent developments.

=========================================================

Contents

  1. Configuration
  2. Building the library
  3. Testing the library
  4. Installing the library
    a. GNU Install
    • Linking to the library
      b. Uninstalling the library
  5. Cleaning up
  6. Feedback and contact info

Configuration, building, and testing the library

JCSDA CRTM v3.0.x Build Instructions

  • Development Repository Build
  • Note: the development repository build differs from a release build.

The CRTM development repository directory structure looks like:

 .
  ├── LICENSE  (Public Domain)
  ├── COPYING  (Public Domain)
  ├── NOTES
  ├── README.md 
  ├── Get_CRTM_Binary_Files.sh  
  ├── configuration/
  ├── documentation/
  ├── fix/
  │   ├── AerosolCoeff/
  │   ├── CloudCoeff/
  │   ├── EmisCoeff/
  │   ├── SpcCoeff/
  │   └── TauCoeff/
  |── src/
  │   ├── Ancillary/
  │   ├── AntennaCorrection/
  │   ├── AtmAbsorption/
  │   ├── AtmOptics/
  │   ├── AtmScatter/
  │   ├── Atmosphere/
  │   ├── CRTM_Utility/
  │   ├── ChannelInfo/
  │   ├── Coefficients/
  │   ├── GeometryInfo/
  │   ├── InstrumentInfo/
  │   ├── Interpolation/
  │   ├── NLTE/
  │   ├── Options/
  │   ├── RTSolution/
  │   ├── SensorInfo/
  │   ├── SfcOptics/
  │   ├── Source_Functions/
  │   ├── Statistics/
  │   ├── Surface/
  │   ├── TauProd/
  │   ├── TauRegress/
  │   ├── Test_Utility/
  │   ├── User_Code/
  │   ├── Utility/
  │   ├── Validation/
  │   ├── Zeeman/
  └── test/
      └── Main/

In the above list, the directories highlighted in bold (bold in markdown), are the key directories of interest to the casual developer. A user is only likely to be interested in creating a "build" or use a previously created build (see releases/* on the github.com repository).

A typical "build release" of CRTM (what you would normally find in a tarball and see in libraries) is what will be contained under the src/Build directory after successful compilation. But after a clean clone of the development repository, none of the links to source code have been created yet under src/Build. To get there, follow the next steps.

Configuration

At present, the fix/ directory is provided either through ftp or during the ctest step. We're working on a way to make the process of getting binary data equitable and easy for all users.

The files therein are gzipped (*.gz extension). Use the Get_CRTM_Binary_Files.sh script to obtain and unpack the dataset.

As of CRTM v3.0.0, we no longer support legacy build system using autotools. (i.e., configure/make). Only cmake / ecbuild (a cmake wrapper, but not required) is supported.

Build Step 1 From the top level of the CRTM directory, e.g., CRTMv3/

mkdir build/
cd build/
cmake ..
make clean
make -j8
ctest -j8

-j8 runs 8 processes in parallel, adjust to your system. Now we have compiled the linked source codes that reside in the src/ directory, and the ctests are built as well.

Linking to the library

Let's assume the above install was moved into "/home/username/CRTMv3/", to use the library in this structure in your own application, the usual environment variables would need to be be modified something like:

libroot="/home/username/CRTMv3/"
FCFLAGS="-I${libroot}/build/module/crtm/GNU/13.1.0 ${FCFLAGS}"  (as appropriate for your build environment)
LDFLAGS="-L${libroot}/src ${LDFLAGS}"
LIBS="-lcrtm ${LIBS}"

Feedback and Contact Information

CRTM SUPPORT EMAIL: [email protected] OR visit https://forums.jcsda.org/

If you have problems building the library please include the generated "config.log" file in your email correspondence.

Known Issues

(1) Any "Transmitance Coefficient" generation codes included in src/ are not functional. Contact CRTM support above for details.
(2) No testing was done on PGI, XLF, or other less commonr compilers. Feedback from users suggest that there's no major concerns though. Please contact us with specifics.

crtmv3's People

Contributors

benjamintjohnson avatar chengdang avatar imoradi avatar gthompsnwrf avatar stegmannjcsda avatar fabiolrdiniz avatar jeromebarre avatar benjaminruston avatar climbfuji avatar fmahebert avatar fcvdb avatar

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.