mom-ocean / mom6 Goto Github PK
View Code? Open in Web Editor NEWModular Ocean Model
License: Other
Modular Ocean Model
License: Other
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) &
----------------------------------------------------------^
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.
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.
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:
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.
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
Add the 'masso' diagnostic, where:
masso = the global sum of masscello (mass_wt)
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'
Interface needs to be generalized and must support adding additional attributes:
cmor_field_name
cmor_long_name
cmor_units
cmor_standard_name
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
All MOM6 diagnostics need to be reviewed so that the units are CMOR compliant. Special attention needs to be paid to division and exponent operators.
example: W/m**2 should be W m-2
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.
If you run with ALE set to regrid (onto say, the z* coordinate), but with ENABLE_THERMODYNAMICS = False
, a few crashes occur where it is assumed that temperature and salinity are accessible as a consequence of having ALE enabled:
To avoid divisions by zero, thicknesses default to ANGSTROM. ANGTROM=0 should work and doing so will allow us to test and validate solutions with and without mask_tables.
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.
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.
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.
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.
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".
Ferarri et al., 20xx, describe a elliptic solve in the vertical for a bolus smooth stream function.
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.
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.
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....
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
There are many errors in different files regarding the scope of the variables within OMP blocks. I am fixing them as I go and will do a pull request when I'm done.
@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.":
bad lon: 218 4 210
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
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 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'
It is missing many input files for ATM. Tests won't run:
FATAL from PE 26: mg_drag_init: source_of_sgsmtn="computed", but topography data file does not exist
ocean_SIS2/OM4_025 needs to be evaluated in CORE mode before transitioning CM4 to SIS2.
Tasks:
Enables:
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.)
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....
Need the hooks needed for implementing ODA.
Several issues to think about:
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'
/// /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
Commit c0fbf98 was meant to move all "_z" output from the "ocean_model" component to "ocean_model_z". It seems some variable names are constructed and those variables have thus not been moved.
Using DIABATIC_FIRST=True
in GOLD_SIS causes a segmentation fault.
Detected when @StephenGriffies and @adcroft-gfdl were extending surface flux diagnostics.
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.
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.
Add the 'pbo' diagnostic, where:
pbo = col_mass + pso
MOM6-examples/ocean_only/global_ALE/layer/timestats.gnu: WARNING from PE 0: MOM_file_parser : PASSIVE found outside of block CONVECTION%. Ignoring.
To transition CM4 to SIS2 we need a mirror experiment of ocean_SIS/OM4_025 but using SIS2 instead of SIS.
Tasks:
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'
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
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.
MOM_set_diffusivity() is a bit of a mess. Especially after @adcroft-gfdl added KPP to it.
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
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:
@StephenGriffies agreed to check whether salinity should be expressed as psu or ppt for diagnostic output.
The z-space diagnostics are currently using a simple interpolation in the vertical for scalars.
To do:
Add the 'volo' diagnostic, where:
volo = global sum of thkcello
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.