Git Product home page Git Product logo

mom6's Introduction

Read The Docs Status codecov

MOM6

This is the MOM6 source code.

Where to find information

Start at the MOM6-examples wiki which has installation instructions.

Source code documentation is hosted on read the docs.

What files are what

The top level directory structure groups source code and input files as follow:

File/directory Purpose
LICENSE.md A copy of the Gnu lesser general public license, version 3.
README.md This file with basic pointers to more information.
src/ Contains the source code for MOM6 that is always compiled.
config_src/ Contains optional source code depending on mode and configuration such as dynamic-memory versus static, ocean-only versus coupled.
pkg/ Contains third party (non-MOM6 or FMS) code that is compiled into MOM6.
docs/ Workspace for generated documentation. See docs/README.md
.testing/ Contains the verification test suite. See .testing/README.md
ac/ Contains the autoconf build configuration files. See ac/README.md

Quick start guide

To quickly get started and build an ocean-only MOM6 executable, see the autoconf README.

For setting up an experiment, or building an executable for coupled modeling, consult the MOM6-examples wiki.

Disclaimer

The United States Department of Commerce (DOC) GitHub project code is provided on an "as is" basis and the user assumes responsibility for its use. DOC has relinquished control of the information and no longer has responsibility to protect the integrity, confidentiality, or availability of the information. Any claims against the Department of Commerce stemming from the use of its GitHub project will be governed by all applicable Federal law. Any reference to specific commercial products, processes, or services by service mark, trademark, manufacturer, or otherwise, does not constitute or imply their endorsement, recommendation or favoring by the Department of Commerce. The Department of Commerce seal and logo, or the seal and logo of a DOC bureau, shall not be used in any manner to imply endorsement of any commercial product or activity by DOC or the United States Government.

This project code is made available through GitHub but is managed by NOAA-GFDL at https://gitlab.gfdl.noaa.gov.

mom6's People

Contributors

adcroft avatar alperaltuntas avatar andrew-c-ross avatar angus-g avatar ashao avatar bmater avatar breichl avatar carolinecardinale avatar deniseworthen avatar gustavo-marques avatar hallberg-noaa avatar herrwang0 avatar hmkhatri avatar jiandewang avatar jkrasting avatar kshedstrom avatar marshallward avatar mfjansen avatar mjharrison-gfdl avatar nichannah avatar nikizadehgfdl avatar noraloose avatar olgasergienko avatar pjpegion avatar raphaeldussin avatar sdbachman avatar stephengriffies avatar wfcooke avatar wrongkindofdoctor avatar zhi-liang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mom6's Issues

Evaluate ocean_SIS2/OM4_025

ocean_SIS2/OM4_025 needs to be evaluated in CORE mode before transitioning CM4 to SIS2.

Tasks:

  • needs to be added to the OM4 XML
  • evaluate in long runs

Enables:

  • documentation (paper for Bob?)
  • obsolete ocean_SIS/OM4_025 (SIS version of same experiment)

Add diagnostic: zos

Add the 'zos' diagnostic, where:

             eta_eff= (eta + pso / (rho * g))
             zos = eta_eff - globalAve(eta_eff)

cmor_field_name='zos', cmor_long_name='Sea Surface Height Above Geoid', cmor_units='m', cmor_standard_name='sea_surface_height_above_geoid'

KPP OBLdepth needs horizontal smoother option

We need to code a horizontal smoother option for KPP boundary layer depth. There is noise, particularly
in the tropics. Noise is the KPP OBLdepth is well known, with all groups making use of KPP finding
the need to perform a smoothing operation on the BLdepth prior to computing diffusivity and
nonlocal transport.

u_z diagnostics fail unless sampling period >DT_THERM

Turning on the u_z diagnostic with a frequency = dt_therm leads to the error:
diag_manager_mod::send_data_3d: module/output_field ocean_model_z/uo, write EMPTY buffer

The model completes and successfully writes data when the diagnostics period is larger than DT_THERM.

CM2G63L is not consistent with production ESM2G

It appears that CM2G63L is not consistent with the actual ocean configuration used in ESM2G. The following overrides were always used when running ESM2G:

#override VELOCITY_TOLERANCE = 3.0e8
#override CONTINUITY_CFL_LIMIT = 1.0
#override CONT_PPM_BETTER_ITER = False
#override CONT_PPM_USE_VISC_REM_MAX = False
#override USE_BT_CONT_TYPE = False
#override RESCALE_BT_FACE_AREAS = True
#override BT_STRONG_DRAG = False
#override NONLINEAR_BT_CONTINUITY = True

CM2G63L should be updated to reflect ESM2G and new timestats generated.

Add offline analysis to calculate heat contents/mean temperatures over various intervals

CMIP6 will be asking for heat contents integrated over certain intervals (e.g. 0-300m, 300m-700m,...). We need some analysis scripts to handle this for the immediate and mid-term.

  • Scripts should be general/argument based and stand-alone so that it can live in tools/analysis
  • Invoked from the .frepp sciptlets (in examples) for automation
  • Should use the CMOR names/output (once it is being generated by the model)

Long-term we might move this analysis online but this will involve abstracting and generalizing the _z output code (i.e. not likely be anytime soon). The analysis scripts will be a means to develop and test the online analysis but even then the scripts will always be more customizable and so still useful for working offline.

Z-space diagnostics should use the ALE remapping

The z-space diagnostics are currently using a simple interpolation in the vertical for scalars.

To do:

  • Invoke the remapping routines used for ALE to access high-order conservative remapping.
  • Transports are already conservatively remapped but could also be made higher-order.

