Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

IFI access documention should explain how to compile IFI executables #1124

Open
SamuelTrahanNOAA opened this issue Jan 24, 2025 · 5 comments
Labels
enhancement New feature or request

Comments

@SamuelTrahanNOAA
Copy link
Contributor

SamuelTrahanNOAA commented Jan 24, 2025

UPP has documentation on IFI here, but it lacks documentation on a relatively new build option:

The libIFI has a "fip2 lookalike" and various test programs. Building this is enabled like so:

./compile_upp.sh -I -B

The -I enables internal IFI (in sorc/libIFI.fd) and the -B enables the IFI test programs.

This PR adds a message from cmake to indicate the -B flag was sent:

This is my suggested new IFI-Access.md:

I add this text:

A diff of IFI-Access.md vs. new version.
diff --git a/IFI-Access.md b/IFI-Access.md
index 0b5b978..b8c09fb 100644
--- a/IFI-Access.md
+++ b/IFI-Access.md
@@ -36,6 +36,18 @@ There are two options:
    Enabling USE_IFI in the post.
    ```
 
+1. **Internal build with libIFI test programs. In addition to the internal build (above) this instructs libIFI to compile its own test programs.**
+   ```
+   cd UPP/tests
+   ./compile_upp.sh -I -B
+   ```
+   You would expect the following messages from your build log: 
+   ```
+   Building IFI inside the post.
+   Building libIFI FIP2-lookalike and test programs.
+   Enabling USE_IFI in the post.
+   ```
+
 1. **External build: Build with pre-installed IFI library (access for authorized users only). This feature should be used on Hera, Orion, and Acorn.**
    ```
    cd UPP/tests
@SamuelTrahanNOAA
Copy link
Contributor Author

Here's my suggested new IFI-Access.md:

(It's impossible to do a pull request to a Github wiki, so all I can do is submit the suggested changes in a comment.)

I add this text:

A diff of IFI-Access.md vs. new version.
diff --git a/IFI-Access.md b/IFI-Access.md
index 0b5b978..b8c09fb 100644
--- a/IFI-Access.md
+++ b/IFI-Access.md
@@ -36,6 +36,18 @@ There are two options:
    Enabling USE_IFI in the post.
    ```
 
+1. **Internal build with libIFI test programs. In addition to the internal build (above) this instructs libIFI to compile its own test programs.**
+   ```
+   cd UPP/tests
+   ./compile_upp.sh -I -B
+   ```
+   You would expect the following messages from your build log: 
+   ```
+   Building IFI inside the post.
+   Building libIFI FIP2-lookalike and test programs.
+   Enabling USE_IFI in the post.
+   ```
+
 1. **External build: Build with pre-installed IFI library (access for authorized users only). This feature should be used on Hera, Orion, and Acorn.**
    ```
    cd UPP/tests

@gspetro-NOAA
Copy link
Collaborator

@SamuelTrahanNOAA I have updated the wiki with your suggestions: https://github.com/NOAA-EMC/UPP/wiki/IFI-Access
Let me know if there's anything else you want to add.

@SamuelTrahanNOAA
Copy link
Contributor Author

I noticed two problems. Updates are here:

This should be "Hera, Jet, and Acorn"

External build: Build with pre-installed IFI library (access for authorized users only). This feature should be used on Hera, Orion, and Acorn.

This isn't quite right:

Internal build: Check out IFI code and build along with the general UPP code. This feature should be used on WCOSS2.

You can and should use this on all platforms when doing development. WCOSS is unique in that regular developers aren't allowed to put precompiled libraries there for security reasons.

@gspetro-NOAA
Copy link
Collaborator

@SamuelTrahanNOAA Just updated it with your latest suggestions. Let me know if there are any other additions you'd like to make.

@SamuelTrahanNOAA
Copy link
Contributor Author

It looks right to me, but let's leave this issue open until #1119 is merged. That PR adds the messages that the IFI-Access.md refers to.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants