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

Upgrade pyPDAF to be compatible with PDAF V2.2.1 #4

Merged
merged 6 commits into from
Jul 24, 2024
Merged

Conversation

yumengch
Copy link
Owner

@yumengch yumengch commented Jul 19, 2024

  • Compatible with upgraded PDAF V2.2.1 -- which support non-anistropic localisation
  • As Fortran generic interface is not interoperable with C, omi_init_dim_obs_l will be divided into
    • omi_init_dim_obs_l_iso where locweight, cradius, sradius are integer, float and float datatype
    • omi_ini_dim_obs_l_noniso where locweight, cradius, sradius are integer, numpy array with double precision float and numpy array with double precision float datatype
    • omi_init_dim_obs_l_noniso_locweights where locweight, cradius, sradius are numpy array with single precision integer, numpy array with double precision float and numpy array with double precision float
  • Similarly, we have omi_localize_covar_iso, omi_localize_covar_noniso and omi_localize_covar_noniso_locweights
    • omi_init_dim_obs_l_iso where locweight, cradius, sradius are integer, float and float datatype
    • omi_ini_dim_obs_l_noniso where locweight, cradius, sradius are integer, numpy array with double precision float and numpy array with double precision float datatype
    • omi_init_dim_obs_l_noniso_locweights wher locweight, cradius, sradius are numpy array with single precision integer, numpy array with double precision float and numpy array with double precision float
  • PDAF V2.2.1 also add support for better OMI debugging and observation quality control features.
  • We add Cython type definition in PDAF Cython subroutines. This will require all integer numpy arrays being passed with dytpe=np.intc instead of long int provided by numpy by default.
  • We streamline the compiling effort by using CMake
  • We also increased the reliability of conda packages

yumengch added 3 commits July 19, 2024 09:42
… parser; adding array annotation in Cython; PDAF compilation with CMake in Linux
…Make configurations; uses single precision integer in examples for compatibility with Fortran and Cython declaration.
update the pointer to submodule
@yumengch yumengch force-pushed the upgrade2.2.1 branch 10 times, most recently from fbccf76 to 4a35a82 Compare July 22, 2024 11:57
work out build process and CI for Linux and Mac; cleaned compile pyPDAF on windows; hopefully improved stability using intel-fortran-rt and mpi when new conda version is published; cannot workout a windows build CI as it seems very difficult to set up Intel Fortran with Visual studio in github runner but it is useful to keep the compiler environment variable options.
@yumengch yumengch force-pushed the upgrade2.2.1 branch 3 times, most recently from db14f32 to e109d5d Compare July 23, 2024 18:35
@yumengch yumengch merged commit f84cc21 into main Jul 24, 2024
@yumengch yumengch deleted the upgrade2.2.1 branch July 24, 2024 08:46
yumengch added a commit that referenced this pull request Oct 10, 2024
* adding new interface functions; improved documentation; improved file parser; adding array annotation in Cython; PDAF compilation with CMake in Linux

* fixes bugs in C interface code; fixes issues with installation; add CMake configurations; uses single precision integer in examples for compatibility with Fortran and Cython declaration.

* update the pointer to submodule

update the pointer to submodule

* add missed subroutine interface c__pdafomi_localize_covar_noniso

work out build process and CI for Linux and Mac; cleaned compile pyPDAF on windows; hopefully improved stability using intel-fortran-rt and mpi when new conda version is published; cannot workout a windows build CI as it seems very difficult to set up Intel Fortran with Visual studio in github runner but it is useful to keep the compiler environment variable options.

* separate model ensemble and model integrator

* improved robustness of conda installation; allowing conda packaging from github runner for mac and linux
yumengch added a commit that referenced this pull request Oct 10, 2024
* adding new interface functions; improved documentation; improved file parser; adding array annotation in Cython; PDAF compilation with CMake in Linux

* fixes bugs in C interface code; fixes issues with installation; add CMake configurations; uses single precision integer in examples for compatibility with Fortran and Cython declaration.

* update the pointer to submodule

update the pointer to submodule

* add missed subroutine interface c__pdafomi_localize_covar_noniso

work out build process and CI for Linux and Mac; cleaned compile pyPDAF on windows; hopefully improved stability using intel-fortran-rt and mpi when new conda version is published; cannot workout a windows build CI as it seems very difficult to set up Intel Fortran with Visual studio in github runner but it is useful to keep the compiler environment variable options.

* separate model ensemble and model integrator

* improved robustness of conda installation; allowing conda packaging from github runner for mac and linux
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant