Skip to content

Commit

Permalink
Fixes non-BFB issue with F-compsets when threading is used
Browse files Browse the repository at this point in the history
This PR addresses an issue which makes the model non-deterministic
(i.e. non-BFB) when run with more than one thread. PR #1147 introduced
a logical variable (cldfsnow_logic) which was declared and assigned at
module level. This kind of declaration automatically sets a variable
with 'SAVE' attribute which in turn makes the variable a shared variable
(to be shared by all the threads). This PR removes this variables and
retain the same functionality.

Fixes #1203

[BFB] - Bit-For-Bit
  • Loading branch information
singhbalwinder committed Jan 17, 2017
0 parents commit cee64a4
Show file tree
Hide file tree
Showing 147 changed files with 63,938 additions and 0 deletions.
31 changes: 31 additions & 0 deletions share/csm_share/README
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
!===============================================================================
! SVN $Id: README 19883 2009-12-14 23:19:10Z erik $
! SVN $URL: https://svn-ccsm-models.cgd.ucar.edu/csm_share/trunk_tags/share3_150116/README $
!===============================================================================

A description of csm_share

This module exists to collect code shared between various CCSM components.
Excluding this "shared code" module, CCSM components are built using disjoint
sets of source code. The use of this shared code is similar to the use of
object code libraries where each subdirectory of csm_share is equivalant to
one library. While object library routines are accessed by linking to libraries
during the load phase, these shared code routines are accessed by including the
appropriate source code directory path during the compile phase.

Motivation for this code sharing includes:

- facilitating consistent physics between all models. For example, uniform
solar-zenith-angle/orbital calculations and uniform physical constants.
- providing an interface/API between component models and the flux-coupler
component in the CCSM framework.
- avoiding the need for redundant implementations of commonly needed
functionality. For example netCDF file reading, basic mapping (re-gridding)
functionality, and common character string manipulations.

Current subsets ("libraries") of shared code only include:

shr - very generic, general-purpose code that is likely to be useful to all
CCSM components. CCSM components may be explicitly required to use some
parts of this code, for example the physical constants module.

Loading

0 comments on commit cee64a4

Please sign in to comment.