Scheduled Downtime
On Tuesday 24 October 2023 @ 5pm MT the forums will be in read only mode in preparation for the downtime. On Wednesday 25 October 2023 @ 5am MT, this website will be down for maintenance and expected to return online later in the morning.
Normal Operations
The forums are back online with normal operations. If you notice any issues or errors related to the forums, please reach out to help@ucar.edu

Set up of MOM6 vertical structure

vijay

Vijay
New Member
Hello MOM6 community,

I would like to know how to set up the vertical structure of MOM6, especially the hybrid structure with z-layers in the top and isopycnals in the deep interior ocean. My main interest is in the Indian Ocean. I have looked in /MOM6-examples-dev-gfdl/ice_ocean_SIS2/OM4_025/preprocessing but could not find any script to generate or tweak the hybrid vertical structure of MOM6.

I have also checked in MOM6-examples-dev-gfdl/ocean_only/global_ALE/hycom but to no avail. There are vertical grid files such as hycom1_50 but it is not clear how they are generated.

Any help will be much appreciated.

Thank you.
 

adcroft

Alistair Adcroft
Member
We don't have a tool to do this right now. These files were created by hand (and under a time constraint). I am currently working on new coordinate profiles for OM4 and will post a jupyter notebook once things are working. Frankly, it takes a bit of trial and error to get hybrid coordinate profiles that make any sense. For a new domain, it might be easier to start with a pure z*-coordinate and then design the hybrid coordinate once all the other engineering is done.
 

vijay

Vijay
New Member
We don't have a tool to do this right now. These files were created by hand (and under a time constraint). I am currently working on new coordinate profiles for OM4 and will post a jupyter notebook once things are working. Frankly, it takes a bit of trial and error to get hybrid coordinate profiles that make any sense. For a new domain, it might be easier to start with a pure z*-coordinate and then design the hybrid coordinate once all the other engineering is done.
Dear Alistair,
Thank you for the reply. Is there any update on this?
I am working with ice_ocean_SIS2/OM4_025 test case. I am trying to prepare a suitable hybrid coordinate configuration for the Indian Ocean. To understand the process, I am playing by tweaking the file MOM6-examples/ice_ocean_SIS2/OM4_025/INPUT/hycom_75_800m.nc. I kept the number of z* thickness levels the same as default (75 level thickness) but removed the top few density layers (54 sigma2 interface levels after edit) as the density range of tropical oceans is less compared to the global ocean. But when I tried to run, I am getting the following error:

FATAL from PE 0: fms_io(read_data_3d_new), field sigma2 in file INPUT/hycom1_75_800m.nc: field size mismatch 1

I have checked /MOM6-examples/src/FMS1/fms/fms_io.F90 but couldn't figure out why there was a mismatch.

The edited hycom_75_800m.nc file, MOM_input and the error log are attached herewith.

Any suggestions on how to proceed? Thank you.
 

adcroft

Alistair Adcroft
Member
There should be N+1 target densities and N level thicknesses. N=75 in your case. If you want to keep N=75 but adapt to regional water masses you should alter the values, not delete. However, be aware the reason for the extremely light target densities is to ensure that they are never found, thereby forcing the model to resort to z* levels for those interfaces.
 

vijay

Vijay
New Member
Dear Alistair,
Thank you for the reply. Following your suggestion, I have prepared an input file with 53 level thicknesses and 54 target densities. These values are derived from the original 75 levels input keeping the lower and upper bounds almost the same. However, I am still getting the error I mentioned in the earlier:

FATAL from PE 0: fms_io(read_data_3d_new), field sigma2 in file INPUT/hycom1_53_800m.nc: field size mismatch 1
55 1 1 54 1 1

I understand that '54' is the number of target densities but I do not know where the mismatched number '55' is coming from.

I am attaching the MOM_input, hycom1_53_800m.nc, layer_coord.nc and the logfile for your reference. Please give me your suggestions.

Thank you.
 

adcroft

Alistair Adcroft
Member
I'm not seeing any attachments. Just post the CDL (ncdump of your file) and the values of NK and ALE_COORDINATE_CONFIG from MOM_parameter_doc.all
 

vijay

