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

coupler mixed precision #1353

Merged
merged 42 commits into from
Aug 30, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
46d8e44
Update mixedmode_base branch to main (#1144)
mlee03 Mar 8, 2023
dde0b88
update the mixedmode_base branch to main (#1154)
mlee03 Mar 15, 2023
bc9e4d9
Merge branch 'mixedmode' into mixedmode_base
rem1776 Apr 5, 2023
2977578
rm accidental empty line
Apr 5, 2023
b3374f6
chore: bring mixedmode_base up to date with main (#1173)
mlee03 Apr 5, 2023
cca0c7d
chore: update mixedmode_base to main (#1234)
mlee03 May 24, 2023
712330b
chore: merge main updates into mixedmode_base(#1267)
mlee03 Jul 7, 2023
8c72630
mixed-precision: update mixedmode base (#1289)
mlee03 Jul 26, 2023
19ee83f
readd file
Aug 1, 2023
1a309f4
working compile with type changes
Aug 4, 2023
2c0b45c
finish up ifs for association
Aug 11, 2023
7d23cb8
update existing tests for r4 precision, fix missed bc_types
Aug 16, 2023
baf95ca
add in test changes from other branch
Aug 18, 2023
f693a46
add in mikyung's test
Aug 18, 2023
f6503d7
more tests
Aug 18, 2023
9517433
mixed precision merge main into mixedmode_base (#1342)
mlee03 Aug 23, 2023
e27ec4a
remove added test for pr
Aug 23, 2023
49b3693
Merge remote-tracking branch 'origin/mixedmode_base' into coupler_mp_…
Aug 23, 2023
8c9eabf
update mikyungs ocean fluxes test for both kinds
Aug 23, 2023
9c543de
missed r4 argument + macros for aof test
Aug 23, 2023
24933d7
Add in checks for only one kind associated
Aug 24, 2023
5d8e7ff
Merge branch 'mixedmode' into coupler_mp_notest
rem1776 Aug 24, 2023
1d24387
Review comments + any lingering conversion warnings
Aug 25, 2023
f25e261
Merge branch 'coupler_mp_notest' of github.com:rem1776/FMS into coupl…
Aug 25, 2023
3813ce3
many linter fixes :(
Aug 25, 2023
22a41dc
Merge remote-tracking branch 'origin/mixedmode' into coupler_mp_notest
Aug 25, 2023
346c225
Add in class(*) for aof_set_coupler_flux optional reals
Aug 25, 2023
039e34d
fix issues with checks for only one kind associated
Aug 28, 2023
c41238b
only check association if bc count is >0
Aug 28, 2023
d509e0d
fix the checks again
Aug 28, 2023
d6ae048
cmake build
Aug 29, 2023
fea9409
remove added prints
Aug 29, 2023
60d5bc5
add bc count > 0 to error checking
Aug 29, 2023
298f70b
Merge remote-tracking branch 'origin/mixedmode' into coupler_mp_notest
Aug 29, 2023
67ad65e
Merge remote-tracking branch 'upstream/mixedmode' into coupler_mp_notest
Aug 30, 2023
47ae5f7
remove some other changes that slid in
Aug 30, 2023
27c6e87
take out set check in spawn routines
Aug 30, 2023
b6b1d02
build fixes
Aug 30, 2023
41a5bd7
fix build for real
Aug 30, 2023
c6fc1b4
typo
Aug 30, 2023
0b501bd
another typo
Aug 30, 2023
6b91325
one last thing hoepfully
Aug 30, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -319,6 +319,7 @@ foreach(kind ${kinds})
time_interp/include
tracer_manager/include
interpolator/include
coupler/include
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is there one more place to add coupler/include?

data_override/include)

target_compile_definitions(${libTgt}_f PRIVATE "${fms_defs}")
Expand Down Expand Up @@ -368,6 +369,7 @@ foreach(kind ${kinds})
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/random_numbers/include>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/tracer_manager/include>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/interpolator/include>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/coupler/include>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/data_override/include>)


Expand Down
1 change: 0 additions & 1 deletion axis_utils/include/axis_utils2.inc
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,6 @@
!! lon = 0 1 2 3 4 5 ... 358 359; lon_strt = 3
!! ==> lon = 3 4 5 6 7 8 ... 359 360 361 362; istrt = 4
!!

subroutine TRANLON_(lon, lon_start, istrt)
real(kind=FMS_AU_KIND_), intent(inout), dimension(:) :: lon
real(kind=FMS_AU_KIND_), intent(in) :: lon_start
Expand Down
8 changes: 6 additions & 2 deletions coupler/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
# Ed Hartnett 2/22/19

# Include .h and .mod files.
AM_CPPFLAGS = -I$(top_srcdir)/include
AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/coupler/include
AM_FCFLAGS = $(FC_MODINC). $(FC_MODOUT)$(MODDIR)

# Build these uninstalled convenience libraries.
Expand All @@ -33,7 +33,10 @@ noinst_LTLIBRARIES = libcoupler.la
libcoupler_la_SOURCES = \
coupler_types.F90 \
ensemble_manager.F90 \
atmos_ocean_fluxes.F90
atmos_ocean_fluxes.F90 \
include/coupler_types.inc \
include/coupler_types_r4.fh \
include/coupler_types_r8.fh

# Some mods are dependant on other mods in this dir.
atmos_ocean_fluxes_mod.$(FC_MODEXT): coupler_types_mod.$(FC_MODEXT)
Expand All @@ -43,6 +46,7 @@ MODFILES = \
coupler_types_mod.$(FC_MODEXT) \
ensemble_manager_mod.$(FC_MODEXT) \
atmos_ocean_fluxes_mod.$(FC_MODEXT)

nodist_include_HEADERS = $(MODFILES)
BUILT_SOURCES = $(MODFILES)

Expand Down
539 changes: 368 additions & 171 deletions coupler/atmos_ocean_fluxes.F90

Large diffs are not rendered by default.

3,857 changes: 1,972 additions & 1,885 deletions coupler/coupler_types.F90

Large diffs are not rendered by default.

1,233 changes: 0 additions & 1,233 deletions coupler/include/atmos_ocean_fluxes.inc

This file was deleted.

3,149 changes: 144 additions & 3,005 deletions coupler/include/coupler_types.inc

Large diffs are not rendered by default.

53 changes: 53 additions & 0 deletions coupler/include/coupler_types_r4.fh
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
!***********************************************************************
!* GNU Lesser General Public License
!*
!* This file is part of the GFDL Flexible Modeling System (FMS).
!*
!* FMS is free software: you can redistribute it and/or modify it under
!* the terms of the GNU Lesser General Public License as published by
!* the Free Software Foundation, either version 3 of the License, or (at
!* your option) any later version.
!*
!* FMS is distributed in the hope that it will be useful, but WITHOUT
!* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
!* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
!* for more details.
!*
!* You should have received a copy of the GNU Lesser General Public
!* License along with FMS. If not, see <http://www.gnu.org/licenses/>.
!***********************************************************************

#undef FMS_CP_KIND_
#define FMS_CP_KIND_ r4_kind

#undef FMS_CP_BC_TYPE_
#define FMS_CP_BC_TYPE_ bc_r4

#undef CT_RESCALE_DATA_2D_
#define CT_RESCALE_DATA_2D_ CT_rescale_data_2d_r4

#undef CT_RESCALE_DATA_3D_
#define CT_RESCALE_DATA_3D_ CT_rescale_data_3d_r4

#undef CT_INCREMENT_DATA_2D_3D_
#define CT_INCREMENT_DATA_2D_3D_ CT_increment_data_2d_3d_r4

#undef CT_EXTRACT_DATA_2D_
#define CT_EXTRACT_DATA_2D_ CT_extract_data_2d_r4

#undef CT_EXTRACT_DATA_3D_
#define CT_EXTRACT_DATA_3D_ CT_extract_data_3d_r4

#undef CT_EXTRACT_DATA_3D_2D_
#define CT_EXTRACT_DATA_3D_2D_ CT_extract_data_3d_2d_r4

#undef CT_SET_DATA_2D_
#define CT_SET_DATA_2D_ CT_set_data_2d_r4

#undef CT_SET_DATA_2D_3D_
#define CT_SET_DATA_2D_3D_ CT_set_data_2d_3d_r4

#undef CT_SET_DATA_3D_
#define CT_SET_DATA_3D_ CT_set_data_3d_r4

#include "coupler_types.inc"
53 changes: 53 additions & 0 deletions coupler/include/coupler_types_r8.fh
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
!***********************************************************************
!* GNU Lesser General Public License
!*
!* This file is part of the GFDL Flexible Modeling System (FMS).
!*
!* FMS is free software: you can redistribute it and/or modify it under
!* the terms of the GNU Lesser General Public License as published by
!* the Free Software Foundation, either version 3 of the License, or (at
!* your option) any later version.
!*
!* FMS is distributed in the hope that it will be useful, but WITHOUT
!* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
!* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
!* for more details.
!*
!* You should have received a copy of the GNU Lesser General Public
!* License along with FMS. If not, see <http://www.gnu.org/licenses/>.
!***********************************************************************

#undef FMS_CP_KIND_
#define FMS_CP_KIND_ r8_kind

#undef FMS_CP_BC_TYPE_
#define FMS_CP_BC_TYPE_ bc

#undef CT_RESCALE_DATA_2D_
#define CT_RESCALE_DATA_2D_ CT_rescale_data_2d_r8

#undef CT_RESCALE_DATA_3D_
#define CT_RESCALE_DATA_3D_ CT_rescale_data_3d_r8

#undef CT_INCREMENT_DATA_2D_3D_
#define CT_INCREMENT_DATA_2D_3D_ CT_increment_data_2d_3d_r8

#undef CT_EXTRACT_DATA_2D_
#define CT_EXTRACT_DATA_2D_ CT_extract_data_2d_r8

#undef CT_EXTRACT_DATA_3D_
#define CT_EXTRACT_DATA_3D_ CT_extract_data_3d_r8

#undef CT_EXTRACT_DATA_3D_2D_
#define CT_EXTRACT_DATA_3D_2D_ CT_extract_data_3d_2d_r8

#undef CT_SET_DATA_2D_
#define CT_SET_DATA_2D_ CT_set_data_2d_r8

#undef CT_SET_DATA_2D_3D_
#define CT_SET_DATA_2D_3D_ CT_set_data_2d_3d_r8

#undef CT_SET_DATA_3D_
#define CT_SET_DATA_3D_ CT_set_data_3d_r8

#include "coupler_types.inc"
Loading
Loading