Add hooks for ODA

Need the hooks needed for implementing ODA.

Several issues to think about:

  • We currently do not include oda_tools in the source path. Can we build it optionally or will it always be needed?
  • Is there a way to test the ODA hooks without building a complete ODA system?

Add diagnostic: rhopoto

Add the "rhopoto" diagnostic, where:

cmor_field_name='rhopoto', cmor_long_name='Sea Water Potential
Density', cmor_units='kg m-3', cmor_standard_name='sea_water_potential_density'

CMIP has requested this field be referenced to the surface. @adcroft-gfdl asked if providing N^2 would be preferred over rhopoto.

huge vertical diffusivity in CM4 and OM4

There are points in OM4 and CM4 where the vertical diffusivity gets to around 1e4 m2/sec. The diffusivities diagnosed from KPP, itides, shear are reasonable, mostly less than 1m2/sec. But the total diffusivity, kd_interface, shows values that are very very very large.

One particularly egregious place occurs in the Hudson Bay in the experiment

/archive/Bonnie.Samuels/ulm_plus_LowSens_Drag_mom6_2015.03.13/CM4_c96L48_am4c3_2000/gfdl.ncrc2-intel-prod-openmp/pp/ocean_monthly/ts/monthly/5yr/ocean_monthly.000101-000512.Kd_interface.nc

shade/l=12/y=68/x=86w:70w KD_INTERFACE

Values are huge, around 2e4 m2/sec, in the intermediate depths. Values for itides, shear, and KPP are no more than 0.05m2/sec in the same section.

Grounded berg in SIS2_bergs_cgrid

@nikizadehgfdl reported:

Even though the non-reproducibility across PE count changes seems to be fixed in dev/master for MOM6_SIS2_bergs_cgrid, the model crashes on day 12.5 with:

FATAL from PE 21: diamonds, thermodynamics: berg appears to have grounded!

This model used to run at least 20 days with the previous dev/master

Please extend the days=20 to verify this.

I have confirmed that the model crashes for the same reason at around this time using our interactive testing.

I also noticed two messages from the icebergs that are hidden when "verbose=.false.":

  1. bad lon: 218 4 210
  2. diamonds: net mass budget: recvd in= 4.5154404E+11 kg, rtrnd out= 2.2024064E+09 kg, Delta net mass= 4.4934164E+11 kg, error=-5.148E-01 nd
    The first means there are inconsistent grid data in, or on the edge of, the halo region. The second means there is a 50% error between in the mass budget as seen by SIS2 through modification of the calving field. For the corresponding SIS2_icebergs experiment (B-grid), this error is of order 1e-12. I speculate that we have a grid staggering issue somewhere! :)

Finally, the original grounded berg error indicated zero ice and ocean velocities but non-zero atmospheric winds. This event might be triggered by a new "situation" in which the C-grid ice-model permits non-zero winds on coast-lines. The bergs are meant to collide with the coast-line before landing inside a land cell so I'm not sure how this alone would lead to the above error.

Add diagnostics: tob & sob

Add the "tob" and 'sob" diagnostics.

These are 2-D fields for the temperature and salinity at the bottom of the ocean.

cmor_field_name='tob', cmor_long_name='Sea Water Potential Temperature
at Sea Floor', cmor_units='degC',
cmor_standard_name='sea_water_potential_temperature_at_sea_floor'

cmor_field_name='sob', cmor_long_name='Sea Water Salinity
at Sea Floor', cmor_units='psu',
cmor_standard_name='sea_water_salinity_at_sea_floor'

Add diagnostic: thetao & thetaoga

Add the 'thetao' diagnostic, in z-coordinates. In addition, the global average field "thetaoga" needs to be implemented.

(@adcroft-gfdl may have already completed this. If so, please close this issue.)

MOM6 dev/master does not compile with -openmp

