Hello everyone,
Hope you're all doing well.
SETUP: main branch of MOM6 (downloaded and built 2 months ago from main repo), no modification to the code
I'm rather new to MOM6, and I am trying to force a Southern Ocean zonally reentrant channel model with time varying surface wind and buoyancy profiles, based on this configuration from H. Khatri and G. MacGilchrist, in which forcing profiles are time-independent.
This time-independent forcing simulation runs without problem on Archer2 (UK) computing facility.
My forcing profiles are varying monthly, so that for example, my zonal wind stress in the wind.nc (see end of post for wind.nc and input.nml) forcing file has dimensions taux(Time, lath, lonh) = taux(12,272,320).
I use a "NOLEAP" calendar, with 360 days long years. Looking into ocean_only examples "single_column" and "global", I guessed that the time evolution/periodicity of forcing is either specified through:
# 1) average_T1, average_T2 and average_DT data variables,
and/or
# 2) modulo attribute of Time coordinate.
I wrote the forcing files with both of these specified.
In MOM_input I'm specifying "VARIABLE_WINDS = True"
PROBLEM: At runtime, MOM6 directly raises the following error:
####
320 272 1 320 272 12
FATAL from PE 6: fms_io(read_data_3d_new), field taux in file INPUT/wind.nc: field size mismatch 1
####
which comes from this bit of code from fms_io.F90:
####
5421 subroutine read_data_3d_new(filename,fieldname,data,domain,timelevel, &
1 no_domain, scalar_or_1d, position, tile_count)
................
5517 if (siz_in(1) /= gxsize .or. siz_in(2) /= gysize .or. siz_in(3) /= size(data,3)) then
1 PRINT *, gxsize, gysize, size(data, 3), siz_in(1), siz_in(2), siz_in(3)
2 call mpp_error(FATAL,'fms_io(read_data_3d_new), field '//trim(fieldname)// &
3 ' in file '//trim(filename)//': field size mismatch 1')
####
QUESTION: Do you have any idea how to solve this issue? I don't see how this happens. and more generally, I'm really not sure how time periodicity/evolution of file-specified forcing fields are understood by MOM6.
Thanks in advance for any info on the matter!
All the best,
Nelson
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
ncdump -h wind.nc :
dimensions:
Time = 12 ;
lath = 272 ;
lonh = 320 ;
variables:
double Time(Time) ;
Time:_FillValue = 0. ;
Time:units = "days since 0001-01-01 00:00:00" ;
Time:calendar = "NOLEAP" ;
Time:cartesian_axis = "T" ;
Time:modulo = 360. ;
double lath(lath) ;
lath:_FillValue = 0. ;
lath:units = "degrees north" ;
lath:standard_name = "Latitude" ;
lath:cartesian_axis = "Y" ;
double lonh(lonh) ;
lonh:_FillValue = 0. ;
lonh:units = "degrees east" ;
lonh:standard_name = "Longitude" ;
lonh:cartesian_axis = "X" ;
double taux(Time, lath, lonh) ;
taux:_FillValue = -1.e+34 ;
taux:units = "N/m2" ;
taux:standard_name = "Zonal wind stress" ;
taux:missing_value = -1.e+34 ;
double tauy(Time, lath, lonh) ;
tauy:_FillValue = -1.e+34 ;
tauy:units = "N/m2" ;
tauy:standard_name = "Meridional wind stress" ;
tauy:missing_value = -1.e+34 ;
double average_T1(Time) ;
average_T1:_FillValue = 1.e+20 ;
average_T1:long_name = "Start time for average period" ;
average_T1:units = "days since 0001-01-01 00:00:00" ;
average_T1:missing_value = 1.e+20 ;
double average_T2(Time) ;
average_T2:_FillValue = 1.e+20 ;
average_T2:long_name = "End time for average period" ;
average_T2:units = "days since 0001-01-01 00:00:00" ;
average_T2:missing_value = 1.e+20 ;
double average_DT(Time) ;
average_DT:_FillValue = 1.e+20 ;
average_DT:long_name = "Length of average period" ;
average_DT:units = "days" ;
average_DT:missing_value = 1.e+20 ;
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
cat input.nml
&MOM_input_nml
output_directory = 'OUTPUT_0/',
input_filename='n'
restart_input_dir = 'RESTART_IN/',
restart_output_dir = 'RESTART_OUT/',
parameter_filename = 'MOM_input',
'MOM_override' /
&diag_manager_nml
/
&fms_nml
domains_stack_size = 5000000,
stack_size = 0 /
&ocean_solo_nml
date_init = 1,1,1,0,0,0
calendar = 'thirty_day' /
Hope you're all doing well.
SETUP: main branch of MOM6 (downloaded and built 2 months ago from main repo), no modification to the code
I'm rather new to MOM6, and I am trying to force a Southern Ocean zonally reentrant channel model with time varying surface wind and buoyancy profiles, based on this configuration from H. Khatri and G. MacGilchrist, in which forcing profiles are time-independent.
This time-independent forcing simulation runs without problem on Archer2 (UK) computing facility.
My forcing profiles are varying monthly, so that for example, my zonal wind stress in the wind.nc (see end of post for wind.nc and input.nml) forcing file has dimensions taux(Time, lath, lonh) = taux(12,272,320).
I use a "NOLEAP" calendar, with 360 days long years. Looking into ocean_only examples "single_column" and "global", I guessed that the time evolution/periodicity of forcing is either specified through:
# 1) average_T1, average_T2 and average_DT data variables,
and/or
# 2) modulo attribute of Time coordinate.
I wrote the forcing files with both of these specified.
In MOM_input I'm specifying "VARIABLE_WINDS = True"
PROBLEM: At runtime, MOM6 directly raises the following error:
####
320 272 1 320 272 12
FATAL from PE 6: fms_io(read_data_3d_new), field taux in file INPUT/wind.nc: field size mismatch 1
####
which comes from this bit of code from fms_io.F90:
####
5421 subroutine read_data_3d_new(filename,fieldname,data,domain,timelevel, &
1 no_domain, scalar_or_1d, position, tile_count)
................
5517 if (siz_in(1) /= gxsize .or. siz_in(2) /= gysize .or. siz_in(3) /= size(data,3)) then
1 PRINT *, gxsize, gysize, size(data, 3), siz_in(1), siz_in(2), siz_in(3)
2 call mpp_error(FATAL,'fms_io(read_data_3d_new), field '//trim(fieldname)// &
3 ' in file '//trim(filename)//': field size mismatch 1')
####
QUESTION: Do you have any idea how to solve this issue? I don't see how this happens. and more generally, I'm really not sure how time periodicity/evolution of file-specified forcing fields are understood by MOM6.
Thanks in advance for any info on the matter!
All the best,
Nelson
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
ncdump -h wind.nc :
dimensions:
Time = 12 ;
lath = 272 ;
lonh = 320 ;
variables:
double Time(Time) ;
Time:_FillValue = 0. ;
Time:units = "days since 0001-01-01 00:00:00" ;
Time:calendar = "NOLEAP" ;
Time:cartesian_axis = "T" ;
Time:modulo = 360. ;
double lath(lath) ;
lath:_FillValue = 0. ;
lath:units = "degrees north" ;
lath:standard_name = "Latitude" ;
lath:cartesian_axis = "Y" ;
double lonh(lonh) ;
lonh:_FillValue = 0. ;
lonh:units = "degrees east" ;
lonh:standard_name = "Longitude" ;
lonh:cartesian_axis = "X" ;
double taux(Time, lath, lonh) ;
taux:_FillValue = -1.e+34 ;
taux:units = "N/m2" ;
taux:standard_name = "Zonal wind stress" ;
taux:missing_value = -1.e+34 ;
double tauy(Time, lath, lonh) ;
tauy:_FillValue = -1.e+34 ;
tauy:units = "N/m2" ;
tauy:standard_name = "Meridional wind stress" ;
tauy:missing_value = -1.e+34 ;
double average_T1(Time) ;
average_T1:_FillValue = 1.e+20 ;
average_T1:long_name = "Start time for average period" ;
average_T1:units = "days since 0001-01-01 00:00:00" ;
average_T1:missing_value = 1.e+20 ;
double average_T2(Time) ;
average_T2:_FillValue = 1.e+20 ;
average_T2:long_name = "End time for average period" ;
average_T2:units = "days since 0001-01-01 00:00:00" ;
average_T2:missing_value = 1.e+20 ;
double average_DT(Time) ;
average_DT:_FillValue = 1.e+20 ;
average_DT:long_name = "Length of average period" ;
average_DT:units = "days" ;
average_DT:missing_value = 1.e+20 ;
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
cat input.nml
&MOM_input_nml
output_directory = 'OUTPUT_0/',
input_filename='n'
restart_input_dir = 'RESTART_IN/',
restart_output_dir = 'RESTART_OUT/',
parameter_filename = 'MOM_input',
'MOM_override' /
&diag_manager_nml
/
&fms_nml
domains_stack_size = 5000000,
stack_size = 0 /
&ocean_solo_nml
date_init = 1,1,1,0,0,0
calendar = 'thirty_day' /