Vijay
New Member
I am sorry. There must have been a technical glitch. The information you have asked for is pasted below. Thank you.
---------------------------------------------------------
1. ncdump of input vertical grid file
netcdf hycom1_53_800m {
dimensions:
layers = 53 ;
interfaces = 54 ;
variables:
double dz(layers) ;
dz:long_name = "z* coordinate level thickness" ;
dz:units = "m" ;
double sigma2(interfaces) ;
sigma2:long_name = "Interface target potential density referenced to 2000 dbars" ;
sigma2:units = "kg/m3" ;
data:

dz = 4.4, 5.1, 5, 5.2, 5.1, 5.2, 5, 5, 5, 5, 5, 5.5, 5.05, 5.15, 5.05, 6.87,
3.98, 4.52, 5.16, 5.94, 6.91, 8.06, 9.46, 11.13, 13.13, 15.5, 18.32,
21.65, 25.56, 30.16, 35.54, 41.81, 49.1, 57.56, 67.34, 78.63, 91.61,
106.51, 123.58, 143.08, 165.32, 190.61, 219.33, 251.88, 288.68, 330.23,
377.05, 429.71, 488.84, 555.13, 629.33, 712.25, 804.76 ;

sigma2 = 1010, 1014.3034, 1017.8088, 1020.843, 1023.5566, 1025.813,
1027.0275, 1027.9114, 1028.6422, 1029.2795, 1029.852, 1030.3762,
1030.8626, 1031.3183, 1031.7486, 1032.1572, 1032.5471, 1032.9207,
1033.2798, 1033.6261, 1033.9608, 1034.3594, 1034.8642, 1035.2026,
1035.4574, 1035.6619, 1035.8328, 1035.9795, 1036.108, 1036.2223,
1036.3254, 1036.4191, 1036.5051, 1036.5845, 1036.6583, 1036.7271,
1036.7917, 1036.8526, 1036.91, 1036.9645, 1037.0162, 1037.0655,
1037.1125, 1037.1576, 1037.2007, 1037.2421, 1037.282, 1037.3203,
1037.3573, 1037.3931, 1037.4276, 1037.4611, 1037.8, 1038 ;
}
-----------------------------------------------------
2.
NK = 54 ! [nondim]
! The number of model layers.
----------------------------------------------------------------------
3.
ALE_COORDINATE_CONFIG = "HYBRID:hycom1_53_800m.nc,sigma2,FNC1:2,4000,4.5,.01" ! default = "UNIFORM"
 

adcroft

Alistair Adcroft
Member
I think NK should be 53.

There is one confusing aspect: the dz in the file is not actually being used because the FNC1 says to generate some dz's. This, however, is not the source of the problem; I think NK is.
 

vijay

Vijay
New Member
Thank you for the reply. I have a few more questions regarding the set up of vertical structure.

1. When initializing vertical coordinates in the 'layer_coord.nc', the sigma2 coordinates are not the same as HYCOM-like coordinates that gets remapped, in the default case. How do we initialize for a new region from a different initialization file? Could you please explain the logic?

2. What is the importance of other parameters in MOM_coord_initialization ? For example, what is MAXIMUM_INT_DEPTH_CONFIG and MAX_LAYER_THICKNESS_CONFIG ? Do we need to tweak them as well?

3. At present, there seems to be no option to include terrain-following coordinates in the HYCOM-like vertical configuration. How can we achieve it?

Thank you.
 

vijay

Vijay
New Member
Thank you for the reply. I have a few more questions regarding the set up of vertical structure.

1. When initializing vertical coordinates in the 'layer_coord.nc', the sigma2 coordinates are not the same as HYCOM-like coordinates that gets remapped, in the default case. How do we initialize for a new region from a different initialization file? Could you please explain the logic?

2. What is the importance of other parameters in MOM_coord_initialization ? For example, what is MAXIMUM_INT_DEPTH_CONFIG and MAX_LAYER_THICKNESS_CONFIG ? Do we need to tweak them as well?

3. At present, there seems to be no option to include terrain-following coordinates in the HYCOM-like vertical configuration. How can we achieve it?

Thank you.
Dear Alistair, could you please answer my queries? Thank you.
 

adcroft

Alistair Adcroft
Member
"layer_coord.nc" is used for configuring the traditional isopycnal model. Change COORD_CONFIG="ALE" and the layer-coord.nc will not be read. Currently for you, it is being read but not used for anything.

MAXIMUM_INT_DEPTH_CONFIG: ! default = "NONE"
! Determines how to specify the maximum layer thicknesses.
! Valid options are:
! NONE - there are no maximum layer thicknesses
! PARAM - use the vector-parameter MAX_LAYER_THICKNESS
! FILE:string - read from a file. The string specifies
! the filename and variable name, separated
! by a comma or space, e.g. FILE:lev.nc,Z
! FNC1:string - FNC1:dz_min,H_total,power,precision
This puts an upper bound on how deep an interface is allowed to be. See MOM6/coord_hycom.F90 at ffbd82a809374e6df5b7b8b4a7d085b574c7b07d · NOAA-GFDL/MOM6

MAX_LAYER_THICKNESS_CONFIG: ! default = "NONE"
! Determines how to specify the maximum layer thicknesses.
! Valid options are:
! NONE - there are no maximum layer thicknesses
! PARAM - use the vector-parameter MAX_LAYER_THICKNESS
! FILE:string - read from a file. The string specifies
! the filename and variable name, separated
! by a comma or space, e.g. FILE:lev.nc,Z
! FNC1:string - FNC1:dz_min,H_total,power,precision
This puts an upper bound on how thick a layer is allowed to be. See MOM6/coord_hycom.F90 at ffbd82a809374e6df5b7b8b4a7d085b574c7b07d · NOAA-GFDL/MOM6

These can be set inconsistently and there's no sanity checking. The defaults are to not apply these bounds.

We only have a pure terrain following coordinate that we've used for idealized studies. A hybrid terrain following coordinate could be coded: look at src/ALE for templates.
 
Top