ftn -D_USE_GENERIC_TRACER -DINTERNAL_FILE_NML -g -traceback -D_FILE_VERSION="`git-version-string /lustre/f1/Niki.Zadeh/testing_20141112_mom6_20141112/MOM6_SIS_libs_compile/src/mom6/src/MOM6/src/core/MOM_isopycnal_slopes.F90`"  -fpp -Wp,-w -I/opt/cray/netcdf/4.2.0/intel/120/include -fno-alias -auto -safe-cray-ptr -ftz -assume byterecl -i4 -r8 -nowarn -sox -traceback -I/opt/cray/netcdf/4.2.0/intel/120/include -O3 -debug minimal -fp-model source -override-limits -openmp -I/lustre/f1/Niki.Zadeh/testing_20141112_mom6_20141112/MOM6_SIS_libs_compile/ncrc2.intel-prod-openmp/exec/ocean_shared -I/lustre/f1/Niki.Zadeh/testing_20141112_mom6_20141112/MOM6_SIS_libs_compile/ncrc2.intel-prod-openmp/exec/fms  -c -I/lustre/f1/Niki.Zadeh/testing_20141112_mom6_20141112/MOM6_SIS_libs_compile/src/mom6/src/MOM6/config_src/dynamic -I/lustre/f1/Niki.Zadeh/testing_20141112_mom6_20141112/MOM6_SIS_libs_compile/src/mom6/src/MOM6/src/framework /lustre/f1/Niki.Zadeh/testing_20141112_mom6_20141112/MOM6_SIS_libs_compile/src/mom6/src/MOM6/src/core/MOM_isopycnal_slopes.F90
/lustre/f1/Niki.Zadeh/testing_20141112_mom6_20141112/MOM6_SIS_libs_compile/src/mom6/src/MOM6/src/core/MOM_isopycnal_slopes.F90(135): error #6404: This name does not have a type, and must have an explicit type.   [CS]
!$OMP                                  CS)                                  &
---------------------------------------^
/lustre/f1/Niki.Zadeh/testing_20141112_mom6_20141112/MOM6_SIS_libs_compile/src/mom6/src/MOM6/src/core/MOM_isopycnal_slopes.F90(135): error #7656: Subobjects are not allowed in this OpenMP* clause; a named variable must be specified.   [CS]
!$OMP                                  CS)                                  &
---------------------------------------^
/lustre/f1/Niki.Zadeh/testing_20141112_mom6_20141112/MOM6_SIS_libs_compile/src/mom6/src/MOM6/src/core/MOM_isopycnal_slopes.F90(227): error #6404: This name does not have a type, and must have an explicit type.   [PRESENT_INT_SLOPE_V]
!$OMP                                  h_neglect2,present_int_slope_v, &
--------------------------------------------------^
/lustre/f1/Niki.Zadeh/testing_20141112_mom6_20141112/MOM6_SIS_libs_compile/src/mom6/src/MOM6/src/core/MOM_isopycnal_slopes.F90(227): error #7656: Subobjects are not allowed in this OpenMP* clause; a named variable must be specified.   [PRESENT_INT_SLOPE_V]
!$OMP                                  h_neglect2,present_int_slope_v, &
--------------------------------------------------^
/lustre/f1/Niki.Zadeh/testing_20141112_mom6_20141112/MOM6_SIS_libs_compile/src/mom6/src/MOM6/src/core/MOM_isopycnal_slopes.F90(228): error #6404: This name does not have a type, and must have an explicit type.   [INT_SLOPE_V]
!$OMP                                  int_slope_v,KH_v,vhtot,h_frac,h_avail_rsum,  &
---------------------------------------^
/lustre/f1/Niki.Zadeh/testing_20141112_mom6_20141112/MOM6_SIS_libs_compile/src/mom6/src/MOM6/src/core/MOM_isopycnal_slopes.F90(228): error #7656: Subobjects are not allowed in this OpenMP* clause; a named variable must be specified.   [INT_SLOPE_V]
!$OMP                                  int_slope_v,KH_v,vhtot,h_frac,h_avail_rsum,  &
---------------------------------------^
/lustre/f1/Niki.Zadeh/testing_20141112_mom6_20141112/MOM6_SIS_libs_compile/src/mom6/src/MOM6/src/core/MOM_isopycnal_slopes.F90(228): error #6404: This name does not have a type, and must have an explicit type.   [KH_V]
!$OMP                                  int_slope_v,KH_v,vhtot,h_frac,h_avail_rsum,  &
---------------------------------------------------^
/lustre/f1/Niki.Zadeh/testing_20141112_mom6_20141112/MOM6_SIS_libs_compile/src/mom6/src/MOM6/src/core/MOM_isopycnal_slopes.F90(228): error #7656: Subobjects are not allowed in this OpenMP* clause; a named variable must be specified.   [KH_V]
!$OMP                                  int_slope_v,KH_v,vhtot,h_frac,h_avail_rsum,  &
---------------------------------------------------^
/lustre/f1/Niki.Zadeh/testing_20141112_mom6_20141112/MOM6_SIS_libs_compile/src/mom6/src/MOM6/src/core/MOM_isopycnal_slopes.F90(228): error #6404: This name does not have a type, and must have an explicit type.   [VHTOT]
!$OMP                                  int_slope_v,KH_v,vhtot,h_frac,h_avail_rsum,  &
--------------------------------------------------------^
/lustre/f1/Niki.Zadeh/testing_20141112_mom6_20141112/MOM6_SIS_libs_compile/src/mom6/src/MOM6/src/core/MOM_isopycnal_slopes.F90(228): error #7656: Subobjects are not allowed in this OpenMP* clause; a named variable must be specified.   [VHTOT]
!$OMP                                  int_slope_v,KH_v,vhtot,h_frac,h_avail_rsum,  &
--------------------------------------------------------^
/lustre/f1/Niki.Zadeh/testing_20141112_mom6_20141112/MOM6_SIS_libs_compile/src/mom6/src/MOM6/src/core/MOM_isopycnal_slopes.F90(228): error #6404: This name does not have a type, and must have an explicit type.   [H_FRAC]
!$OMP                                  int_slope_v,KH_v,vhtot,h_frac,h_avail_rsum,  &
--------------------------------------------------------------^
/lustre/f1/Niki.Zadeh/testing_20141112_mom6_20141112/MOM6_SIS_libs_compile/src/mom6/src/MOM6/src/core/MOM_isopycnal_slopes.F90(228): error #7656: Subobjects are not allowed in this OpenMP* clause; a named variable must be specified.   [H_FRAC]
!$OMP                                  int_slope_v,KH_v,vhtot,h_frac,h_avail_rsum,  &
--------------------------------------------------------------^
/lustre/f1/Niki.Zadeh/testing_20141112_mom6_20141112/MOM6_SIS_libs_compile/src/mom6/src/MOM6/src/core/MOM_isopycnal_slopes.F90(228): error #6404: This name does not have a type, and must have an explicit type.   [H_AVAIL_RSUM]
!$OMP                                  int_slope_v,KH_v,vhtot,h_frac,h_avail_rsum,  &
---------------------------------------------------------------------^
/lustre/f1/Niki.Zadeh/testing_20141112_mom6_20141112/MOM6_SIS_libs_compile/src/mom6/src/MOM6/src/core/MOM_isopycnal_slopes.F90(228): error #7656: Subobjects are not allowed in this OpenMP* clause; a named variable must be specified.   [H_AVAIL_RSUM]
!$OMP                                  int_slope_v,KH_v,vhtot,h_frac,h_avail_rsum,  &
---------------------------------------------------------------------^
/lustre/f1/Niki.Zadeh/testing_20141112_mom6_20141112/MOM6_SIS_libs_compile/src/mom6/src/MOM6/src/core/MOM_isopycnal_slopes.F90(229): error #6404: This name does not have a type, and must have an explicit type.   [VHD]
!$OMP                                  vhD,h_avail,Work_v,CS)               &
---------------------------------------^
/lustre/f1/Niki.Zadeh/testing_20141112_mom6_20141112/MOM6_SIS_libs_compile/src/mom6/src/MOM6/src/core/MOM_isopycnal_slopes.F90(229): error #7656: Subobjects are not allowed in this OpenMP* clause; a named variable must be specified.   [VHD]
!$OMP                                  vhD,h_avail,Work_v,CS)               &
---------------------------------------^
/lustre/f1/Niki.Zadeh/testing_20141112_mom6_20141112/MOM6_SIS_libs_compile/src/mom6/src/MOM6/src/core/MOM_isopycnal_slopes.F90(229): error #6404: This name does not have a type, and must have an explicit type.   [H_AVAIL]
!$OMP                                  vhD,h_avail,Work_v,CS)               &
-------------------------------------------^
/lustre/f1/Niki.Zadeh/testing_20141112_mom6_20141112/MOM6_SIS_libs_compile/src/mom6/src/MOM6/src/core/MOM_isopycnal_slopes.F90(229): error #7656: Subobjects are not allowed in this OpenMP* clause; a named variable must be specified.   [H_AVAIL]
!$OMP                                  vhD,h_avail,Work_v,CS)               &
-------------------------------------------^
/lustre/f1/Niki.Zadeh/testing_20141112_mom6_20141112/MOM6_SIS_libs_compile/src/mom6/src/MOM6/src/core/MOM_isopycnal_slopes.F90(229): error #6404: This name does not have a type, and must have an explicit type.   [WORK_V]
!$OMP                                  vhD,h_avail,Work_v,CS)               &
---------------------------------------------------^
/lustre/f1/Niki.Zadeh/testing_20141112_mom6_20141112/MOM6_SIS_libs_compile/src/mom6/src/MOM6/src/core/MOM_isopycnal_slopes.F90(229): error #7656: Subobjects are not allowed in this OpenMP* clause; a named variable must be specified.   [WORK_V]
!$OMP                                  vhD,h_avail,Work_v,CS)               &
---------------------------------------------------^
/lustre/f1/Niki.Zadeh/testing_20141112_mom6_20141112/MOM6_SIS_libs_compile/src/mom6/src/MOM6/src/core/MOM_isopycnal_slopes.F90(229): error #7656: Subobjects are not allowed in this OpenMP* clause; a named variable must be specified.   [CS]
!$OMP                                  vhD,h_avail,Work_v,CS)               &
----------------------------------------------------------^

