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

Nonstandard use of INCLUDEPATH in PIO build #18

Closed
cponder opened this issue Feb 19, 2015 · 2 comments
Closed

Nonstandard use of INCLUDEPATH in PIO build #18

cponder opened this issue Feb 19, 2015 · 2 comments

Comments

@cponder
Copy link

cponder commented Feb 19, 2015

(I was told to log these PIO issues here, if this is not the right forum can you please direct me to the right one? -- thanks)

The variable INCLUDEPATH is used by the PIO cmake but is not documented in the --help output.
Ordinarily I would expect this variable to be used in the form dir1:dir2:.... which is how some of the modules on our system are setting it.
The PIO build, however, is expanding the $INCLUDEPATH directly in some of the build commands

/shared/apps/rhel-6.2/tools/cponder/OpenMPI-1.8.4/Intel-15.0_CUDA-6.5/bin/mpifort -c -DSPMD -DHAVE_MPI -DUSEMPIIO -DSYSLINUX -D_NETCDF -I/shared/apps/rhel-6.2/tools/cponder/NetCDF-Fortran-4.4.1/Intel-15.0_OpenMPI-1.8.4_CUDA-6.5/include -D_NETCDF4 -D_PNETCDF -fPIC -march=corei7-avx -mtune=corei7-avx -g -I/shared/apps/rhel-6.2/tools/cponder/NetCDF-Fortran-4.4.1/Intel-15.0_OpenMPI-1.8.4_CUDA-6.5/include /shared/apps/cuda/CUDA-v6.5.14/include/CL:/shared/apps/cuda/CUDA-v6.5.14/include -I/shared/apps/rhel-6.2/tools/cponder/PNetCDF-1.6.0/OpenMPI-1.8.4_Intel-15.0_CUDA-6.5/include pio_kinds.F90

and giving me the error

ifort: error #10236: File not found: '/shared/apps/cuda/CUDA-v6.5.14/include/CL:/shared/apps/cuda/CUDA-v6.5.14/include'

Evidently it's expected here to use a form like

-I DIR1 -I DIR2 ...

I can get around the problem by unsetting the variable, which is OK for my purposes. It may be the case that the -I DIR format really is the standard convention, but I think at the very least that you ought to document that INCLUDEPATH is a settable variable in the cmake build.

@cponder
Copy link
Author

cponder commented Feb 19, 2015

Ok I put it in the PIO mailing-list:

https://groups.google.com/forum/#!topic/parallelio/FGRp144EYc4

@douglasjacobsen
Copy link
Member

Thanks!

caozd999 pushed a commit to caozd999/MPAS-Model that referenced this issue Jan 14, 2021
Fix git describe for repo without any tags

Since this repo doesn't have any tags yet, git describe will fail unless it has an --always flag. This fix is needed before this repo will be useful for testing.
LarissaReames-NOAA added a commit to LarissaReames-NOAA/MPAS-Model that referenced this issue Jul 8, 2024
* Add SMIOL library code in src/external/SMIOL, and add Makefile hooks

This commit adds a copy of the SMIOL library source code in src/external/SMIOL,
and it updates recipes in Makefiles to build the SMIOL library and link it with
MPAS executables. At present, however, the SMIOL library is not actually used.

* Wrap all PIO-specific code in MPAS_PIO_SUPPORT preprocessing directives

In order to isolate all code that is specific to the PIO library, this commit
adds pre-processing directives to include PIO-specific code only if
MPAS_PIO_SUPPORT is defined at build time. The top-level Makefile defines
MPAS_PIO_SUPPORT only if the PIO environment variable is defined.

Although it is now possible to compile MPAS without any reference to the PIO
library, doing so does not result in a useful model executable, since, e.g.,
no mesh information can be read during model bootstrapping.

Besides the obvious additions of #idef MPAS_PIO_SUPPORT directives, there are
several other aspects of the changes in this commit worth noting:

1) The optional 'io_system' argument to mpas_framework_init_phase2 and
   mpas_framework_finalize is an integer when MPAS_PIO_SUPPORT is not defined.

2) When MPAS_PIO_SUPPORT is not defined, MPAS_IO_OFFSET_KIND is defined as
   an I8KIND integer in mpas_io_types.inc.

3) The MPAS_*_FILLVAL constants have been provided with alternate defininitions
   when MPAS_PIO_SUPPORT is not defined.

* If PIO is not available, define MPAS_SMIOL_SUPPORT in top-level Makefile

If the PIO environment variable is not defined, the top-level Makefile defines
the pre-processing macro MPAS_SMIOL_SUPPORT; otherwise, MPAS_PIO_SUPPORT is
defined as before.

* WIP: Implement SMIOL

Still to do:
1) Ensure that all cores compile
2) Remove debugging print statements from mpas_io.F

* Update SMIOL to 36e0f0e on io_comm branch

* Revert "Update SMIOL to 36e0f0e on io_comm branch"

This reverts commit 1e53460.

* Add aggregation changes

* Revert "Revert "Update SMIOL to 36e0f0e on io_comm branch""

(Add back the io_comm changes on top of aggregation changes)

This reverts commit 18b7b91.

