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

Full CCPP support for FV3 v0 with separated physics and suite definition file #42

Merged
merged 44 commits into from
Feb 14, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
5de57bc
Update makefile to link shared physics library libgfsphys.o against N…
DomHeinzeller Nov 16, 2017
082d747
Merge branch 'features/ccpp' of https://github.com/NCAR/gmtb-gfsphysi…
DomHeinzeller Nov 22, 2017
5c16b7f
Required changes to enable IPD-only, CCPP-only and CCPP-IPD builds us…
DomHeinzeller Nov 30, 2017
8015a2a
Compiler IPD_driver_cap.F90 and IPD_driver.F90 in two steps so that t…
DomHeinzeller Dec 7, 2017
54f2257
Modifications of IPD driver and IPD driver cap to handle blocking wit…
DomHeinzeller Dec 7, 2017
2b86ed4
Initial version of variable metadata tables (incomplete) for auto-gen…
DomHeinzeller Dec 7, 2017
cd9d90f
Corrections and additions of CCPP metadata tables, addition of new Sf…
DomHeinzeller Dec 20, 2017
13d3d94
Addition of new Sfccycle type (part of IPD_Data) to abstraction layer…
DomHeinzeller Dec 20, 2017
b182f75
Addition of new Sfccycle type (part of IPD_Data) to GFS driver. Addin…
DomHeinzeller Dec 20, 2017
4b1d0ad
Modification of gcycle.f90 and sfcsub.f to work on single blocks rath…
DomHeinzeller Dec 20, 2017
11caff3
Adding new Sfccyckle type to IPD_Data type
DomHeinzeller Dec 20, 2017
ec0c0d8
Adding new Sfccyckle type to IPD initialization calls; changing IPD_s…
DomHeinzeller Dec 20, 2017
3bbfb38
(1) Bug fix in IPD_driver_cap.F90: snupx and salp_data are of real(ki…
DomHeinzeller Dec 20, 2017
6c2d476
Merge branch 'features/ccpp' of https://github.com/NCAR/gmtb-gfsphysi…
DomHeinzeller Dec 20, 2017
4761c4a
Update of makefile: correct compiler and preprocessor flags for CAPS
DomHeinzeller Dec 20, 2017
257c9c4
Rename CCPP_IPD directive to CCPP as CCPP_DIRECT is no longer used as…
DomHeinzeller Dec 20, 2017
751afe7
Update of metadata tables in GFS_typedefs.F90
DomHeinzeller Jan 4, 2018
66a56ee
Merge branch 'gmtb-gfsphysics-gnu-support' of https://github.com/clim…
DomHeinzeller Jan 9, 2018
a7dbbe0
(1) Implementation of a new derived type GFS_interstitial_type that h…
DomHeinzeller Jan 9, 2018
6d6be9f
Merge branch 'features/ccpp' of https://github.com/NCAR/gmtb-gfsphysi…
DomHeinzeller Jan 12, 2018
8fd0378
Metadata tables finalized - all variables are now defined. Modificati…
DomHeinzeller Jan 18, 2018
8b45b65
Compile IPD_CCPP_driver in two steps to be able to see the final .f90…
DomHeinzeller Jan 18, 2018
b9bc305
Replace original physics incl. documentation with separated physics
DomHeinzeller Jan 18, 2018
0e6c4f9
Replace original GFS_layer with GFS_layer from separated physics
DomHeinzeller Jan 18, 2018
32f4b3d
Formatting changes and bugfix in IPD_driver: pass in the correct arra…
DomHeinzeller Jan 18, 2018
db1c38a
Always allocate diag3d fields, since slices of these fields are passe…
DomHeinzeller Jan 19, 2018
7ad2bfb
Bugfix ozphys_run: pass ldiag3d flag to subroutine and assign data to…
DomHeinzeller Jan 19, 2018
fd0d6b1
Changes to makefile required to run separated physics
DomHeinzeller Jan 19, 2018
165f13c
Removed kind 'default' for integer and logical variables; added more …
DomHeinzeller Jan 23, 2018
9b9d0ee
Bugfix of rank for variable dkt in edmf_run metadata table
DomHeinzeller Jan 24, 2018
0cf7d7d
Provide two different versions of GFS_suite_interstitial (for CCPP us…
DomHeinzeller Jan 24, 2018
4785214
Renamed swrad_run and lwrad_run to radsw_run and radlw_run to match t…
DomHeinzeller Jan 24, 2018
f025807
Metadata table corrections (units, ranks, kind-type) and removal of d…
DomHeinzeller Jan 24, 2018
f46673d
Rename calls to suite setup steps (now phys_time_vary steps), add log…
DomHeinzeller Jan 24, 2018
5a280f6
Add logic to IPD layer to run CCPP with IPD steps and with separated …
DomHeinzeller Jan 24, 2018
71a8df0
Correction of metadata table entry and allocate statement for Interst…
DomHeinzeller Jan 24, 2018
e3424b4
Removed MPI barriers and debug output from radsw_main.f
DomHeinzeller Jan 25, 2018
b3f8ace
Added new 'parameterization' GFS_diagtoscreen that can be used output…
DomHeinzeller Jan 25, 2018
ecf17fb
Preprocessing for several Fortran source files; renaming of GFS_suite…
DomHeinzeller Feb 13, 2018
820fe12
Several bugfixes of variable intent statements and of initialization …
DomHeinzeller Feb 13, 2018
78e765d
Updates of metadata tables. Implementation of memory-optimized inters…
DomHeinzeller Feb 13, 2018
c6b79ca
Implementation of memory-optimized interstitial data type in IPD layer
DomHeinzeller Feb 13, 2018
8825943
Update of makefile: capitalization of Fortran suffices, renaming of C…
DomHeinzeller Feb 13, 2018
de05086
Temporary fix for non-matching module names versus scheme names
DomHeinzeller Feb 13, 2018
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 .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Auto-generated include files in Fortran code
*.inc
6 changes: 6 additions & 0 deletions CCPP_CAPS.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# All CCPP caps are defined here.
#
# This file is auto-generated using ccpp_prebuild.py
# at compile time, do not edit manually.
#
CAPS_F90 =
12 changes: 12 additions & 0 deletions CCPP_SCHEMES.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# All CCPP schemes are defined here.
#
# This file is auto-generated using ccpp_prebuild.py
# at compile time, do not edit manually.
#
SCHEMES_F =

SCHEMES_F90 =

SCHEMES_f =

SCHEMES_f90 =
32 changes: 21 additions & 11 deletions GFS_layer/GFS_abstraction_layer.F90
Original file line number Diff line number Diff line change
@@ -1,22 +1,28 @@
module physics_abstraction_layer

use GFS_typedefs, only: init_type => GFS_init_type, &
control_type => GFS_control_type, &
statein_type => GFS_statein_type, &
stateout_type => GFS_stateout_type, &
sfcprop_type => GFS_sfcprop_type, &
coupling_type => GFS_coupling_type, &
grid_type => GFS_grid_type, &
tbd_type => GFS_tbd_type, &
cldprop_type => GFS_cldprop_type, &
radtend_type => GFS_radtend_type, &
intdiag_type => GFS_diag_type
use GFS_typedefs, only: init_type => GFS_init_type, &
control_type => GFS_control_type, &
statein_type => GFS_statein_type, &
stateout_type => GFS_stateout_type, &
sfcprop_type => GFS_sfcprop_type, &
sfccycle_type => GFS_sfccycle_type, &
coupling_type => GFS_coupling_type, &
grid_type => GFS_grid_type, &
tbd_type => GFS_tbd_type, &
cldprop_type => GFS_cldprop_type, &
radtend_type => GFS_radtend_type, &
intdiag_type => GFS_diag_type, &
interstitial_type => GFS_interstitial_type

#ifdef CCPP
use GFS_driver, only: initialize => GFS_initialize
#else
use GFS_driver, only: initialize => GFS_initialize, &
time_vary_step => GFS_time_vary_step, &
radiation_step1 => GFS_radiation_driver, &
physics_step1 => GFS_physics_driver, &
physics_step2 => GFS_stochastic_driver
#endif

!----------------------
! public physics types
Expand All @@ -26,21 +32,25 @@ module physics_abstraction_layer
public statein_type
public stateout_type
public sfcprop_type
public sfccycle_type
public coupling_type
public grid_type
public tbd_type
public cldprop_type
public radtend_type
public intdiag_type
public interstitial_type

!--------------------------
! public physics functions
!--------------------------
public initialize
#ifndef CCPP
public time_vary_step
public radiation_step1
public physics_step1
public physics_step2
#endif

CONTAINS

Expand Down
7 changes: 4 additions & 3 deletions GFS_layer/GFS_diagnostics.F90
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ module physics_diag_layer
coupling_type, grid_type, &
tbd_type, cldprop_type, &
radtend_type, intdiag_type, &
init_type
sfccycle_type, init_type

public diag_populate

Expand All @@ -25,8 +25,8 @@ module physics_diag_layer
!----------------------
! GFS_populate_IPD_Diag
!----------------------
subroutine diag_populate (IPD_Diag, Model, Statein, Stateout, Sfcprop, Coupling, &
Grid, Tbd, Cldprop, Radtend, Diag, Init_parm)
subroutine diag_populate (IPD_Diag, Model, Statein, Stateout, Sfcprop, Coupling, &
Grid, Tbd, Cldprop, Radtend, Diag, Sfccycle, Init_parm)
!------------------------------------------------------------------------------------------!
! IPD_METADATA !
! IPD_Diag%name [char*32 ] variable name in source [char*32] !
Expand Down Expand Up @@ -60,6 +60,7 @@ subroutine diag_populate (IPD_Diag, Model, Statein, Stateout, Sfcprop, Coupling,
type(cldprop_type), intent(in) :: Cldprop(:)
type(radtend_type), intent(in) :: Radtend(:)
type(intdiag_type), intent(in) :: Diag(:)
type(sfccycle_type), intent(in) :: Sfccycle(:)
type(init_type), intent(in) :: Init_parm

!--- local variabls
Expand Down
Loading