Interpolate WOA05 to OM4 grid with new standard levels

We've agreed to adopt the WOA09 standard levels for "_z" output and analysis. We need the various atlases (WOA'05, '09, ?) horizontally interpolated and vertically remapped using the same algorithms that the model is using. We've done this to date using MIDAS and I see no reason to change that.

Tasks:

  • Interpolate/remap WOA05, WOA09 and WOA13.
  • Check format and compatibility with our analysis scripts.
  • Document process on a wiki page.
  • Install files in the gold/datasets and/or MDT-DET directories.

Re-factor initialize-from-z to work on individual tracers

The initialize-from-z code works in two modes, one assuming the isopycnal layer coordinate and the second assume T and S are the only inputs.

The second mode needs to be re-factored so we can call it for individual tracers and thus provide an initialize-from-z function to COBALT.

Remove LM2-based models from examples suite

In the process of re-configuring the CM2G63L example to better match the production ESM2G (see issue #42) we were reminded that our CM2G63L example uses LM2 while ESM2G uses LM3.

If we reconfigure CM2G63L to use LM3 and abandon the examples/coupled_AM2_SIS/AM2_MOM6i_1deg this has added benefit of culling the LM2-linked coupled-executable, reducing the number of required executables to 6.

In effect, this would move examples/coupled_AM2_SIS/CM2G63L to examples/coupled_AM2_LM3_SIS/CM2G63L and delete directory examples/coupled_AM2_SIS/.

@Hallberg-NOAA and @adcroft-gfdl have briefly discussed this off-line and see no-disadvantages since CM2G63L has recently been changed (#42, acf3628, d808041). Our normal response to changing a configuration for non-code related reasons is "no" but this change is moving the configuration towards the published model.

Some ocean_solo tests crash when compiled with -openmp

The following ocean_solo test cases crashing in repro-openmp mode (but pass in repro mode)
mom6_solo_DOME, mom6_solo_nonBous_global, mom6_solo_Phillips_2layer

The following test case runs but does not reproduce non-openmp timestats:
mom6_solo_single_column_z_BATS

dev/master does not compile with -openmp

commit 4841919 does not compile with -openmp


ftn -D_USE_GENERIC_TRACER -DINTERNAL_FILE_NML -g -traceback -D_FILE_VERSION="`git-version-string /lustre/f1/unswept/Niki.Zadeh/testing_mom6_20140909/FMS_compile_libs/src/mom6/src/parameterizations/lateral/MOM_lateral_mixing_coeffs.F90`"  -fpp -Wp,-w -I/opt/cray/netcdf/4.2.0/intel/120/include -fno-alias -auto -safe-cray-ptr -ftz -assume byterecl -i4 -r8 -nowarn -sox -I/opt/cray/netcdf/4.2.0/intel/120/include -O2 -debug minimal -fp-model precise -override-limits -openmp -I/lustre/f1/unswept/Niki.Zadeh/testing_mom6_20140909/FMS_compile_libs/ncrc2.intel-repro-openmp/exec/ocean_shared -I/lustre/f1/unswept/Niki.Zadeh/testing_mom6_20140909/FMS_compile_libs/ncrc2.intel-repro-openmp/exec/fms  -c -I/lustre/f1/unswept/Niki.Zadeh/testing_mom6_20140909/FMS_compile_libs/src/mom6/config_src/dynamic -I/lustre/f1/unswept/Niki.Zadeh/testing_mom6_20140909/FMS_compile_libs/src/mom6/src/framework        /lustre/f1/unswept/Niki.Zadeh/testing_mom6_20140909/FMS_compile_libs/src/mom6/src/parameterizations/lateral/MOM_lateral_mixing_coeffs.F90
/lustre/f1/unswept/Niki.Zadeh/testing_mom6_20140909/FMS_compile_libs/src/mom6/src/parameterizations/lateral/MOM_lateral_mixing_coeffs.F90(201): error #6752: Since the OpenMP* DEFAULT(NONE) clause applies, the PRIVATE, SHARED, REDUCTION, FIRSTPRIVATE, or LASTPRIVATE attribute must be explicitly specified for every variable.   [CG1_U]
        cg1_u = 0.5 * (CS%cg1(i,j) + CS%cg1(i+1,j))
--------^
/lustre/f1/unswept/Niki.Zadeh/testing_mom6_20140909/FMS_compile_libs/src/mom6/src/parameterizations/lateral/MOM_lateral_mixing_coeffs.F90(211): error #6752: Since the OpenMP* DEFAULT(NONE) clause applies, the PRIVATE, SHARED, REDUCTION, FIRSTPRIVATE, or LASTPRIVATE attribute must be explicitly specified for every variable.   [CG1_V]
        cg1_v = 0.5 * (CS%cg1(i,j) + CS%cg1(i,j+1))
--------^
compilation aborted for /lustre/f1/unswept/Niki.Zadeh/testing_mom6_20140909/FMS_compile_libs/src/mom6/src/parameterizations/lateral/MOM_lateral_mixing_coeffs.F90 (code 1)
make[1]: *** [MOM_lateral_mixing_coeffs.o] Error 1
make[1]: *** Waiting for unfinished jobs....

Changing BTHALO from 4 to 10 changes answers after openmp updates

Using wide-halos in the baroptroic solver changes answers. This was last known to work before merging in the openmp branch. To reproduce problem in examples/ocean_SIS/GOLD_SIS set "BTHALO = 10".

Checked in answers use BTHALO =0 which effectivley means a halo-width of 4.

Add ocean_SIS2/OM4_025

To transition CM4 to SIS2 we need a mirror experiment of ocean_SIS/OM4_025 but using SIS2 instead of SIS.

Tasks:

  • create experiment directory
  • add to regressions (timestats for developers, XML regressions)

compilation error with -openmp in dev/master/2014.05.23

ftn -D_USE_GENERIC_TRACER -DINTERNAL_FILE_NML -g -traceback -D_FILE_VERSION="git-version-string /lustre/f1/Niki.Zadeh/testing_20140527/FMS_compile_libs/src/mom6/src/parameterizations/lateral/MOM_thickness_diffuse.F90" -fpp -Wp,-w -I/opt/cray/netcdf/4.2.0/intel/120/include -fno-alias -auto -safe-cray-ptr -ftz -assume byterecl -i4 -r8 -nowarn -sox -I/opt/cray/netcdf/4.2.0/intel/120/include -O2 -debug minimal -fp-model precise -override-limits -openmp -I/lustre/f1/Niki.Zadeh/testing_20140527/FMS_compile_libs/ncrc2.intel-repro-openmp/exec/ocean_shared -I/lustre/f1/Niki.Zadeh/testing_20140527/FMS_compile_libs/ncrc2.intel-repro-openmp/exec/fms -c -I/lustre/f1/Niki.Zadeh/testing_20140527/FMS_compile_libs/src/mom6/config_src/dynamic -I/lustre/f1/Niki.Zadeh/testing_20140527/FMS_compile_libs/src/mom6/src/framework /lustre/f1/Niki.Zadeh/testing_20140527/FMS_compile_libs/src/mom6/src/parameterizations/lateral/MOM_thickness_diffuse.F90
/lustre/f1/Niki.Zadeh/testing_20140527/FMS_compile_libs/src/mom6/src/parameterizations/lateral/MOM_thickness_diffuse.F90(628): error #6752: Since the OpenMP* DEFAULT(NONE) clause applies, the PRIVATE, SHARED, REDUCTION, FIRSTPRIVATE, or LASTPRIVATE attribute must be explicitly specified for every variable. [CS]
if (CS%id_slope_x > 0) CS%diagSlopeX(I,j,k) = Slope
--------------^
/lustre/f1/Niki.Zadeh/testing_20140527/FMS_compile_libs/src/mom6/src/parameterizations/lateral/MOM_thickness_diffuse.F90(808): error #6752: Since the OpenMP* DEFAULT(NONE) clause applies, the PRIVATE, SHARED, REDUCTION, FIRSTPRIVATE, or LASTPRIVATE attribute must be explicitly specified for every variable. [CS]
if (CS%id_slope_y > 0) CS%diagSlopeY(I,j,k) = Slope
--------------^
compilation aborted for /lustre/f1/Niki.Zadeh/testing_20140527/FMS_compile_libs/src/mom6/src/parameterizations/lateral/MOM_thickness_diffuse.F90 (code 1)
make[1]: *** [MOM_thickness_diffuse.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: Leaving directory `/lustre/f1/Niki.Zadeh/testing_20140527/FMS_compile_libs/ncrc2.intel-repro-openmp/exec/mom6'
make: *** [mom6/libmom6.a] Error 2
make: *** Waiting for unfinished jobs....

coupled models crash when MOM6 is compiled with -openmp

In branch dev/master/2014.06.23 (testing tag) all coupled test cases crash when I compile with -openmp
Here's the traceback:

forrtl: severe (174): SIGSEGV, segmentation fault occurred
Image              PC                Routine            Line        Source             
fms_MOM6_SIS_LAD_  000000000185D246  mom_tracer_hor_di         303  MOM_tracer_hor_diff.F90
fms_MOM6_SIS_LAD_  0000000001717C50  mom_mp_step_mom_         1062  MOM.F90
fms_MOM6_SIS_LAD_  00000000016C2F27  ocean_model_mod_m         368  ocean_model_MOM.F90
fms_MOM6_SIS_LAD_  00000000004013C7  MAIN__                    687  coupler_main.F90

-t repro does not have this problem.

To reproduce the issue:

fremake --execute --nolink -x /ncrc/home2/Niki.Zadeh/frerts/testing_20140623/MOM6_CM.xml.20140624170350 -p ncrc2.intel -t repro-openmp MOM6_CM_libs_compile

fremake --execute -x /ncrc/home2/Niki.Zadeh/frerts/testing_20140623/MOM6_CM.xml.20140624170350 -p ncrc2.intel -t repro-openmp MOM6_SIS_LAD_FV_compile

frerun -s -r basic -u --no-transfer -x /ncrc/home2/Niki.Zadeh/frerts/testing_20140623/MOM6_CM.xml.20140624170350 -p ncrc2.intel -t repro-openmp MOM6_AM2_MOM6i_1deg

read_param_char_array() only reads first entry in list of strings

I suspect I broke read_param_char_array() two years ago! It seems we haven't exercised the ability to read a list of strings since.

@jkansong reported issues reading multiple tidal input files. A list of files in is MOM_input but only the first in the list is seen by the MOM_tidal_forcing.F90 and written out by log_param().

I've think I've traced it back to read_param_char_array() which appears to expect multiple strings from get_variable_line() but get_variable_line() is only returning one string.

ocean-ice tests crash with OOM when compiled with PGI

With -p ncrc2.pgi -t repro-openmp ocean-ice testcases crash around day 17 with the following message:

  [NID 00151] 2014-05-01 20:41:14 Apid 121706: initiated application termination
  [NID 00151] 2014-05-02 00:41:17 Apid 121706: OOM killer terminated this process.
  Application 121706 exit signals: Killed

print_memory_usage shows a uniform memory increase in each timestep:

       20140502 102929.609: Memuse(MB) at Main loop at coupling timestep=     1=  2.120E+02  2.236E+02  2.231E+00  2.187E+02
       20140502 103440.266: Memuse(MB) at Main loop at coupling timestep=   100=  1.007E+03  1.030E+03  6.008E+00  1.015E+03
       20140502 103944.863: Memuse(MB) at Main loop at coupling timestep=   200=  1.808E+03  1.835E+03  7.737E+00  1.818E+03
       20140502 104046.886: Memuse(MB) at Main loop at coupling timestep=   219=  1.964E+03  1.992E+03  6.961E+00  1.975E+03
      [NID 00028] 2014-05-02 10:40:50 Apid 121760: initiated application termination
      [NID 00028] 2014-05-02 14:40:53 Apid 121760: OOM killer terminated this process.

These are the tests that crashed:
/lustre/f1/Niki.Zadeh/tikal_201403_cjgUpdates_mom6_20140501_libs/MOM6_GOLD_SIS/ncrc2.pgi-repro-openmp/stdout/run/MOM6_GOLD_SIS_1x0m20d_32pe.o5032301
/lustre/f1/Niki.Zadeh/tikal_201403_cjgUpdates_mom6_20140501_libs/MOM6_GOLD_SIS_symmetric/ncrc2.pgi-repro-openmp/stdout/run/MOM6_GOLD_SIS_symmetric_1x0m20d_32pe.o5032302
/lustre/f1/Niki.Zadeh/tikal_201403_cjgUpdates_mom6_20140501_libs/MOM6_GOLD_SIS_icebergs/ncrc2.pgi-repro-openmp/stdout/run/MOM6_GOLD_SIS_icebergs_1x0m20d_32pe.o5032303
/lustre/f1/Niki.Zadeh/tikal_201403_cjgUpdates_mom6_20140501_libs/MOM6_SIS2/ncrc2.pgi-repro-openmp/stdout/run/MOM6_SIS2_1x0m20d_32pe.o5032311
/lustre/f1/Niki.Zadeh/tikal_201403_cjgUpdates_mom6_20140501_libs/MOM6_SIS2_cgrid/ncrc2.pgi-repro-openmp/stdout/run/MOM6_SIS2_cgrid_1x0m20d_32pe.o5032314

analysis script TS_depth_integrals.py does not work

First problem is that it gives "Permission denied."

an010: %
   source $MODULESHOME/init/csh
   module use -a /home/fms/local/modulefiles #/usr/local/paida/Modules
   module purge
   module load $fremodule
   module load $freanalysismodule
   module load gcc
   module load netcdf/4.2
   module load python/2.7.3

an010: % cd  /ptmp/Niki.Zadeh/archive/Niki.Zadeh/testing_mom6_20141008/OM4_SIS_baseline_TEST/gfdl.ncrc2-intel-prod/history/19000101.nc
an010:  % /nbhome/Niki.Zadeh/testing_mom6_20141008/OM4_SIS_baseline_TEST/mom6/tools/analysis/TS_depth_integrals.py -r /archive/gold/datasets/OM4_025/obs/WOA05_ptemp_salt_annual.v20141006.nc -s 0 -e 300 -g /archive/gold/datasets/OM4_025/mosaic.v20140610.unpacked -o /nbhome/Niki.Zadeh/testing_mom6_20141008/OM4_SIS_baseline_TEST/ocean_1902-1903/heat_salt_0_300m -l 1902-1903 /archive/Niki.Zadeh/testing_mom6_20141008/OM4_SIS_baseline_TEST/gfdl.ncrc2-intel-prod/pp/ocean_annual/av/annual_2yr//ocean_annual.1902-1903.ann.nc                                   
/nbhome/Niki.Zadeh/testing_mom6_20141008/OM4_SIS_baseline_TEST/mom6/tools/analysis/TS_depth_integrals.py: Permission denied.       

I tried

% chmod +x /nbhome/Niki.Zadeh/testing_mom6_20141008/OM4_SIS_baseline_TEST/mom6/tools/analysis/TS_depth_integrals.py

Second problem is then I got

% /nbhome/Niki.Zadeh/testing_mom6_20141008/OM4_SIS_baseline_TEST/mom6/tools/analysis/TS_depth_integrals.py -r /archive/gold/datasets/OM4_025/obs/WOA05_ptemp_salt_annual.v20141006.nc -s 0 -e 300 -g /archive/gold/datasets/OM4_025/mosaic.v20140610.unpacked -o /nbhome/Niki.Zadeh/testing_mom6_20141008/OM4_SIS_baseline_TEST/ocean_1902-1903/heat_salt_0_300m -l 1902-1903 /archive/Niki.Zadeh/testing_mom6_20141008/OM4_SIS_baseline_TEST/gfdl.ncrc2-intel-prod/pp/ocean_annual/av/annual_2yr//ocean_annual.1902-1903.ann.nc
appending ferret path
from: Command not found.
from: Command not found.
import: unable to grab mouse `': Resource temporarily unavailable @ xwindow.c/XSelectWindow/8969.
import: unable to grab mouse `': Resource temporarily unavailable @ xwindow.c/XSelectWindow/8969.
Badly placed ()'s.

need check for npes > ni, nj

There should be an "idiot" check for the case where npes is greater than the number of grid points in the model. For example, with the SCM tests, the model crashes when npe>1, but there is no error message that tells the user what went wrong. It is obvious after-the-fact, but for new users (e.g., Griffies), it would prove very useful to have this sort of error message, particularly since the example run command on the wiki has "aprun -n 8".

Update OM4 analysis scripts invoked by FRE to use the "_z" output

OM4 analysis scripts are working in z-space with native grid output. We need to adapt the scripts to use the z-remapped output so that the analyses still work when the coordinate is hybridized or layer-isopycnal.

Steps:

  • Verify/fix the stand alone scripts to work on the "_z" output.
  • Change the paths to the output passed by the frepp sciptlets.

ALE mode needs to use G%nk_rho_varies=nz

In bulk-mixed layer mode, nk_rho_varies = nkml+nkbl, the number of mixed- and buffer-layers. Since nkml+nkbl=0 when not using the bulk-mixed layer we tested ALE using mk_rho_varies=0 so far.

Routines possibly impacted:

core/MOM_PressureForce_analytic_FV.F90
diagnostics/MOM_diagnostics.F90
diagnostics/MOM_PointAccel.F90
initialization/MOM_initialization.F90
parameterizations/vertical/MOM_set_viscosity.F90
parameterizations/vertical/MOM_regularize_layers.F90
parameterizations/vertical/MOM_sponge.F90
parameterizations/vertical/MOM_set_diffusivity.F90
parameterizations/vertical/MOM_diabatic_driver.F90
parameterizations/vertical/MOM_entrain_diffusive.F90
parameterizations/vertical/MOM_geothermal.F90
parameterizations/lateral/MOM_thickness_diffuse.F90
tracer/MOM_tracer_hor_diff.F90

A cursory inspection reveals likely problems only with set_density_ratios() and add_drag_diffusivity() in MOM_set_viscosity.F90.

examples/solo_ocean/adjustment2d/z crashes in the 7th hour

tikal_201409 + dev/master/2014.08.29
To see this crash set days=2 in input.nml :

MOM Time    7.000    168: En 3.449963E-02, MaxCFL  0.22175, Mass 5.120000000000E+13, Salt   2.50000000000, Temp   0.00000000000
    Total Energy: 4279B4480713ACAF  1.7663808269387927E+12
    Total Mass:   5.1200000000000000E+13, Change:  6.10352E-05 Error:  6.10352E-05 ( 1.2E-18)
    Total Salt:   1.2800000000000000E+11, Change:  4.76667E-09 Error:  4.76667E-09 ( 3.7E-20)
    Total Heat:   0.0000000000000000E+00, Change:  0.00000E+00 Error:  0.00000E+00
 h0=  0.800110785733361       0.800110785733365       0.800110785733365
  0.800110785733365       0.800110785733365       0.800110785733365
  0.800110785733365       0.800110785733365       0.800110785733365
  0.800110785733365       0.800110785733365       0.800110785733366
  0.800110785733366       0.800110785733366       0.800110785733366
  0.800110785733366       0.800110785733366       0.800110785733365
  0.800110785733364       0.800110785733365       0.800110785733363
  0.800110785733363       0.800110785733364       0.800110785733364
  0.800110785733358
 hf=  0.800110785733362       0.800110785733365       0.800110785733365
  0.800110785733365       0.800110785733365       0.800110785733366
  0.800110785733366       0.800110785733366       0.800110785733366
  0.800110785733366       0.800110785733366       0.800110785733365
  0.800110785733364       0.800110785733365       0.800110785733363
  0.800110785733363       0.800110785733364       0.800110785733364
  0.800110785733358
 hf=  0.800110785733362       0.800110785733365       0.800110785733365
  0.800110785733365       0.800110785733365       0.800110785733365
  0.800110785733364       0.800110785733365       0.800110785733365
  0.800110785733365       0.800110785733365       0.800110785733364
  0.800110785733364       0.800110785733364       0.800110785733364
  0.800110785733364       0.800110785733364       0.800110785733365
  0.800110785733364       0.800110785733365       0.800110785733363
  0.800110785733367       0.800110785733367       0.800110785733367
  0.800110785733358
 u0=  0.000000000000000E+000  0.000000000000000E+000  0.000000000000000E+000
  0.000000000000000E+000  0.000000000000000E+000  0.000000000000000E+000
  0.000000000000000E+000  0.000000000000000E+000  1.360349790147924E-305
  1.110994402581523E-301  2.110128523361446E-298  3.280085616946167E-297
  9.540652515780030E-297  2.496891555583949E-296  6.552868336743530E-296
  1.578775078945137E-295  3.455834097072226E-295  6.998962982003220E-295
  1.338567347137354E-294  2.456733023381388E-294  4.385509443864232E-294
  7.678011800965223E-294  1.328791575437204E-293  2.320790153903491E-293
  3.770083001084791E-293
 u1=  0.000000000000000E+000  0.000000000000000E+000  0.000000000000000E+000
  0.000000000000000E+000  0.000000000000000E+000  0.000000000000000E+000
  0.000000000000000E+000  0.000000000000000E+000  1.360349790147924E-305
  1.110994402581523E-301  2.110128523361446E-298  3.280085616946175E-297
  9.540652515780051E-297  2.496891555583954E-296  6.552868336743544E-296
  1.578775078945140E-295  3.455834097072234E-295  6.998962982003220E-295
  1.338567347137354E-294  2.456733023381355E-294  4.385509443864232E-294
  7.678011800965190E-294  1.328791575437198E-293  2.320790153903487E-293
  3.770083001084791E-293
 total HU0,HUf,f-0=  7.310000612270756E-293  7.310000612270758E-293
  2.225073858507201E-308
 err0,errF=  0.000000000000000E+000  0.000000000000000E+000

FATAL from PE     7: MOM_remapping, remapping_core: Total stuff on h0 and hF differ by more than roundoff

CM4_c192L48_am4a3 crashes with debug executable: output conversion error, unit -5, file Internal Formatted Write

There is no FATAL, the model just cores when debug mode executable is used with a traceback:

forrtl: error (63): output conversion error, unit -5, file Internal Formatted Write
Image              PC                Routine            Line        Source
ms_cm4_compile.x  00000000027CEE64  mom_grid_initiali         440  MOM_grid_initialize.F90
fms_cm4_compile.x  00000000027CD25F  mom_grid_initiali         399  MOM_grid_initialize.F90
fms_cm4_compile.x  0000000003497845  mom_initializatio         293  MOM_initialization.F90
fms_cm4_compile.x  000000000216AC19  mom_mp_initialize        1743  MOM.F90
fms_cm4_compile.x  0000000001FABD64  ocean_model_mod_m         223  ocean_model_MOM.F90
fms_cm4_compile.x  0000000000415F20  coupler_main_IP_c        1466  coupler_main.F90
fms_cm4_compile.x  0000000000400A46  MAIN__                    428  coupler_main.F90

Add diagnostic: thkcello

Add the 'thkcello' diagnostic. Note that the vertical remapping process will complicate this as thkcello will become time-dependent.

For now, this diagnostic should be based on 'h' and follow the convention:

cmor_field_name='thkcello', cmor_long_name='Ocean Model Cell Thickness', cmor_units='m', cmor_standard_name='cell_thickness'

MOM6_SIS2_bergs_cgrid does not reproduce across PE count change

/// /lustre/f1/Niki.Zadeh/testing_mom6_20140826_0/MOM6_SIS2_bergs_cgrid/ncrc2.intel-repro-openmp/1x0m20d_32pe/restart/00010121.tar
\\\ /lustre/f1/Niki.Zadeh/testing_mom6_20140826_0/MOM6_SIS2_bergs_cgrid/ncrc2.intel-repro-openmp/1x0m20d_64pe/restart/00010121.tar
DIFFER : 00010121.timestats.res
DIFFER : icebergs.res.nc
DIFFER : ice_model.res.nc
DIFFER : MOM.res.nc
DIFFER : ocmip2_cfc.res.nc

Add basin masks as a diagnostic

Add basin masks as a diagnostic. This field should be output to the model's static file. The field should have the following conventions:

cmor_name='basin', cmor_long_name='Region Selection Index', cmor_units='dimensionless', cmor_standard_name='region'

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.