* Use non-blocking (bput) interface to PnetCDF

* Increase buffer size to 1 GB, change agg_factor to 20, remove debugging prints

* Initial implementation of NSSL 2-moment microphysics

* Added a package (nssl_moments) to turn on 3-moment version of NSSL microphysics (adds refl. moment variables for rain, graupel, hail: zrw, zgw, zhw).
 Also added code to compute the composite and 1-km reflectivity for NSSL2M (not actually tested yet)

* Limit ice crystal effective radius to 130um to stay within allowed RRTMG range.

* Enable substepping for mp_nssl2m when dt_dyn is large (automatically sets n_microp)

* Added new variables to LBC code in time_integration

* Checkpoint SMIOL prototype implementation -- 28 Sept 2022

* Incorporate bugfix from MPAS v7.3

* Fix issue with case-insensitive filesystems (e.g., macOS APFS)

On case-insensitive filesystems, having the name of a build target the same as
a directory -- specifically, 'smiol' and 'SMIOL', respectively -- leads make
to infer that the target is already up to date. This is problematic in the case
of SMIOL, since the library will never be compiled.

* Add support for compression for netcdf4
  mpas_io_streams.F : pass ioformat to def_var
  mpas_io.F : add conditional to set deflate on variables if ioformat is netcdf4 (needs netcdf-4.7.4 or later)

* Hack to set chunksizes along the nCells dimension. Chunksize is nCells/nprocs

* Added check in Makefile for HDF5 env. variable, which seems to be needed if the libraries are static only.

* Silence a few messages in mpas_io.F that were primarily used during development

* Comment-out some print statements in smiol.c that were used for debugging

* Add support for first-guess data on Lambert conformal conic projection

In order to enable the use of regional first-guess datasets given on
a Lambert conformal conic projection for regional MPAS-A ICs (including
terrain blending), LBCs, surface updates, several places in the init_atmosphere
core have been updated with code to set up Lambert conformal projections.

This commit also adds 'else' cases in the map projection set-up to catch
future uses of unsupported map projections.

* Fixed null pointer issue with program init_atmosphere on Jet

* Merged branch diag_courant from skamaroc/MPAS-Model for printing out the maximum Courant numbers (horizontal and vertical) and the maximum Lipschitz number (vertical)

* Fixed PBL crashs in debug mode and a memory overflow problem with debugging message

* Use nlevels_cam_damp layers in CAM absorbing layer

Rather than three hardwired layers, the CAM absorbing layer now uses a number
of layers specified by the nlevels_cam_damp parameter.

* Obtain number of layers in CAM absorbing layer from a new namelist option

Rather than three hardwired layers, the CAM absorbing layer now uses a number of
layers specified by the namelist option config_nlevels_cam_damp in the &damping
namelist group. This namelist option is hidden and takes on a value of 3 by
default.

* Add support for 3D reflectivity output (refl10cm) from Thompson scheme by Ted

* Add hydrometeor variables for IC/LBCs

* Ted add computation for ns, ng etc.

* Made the reflectivity computation for graupel in the Thompson scheme consistent with how it has been computed in all operational HRRR versions by turning off wet graupel

* First attempts to get landusef and soilf in init file

* Added some convective diagnostic variables for UPP categorial precipitation type computation

* Revert "Added some convective diagnostic variables for UPP categorial precipitation type computation"

This reverts commit f5acbf1.

* Added landusef to static grid fields and added to input surface stream for core_atmosphere.

* Adds files for RUC land surface model

* Added needed RUC variables to the registry. Added physics versions of these to phys_vars and allocated/deallocated them in lsm driver. Fixed bug in Registry equation for nlcat that caused compile failure with gfortran.

* For RUCLSM: add dependencies in makefiles; added needed constant

* module_sf_ruclsm.F : modernized a do loop to prevent compiler warning.

* mpas_atmphys_control.F : changed 'ruclsm' to 'ruc' to be consistent with L's naming

* atmosphere Registry.xml: added 'ruc' option to config_lsm_scheme

* Added new RUC variables to lsm_from_MPAS & lsm_to_MPAS routines.

* Added landusef and soilf initialization to ideal cases and added 15s MODIS as a landcover dataset option

* RUC LSM initialization and integration now work as expected without errors

* Turned off low-level wind extrapolation

* Bug fix for bad prediction of soil moisture and temperature.

* Revert previous unintented change to cumulus scheme associated with "convection_permitting" physics package

* Put back changes to diagnostic files that magically disappeared with no trace of how that happened.

* Added back missing convective variables modificaitons from commit f5acbf1

* Added "output_interval" from streams file as a global attribute to output files

* Remove print statement from convective_diagnostics

* Fixed a bug causing computation of 0--2km integrated wind to fail.

* Removed unnecessary uses of config_lsm_scheme in physics initialization (only called for core_init_atmosphere)

* Increased the coefficient of the divergent portion of the Laplacian for the specified zone u to handle a blow-up with RRFS datasets

* Added fields of RUC to restart files

* Limited writting of 'output_interval' to the model run only

* Fixed output of UH variables and hourly max 1-km reflectivity

