Can I use ROMS forcing files directly to run simulation in CROCO?

I am currently working on a project which uses ROMS (myroms.org). I use all types of forcing files: river runoff, wind forcing, tides, open ocean boundary conditions, etc. I want to port the entire project to CROCO and try out the non-hydrostatic solver on the same domain. Can I just use all the forcing files as they are? Any thoughts on which forcing files are compatible?

In principle, yes. It might not be trivial.

CROCO uses only one forcing file, where tide information is included, and only one boundary file. River runnof is added in an external file (croco_runoff.nc).

You might have problems in the variable names are different, but that is something that can be fixed using NCO tools.

Compare and post the output from

ncdump -h

for your ROMS_Rutgers and the files produced for the default Benguela case, to see if we can spot the differences.

Hi Andres,

Thanks, yes I noticed that the variable names are different and forcing files have different variables stored in them.

I think I have all the variables to run the simulation, but now I am confused as to which cpp options to switch on.

I am attaching ncdump -h from my ROMS_RUTGERS forcing files. Could you or someone help me out in defining the right cppdef options?

Here are the forcing files and my understanding of how forcing is taken care of:

  1. ROMS wind forcing file wind.txt . This contains ‘Uwind’ and Vwind which I have to add to croco_blk.nc as variables ‘uwnd’ and ‘vwnd’.

  2. ROMS bulk forcing file roms_bulk.txt which contains radiation fluxes. For longwave, I only have downwelling longwave radiation. How can I manage that in croco_blk.nc? I think CROCO bulk forcing requires down and upwelling longwave radiation? And with only downwelling radiation present for longwave which cpp options are suitable? I need help in this.

  3. Tidal forcing file is easy, the tidal forcing for ROMS has variables with same name as required for CROCO with minor changes so no confusion in this.

  4. Here is ncdump -h from croco_blk.nc cblk.txt and from croco_frc.nc cfrc.txt for reference.

My understand is because I have Uwind and Vwind, I don’t need u-stress and v-stress as bulk algorithm will take care of it. but how should I take care of longwave radiation?
I will appreciate any help as to which cpp options in CROCO should be activated.

Best,
Aakash

HI, Aakash

A patch solution could be to get down and upwelling longwave radiation from the climatological fields and add them to your BLK file.

If you do

make_bulk

this would generate a croco_blk.nc file from which you can extract the variables.

I don´t know if this would give you the correct net radiation balance so compare the climatological values of downwelling with those from your ROMS file.

Can CROCO compute its own upward longwave flux? Is there any option for that? If that option exists then I just need downward longwave which I already have.

And I am sorry but what do you mean by climatological fields? Bcos I already have ROMS forcings I am just copy pasting them in croco forcings

I was able to figure out the outward longwave radiation part in bulk fluxes.
I checked source code, bulk_flux.F, and at line 522 there is a term ‘hflw’ which takes care of outward longwave radiation given SST. It is activated when BULK_LW is set to true in cppdefs.h

So I just need downward radiation flux in my bulk forcing file and outward is taken care of by CROCO.