kshedstrom / roms Goto Github PK
View Code? Open in Web Editor NEWRegional Ocean Modeling System (with ice)
Home Page: myroms.org
Regional Ocean Modeling System (with ice)
Home Page: myroms.org
Regional Ocean Modeling System This is a branch of the ROMS code kept at myroms.org (https://www.myroms.org/), containing sea ice and several other changes people have contributed, notably the CoSiNE and COBALT ecosystem models, a floats-like fish model and some ice shelf fixes. You are strongly encouraged to register with myroms.org for access to the forum where this code is discussed. This ice branch can be obtained at: https://github.com/kshedstrom/roms Note: I have created a separate repository for my application files at: https://github.com/kshedstrom/Apps Some are also in https://github.com/kshedstrom/Apps_master The idea is that this should be a submodule of the ROMS repository. Of the ocean.in files in the main code, I've been hit or miss on updating things to be consistent with changes from my branch. The one to compare to is in User/External/ocean.in which should be up to date. Speaking of being hit or miss in updating, I seemed to have stopped updating altogether, instead focussing on MOM6 development. Kate Hedstrom [email protected]
I believe this is some sort of Copy/Paste mistake. There is are duplicates of ICE_DIAGS flag in the bulk_flux.F which results in compile failure due to repeat definitions.
roms/ROMS/Nonlinear/bulk_flux.F
Line 214 in 0baf667
# ifdef ICE_DIAGS
& FORCES(ng) % LW_down, &
& FORCES(ng) % SW_down, &
& FORCES(ng) % lat_ice, &
& FORCES(ng) % sens_ice, &
& FORCES(ng) % LW_up_ice, &
& FORCES(ng) % SW_up_ice, &
& FORCES(ng) % saltflux_ocean, &
# endif
# ifdef ICE_DIAGS
& FORCES(ng) % LW_down, &
& FORCES(ng) % SW_down, &
& FORCES(ng) % lat_ice, &
& FORCES(ng) % sens_ice, &
& FORCES(ng) % LW_up_ice, &
& FORCES(ng) % SW_up_ice, &
& FORCES(ng) % saltflux_ocean, &
I just discovered a bug in the python program roms_to_pop.py
that is used to create a model grid file for CICE based on a ROMS grid. Lines 50-53 read:
htn = 0.5*(dy[1:-1,1:-1] + dy[2:,1:-1])
hus = 0.5*(dx[1:-1,1:-1] + dx[1:-1,2:])
hte = 0.5*(dy[1:-1,1:-1] + dy[1:-1,2:])
huw = 0.5*(dx[1:-1,1:-1] + dx[2:,1:-1])
Based on the CICE documentation, the variable htn
is the "length of northern edge (Δx) of T-cell", however, in the code above it is set to the Δy of the ROMS grid. This should not matter too much if the grid cells are approximately square in a kilometer sense, but will make a difference if the grid cells are more rectangular.
Hi Kate,
I am not sure whether this is an issue or just a change in how things are done between 3.7 and 3.6.
I am currently using stefanie mack's 3.7 branch (with ice shelves in it) but it was based off of your branch. And it looks like it has the potential tide code in it, but I can't get it to read the tide forcing file properly.
I was wondering if you have run a model using potential tides using your version of the roms3.7 model?
The tide forcing file I use works in 3.6. and it looks like it can't be read in the 3.7 version.
It fails when it should be reading in the potential tide amp: From the *.out file
GET_2DFLD - maximum tidal current, ellipse major axis
(Grid = 01, Min = 0.00000000E+00 Max = 2.01598481E+01)
GET_2DFLD - minimum tidal current, ellipse minor axis
(Grid = 01, Min = -2.97327515E+00 Max = 2.01632515E+00)
INQUIRY - unable to find requested variable: \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00
In the 3.6 code, it reads it in and it all works well.
GET_2DFLD - maximum tidal current, ellipse major axis
(Min = 0.00000000E+00 Max = 2.02808533E+01)
GET_2DFLD - minimum tidal current, ellipse minor axis
(Min = -2.97327515E+00 Max = 2.16472321E+00)
GET_2DFLD - tidal potential elevation amplitude
(Min = 0.00000000E+00 Max = 1.23815612E-01)
GET_2DFLD - tidal potential elevation phase angle
(Min = 0.00000000E+00 Max = 6.28318517E+00)
I will keep looking at this more see if I can tell what is going on in the code, but wanted to know if you had any ideas, and to see whether you have successfully used potential tide with roms3.7.
Hi @kshedstrom !
I was working on yet another implementation of LY2004 and looking at the ROMS code, something
stroke me as suspicious. The equation for the neutral latent coef in LY2004 eq 6b is
1000 Ce = 34.6 * sqrt(Cd)
but in the code, it became:
Ce = 34.6 /1000
in 3 places:
roms/ROMS/Nonlinear/ccsm_flux.F
Line 860 in cc7adbf
roms/ROMS/Nonlinear/ccsm_flux.F
Line 884 in cc7adbf
roms/ROMS/Nonlinear/ccsm_flux.F
Line 918 in cc7adbf
Am I missing something or did we carry a bug all those years?
Hi Kate. Seems variable for albedo over ocean 'alb_w' is not defined unless you are running ROMS with the ice model. In albedo.F90 I had to move
real(r8), parameter :: alb_w=0.06_r8
outside of the ifdefs:
ifdef ICE_BULK_FLUXES
ifdef ALBEDO_CSIM
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.