* Fixed bug in creation of LAI causing artificial irrigation where it wasn't approporiate

* Revert "Fixed bug in creation of LAI causing artificial irrigation where it wasn't approporiate"

This reverts commit 3370ba8.

* Fixed bug in creation of LAI causing artificial irrigation where it wasn't approporiate

* Revert "Fixed output of UH variables and hourly max 1-km reflectivity"

This reverts commit 8b21aea.

* Bill implemented the analysis fields wind rotation in the MPAS init_atmosphere core.

* Re-implement fixes to output UH and hourly max 1 km refelctivity

* Updates to support higher resolution landuse along with soil and landuse fractions for RUC LSM and BNU soil datset.

* Updates to process monthly leave area index

* Fix to decrease time associated with computing 1-km hourly max reflectivity. Also removed extraneous print statements

* Fix for bug causing excessive hourly convective precip accumulation

* Fixed a print statement

* Removed an extra space before soilf

* Added Vecna_ifort to Makfile

* Radiation drivers were not using effective radii from NSSLmp because it wasn't added to the case statement.

* Bug fixes for computation of LAI and added config_nsoilcat

* Bug fix for computing precip accumulation arrays when the convection scheme is off

* Implemented MYJ PBL and SFCLAY schemes. Schemes are running and producing reasonable results.

* Revised Monin-Obukhov (surface layer) scheme implemented. Compiles and runs without issue.

* Remove 'advCells' from init_atmosphere input and output streams

The 'advCells' field is only used internally by the atm_initialize_advection_rk
subroutine, and it is therefore not necessary to write this field to the output
stream nor to read it from the input stream in the init_atmosphere core.

* Remove 'hx' field from init_atmosphere input and output streams

The 'hx' field is only used in the vertical-grid generation stage in
the init_atmosphere_model program and therefore does not need to be
written to the output stream nor read from the input stream.

* Fixed computation of minimum UH fields.

* Fixed computation of minimum UH fields.

* Added refl10cm to restart file for WoFS da cycles

* Fixed a divide-by-zero float problem when computing 1-km hourly max reflectivity

* Fixed mpi initialization issue with thread

* Additional content from previous merge commit

* Bug fixes for init_atmosphere

* Merged with frdd-MPAS-Model/atmosphere/nssl_v7.3_smiol_lcc

* Lou added a smoother for the UH

* Fixed commit for Lou added a smoother for the UH

* Fixed continued lines for UH smoother

* Updates to fix bugs with forecast.

* Updated RUC LSM init to work with new VEGPARM.TBL

* Tested GNU compiler on Vecna

* Merge with MPAS-Dev/develop for two-stream I/O.

* uReconstructZonal/Meridional is added back to restart in src/core_atmosphere/Registry.xml

* mpas_atm_core.F is updated for mpas_atm_diag_update() in mpas_atm_diagnostics_manager.F to specify arguments, while mpas_atm_core_interface.F and mpas_atmphys_packages.F are updated to add streamInfo in atmphys_setup_packages.

* Generalize mpas_sphere_angle function to work for non-unit-radius spheres

The methods previously employed in the mpas_sphere_angle function for computing
the side lengths of a spherical triangle were only applicable to unit-radius
spheres. This commit generalizes the computation of these side lengths so that
the mpas_sphere_angle function can be used to compute spherical angles on
spheres of arbitrary radius.

* Replaced erroneously deleted line

* Put back the NSSL physical packages to Registry.xml which are removed when merging the two streams IO capability

* Added uReconstructZonal/Meridional fields to the init stream of init_atmosphere

* Added more field to Registry.xml for init_atmosphere to use init files as background for DART programs

* remove module_mp_thompson.o from physics_wrf Makefile

* fix indentations and remove unnecessary lines

* remove SMIOL from Makefiles

* remove duplicated line

* fix indentation and remove unnecessary lines

* change thompson microphysics reflectivity

* first round of bug fixes

* second round of bug fixes for NSSL merge

* Remove repeated config entries

* Fix NSSL merge errors in microphysics driver

* Update SOILPARM.TBL

* Update VEGPARM.TBL

* Put a cap on snow for high terrain points.

---------

Co-authored-by: Michael Duda <duda@ucar.edu>
Co-authored-by: Ted Mansell <ted.mansell@noaa.gov>
Co-authored-by: Yunheng Wang <yunheng.wang@noaa.gov>
Co-authored-by: LarissaReames-NOAA <larissa.reames@noaa.gov>
Co-authored-by: Larissa Reames <52886575+LarissaReames-NOAA@users.noreply.github.com>
Co-authored-by: Larissa Reames <larissa.reames@Reames-m1-mbp.winstorm.nssl>
Co-authored-by: Yunheng Wang <47898913+ywangwof@users.noreply.github.com>
Co-authored-by: syha <syha@ucar.edu>
Co-authored-by: Joseph.B.Olson <Joseph.B.Olson@noaa.gov>
Co-authored-by: Anders Jensen <anders.jensen@noaa.gov>
Co-authored-by: Tanya Smirnova <tanya.smirnova@noaa.gov>
barlage pushed a commit to barlage/MPAS-Model that referenced this issue Sep 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants