ROMS coupled to CICE
ROMS coupled to CICE
Hi,
As some of you might already know, a group of scientists here in Norway have been working on a coupling of ROMS and CICE.
The development is not finished yet (will it ever be..?), but due to an increased interest in the subject, we have decided to release the code to the public. We have called the system MetROMS (from MET Norway, the Norwegian Meteorological institute), and the main contributors to the work is MET Norway and Akvaplan NIVA. The code is hosted at GitHub: https://github.com/metno/metroms
MetROMS is based on ROMS 3.6, CICE 5.1.2 and MCT 2.9 (sources included as tar-files), and also include a python framework/script system for running ROMS.
We have successfully run the system on domains covering the Arctic, at resolutions of 20km and 4km.
Enjoy!
As some of you might already know, a group of scientists here in Norway have been working on a coupling of ROMS and CICE.
The development is not finished yet (will it ever be..?), but due to an increased interest in the subject, we have decided to release the code to the public. We have called the system MetROMS (from MET Norway, the Norwegian Meteorological institute), and the main contributors to the work is MET Norway and Akvaplan NIVA. The code is hosted at GitHub: https://github.com/metno/metroms
MetROMS is based on ROMS 3.6, CICE 5.1.2 and MCT 2.9 (sources included as tar-files), and also include a python framework/script system for running ROMS.
We have successfully run the system on domains covering the Arctic, at resolutions of 20km and 4km.
Enjoy!
Re: ROMS coupled to CICE
FYI, the CICE Consortium has met. I learned a few things about it at AGU last week:
* The new pronunciation of CICE is "sice", not "sea ice".
* It will likely show up on github as two repositories, one the vertical column package called "icepack" which will be a git submodule of the other. The proper thing for us to do is to make them both submodules of a coupled model repo (no tarballs!). MCT should also be a submodule, ROMS too.
* Coupling intervals using daily averages works fine. If you want to resolve diurnal cycles, best to get to two hours or under for coupling intervals.
* For parallel codes, make small blocks and use round-robin layout. That way each process can have both tropical small blocks and polar small blocks. Actually, since MetROMS can't have all-land blocks, this might not be such a good idea for us.
* The new pronunciation of CICE is "sice", not "sea ice".
* It will likely show up on github as two repositories, one the vertical column package called "icepack" which will be a git submodule of the other. The proper thing for us to do is to make them both submodules of a coupled model repo (no tarballs!). MCT should also be a submodule, ROMS too.
* Coupling intervals using daily averages works fine. If you want to resolve diurnal cycles, best to get to two hours or under for coupling intervals.
* For parallel codes, make small blocks and use round-robin layout. That way each process can have both tropical small blocks and polar small blocks. Actually, since MetROMS can't have all-land blocks, this might not be such a good idea for us.
Re: ROMS coupled to CICE
Dear all,
I am using metroms and trying to run the test case arctic-4km. I successfully built myenv.bash and build_mct.sh. Also I did ./build_cice.sh and ./build_roms.sh and it creates ~/tmproms/run/arctic-4km/oceanM.
There are only coupling.dat, oceanM and /cice in the ~/metroms/tmproms/run/arctic-4km directory.
Where should I create the input netcdf files for grid, forcing, boundary etc. and which .in file should I use?
Thanks in advance.
Regards,
Saikat
I am using metroms and trying to run the test case arctic-4km. I successfully built myenv.bash and build_mct.sh. Also I did ./build_cice.sh and ./build_roms.sh and it creates ~/tmproms/run/arctic-4km/oceanM.
There are only coupling.dat, oceanM and /cice in the ~/metroms/tmproms/run/arctic-4km directory.
Where should I create the input netcdf files for grid, forcing, boundary etc. and which .in file should I use?
Thanks in advance.
Regards,
Saikat
-
- Posts: 20
- Joined: Wed Jun 04, 2014 1:45 pm
- Location: Istanbul Technical University
Re: ROMS coupled to CICE
Hi,
You should check the common/python/ directory. There is a file called Params.py inside that directory. All the adjustable settings are regarding the simulation are hold at that file.
If I remember correctly it might be a directory named data/ at the same level as the apps/ directory. Even if not, you can adjust it inside the Params.py file.
The roms.in file is created from the file common/orig_files/roms*.
You should check the common/python/ directory. There is a file called Params.py inside that directory. All the adjustable settings are regarding the simulation are hold at that file.
If I remember correctly it might be a directory named data/ at the same level as the apps/ directory. Even if not, you can adjust it inside the Params.py file.
The roms.in file is created from the file common/orig_files/roms*.
Re: ROMS coupled to CICE
Dear Bilge,
Thank you. I checked the common/python/ directory and and params.py. Did you have any idea how to create the atmospheric forcing, initial conditions and boundary conditions?
Thank you. I checked the common/python/ directory and and params.py. Did you have any idea how to create the atmospheric forcing, initial conditions and boundary conditions?
-
- Posts: 20
- Joined: Wed Jun 04, 2014 1:45 pm
- Location: Istanbul Technical University
Re: ROMS coupled to CICE
HI Saikat,
If you are asking about the CICE input forcing/boundary conditions I believe you only need initial condition file different than the ROMS files. I think CICE can use the same atmospheric forcing file.
In order to create an initial file for CICE, there is a directory in the metroms called tools. Inside the tools there has to be a script "roms_ini_to_cice.py". That should take the ROMS ini file and convert it to CICE one. I am not exactly sure about the usage though.
I am in the process of setting up a simulation. Although I have compiled the models successfully, I haven't been able to run them past couple time steps. So any information from me you should take it with a grain of salt .
Good luck,
Bilge.
If you are asking about the CICE input forcing/boundary conditions I believe you only need initial condition file different than the ROMS files. I think CICE can use the same atmospheric forcing file.
In order to create an initial file for CICE, there is a directory in the metroms called tools. Inside the tools there has to be a script "roms_ini_to_cice.py". That should take the ROMS ini file and convert it to CICE one. I am not exactly sure about the usage though.
I am in the process of setting up a simulation. Although I have compiled the models successfully, I haven't been able to run them past couple time steps. So any information from me you should take it with a grain of salt .
Good luck,
Bilge.
Re: ROMS coupled to CICE
Hi Bilge,
I am not familiar with RUTGERS version, previously I used ROMS Agrif version. Can you please tell me how to create forcing, boundary or initial condition for ROMS also.
Thank you.
Saikat
I am not familiar with RUTGERS version, previously I used ROMS Agrif version. Can you please tell me how to create forcing, boundary or initial condition for ROMS also.
Thank you.
Saikat
-
- Posts: 20
- Joined: Wed Jun 04, 2014 1:45 pm
- Location: Istanbul Technical University
Re: ROMS coupled to CICE
Hi Saikat,
I am using the MATLAB tools inside the ROMS svn.
In https://www.myroms.org/wiki/Subversion you can find information on downloading source/matlab codes etc.
Besides that you might have to check the Data directory in ROMS/trunk/Data. It has examples and .cdl file to generate netCDF files from scratch.
I can also suggest you first run your model without the ice, if you have no experience with the model.
Bilge.
I am using the MATLAB tools inside the ROMS svn.
In https://www.myroms.org/wiki/Subversion you can find information on downloading source/matlab codes etc.
Besides that you might have to check the Data directory in ROMS/trunk/Data. It has examples and .cdl file to generate netCDF files from scratch.
I can also suggest you first run your model without the ice, if you have no experience with the model.
Bilge.
Re: ROMS coupled to CICE
Hi Bilge,
Thank you very much for your reply. I create a grid file over a small region (30W-30E, 60-80N, 1/4 degree resolution, 32 sigma levels) using ROMS Agrif. I also create forcing, climatology, boundary, and initial files for that grid and it runs in the Agrif model.
Now I want to use these grid and input files in MetROMS and want to include CICE. I think I have to modify the params.py file.
If someone has any idea then please suggest.
Thanks,
Saikat
Thank you very much for your reply. I create a grid file over a small region (30W-30E, 60-80N, 1/4 degree resolution, 32 sigma levels) using ROMS Agrif. I also create forcing, climatology, boundary, and initial files for that grid and it runs in the Agrif model.
Now I want to use these grid and input files in MetROMS and want to include CICE. I think I have to modify the params.py file.
If someone has any idea then please suggest.
Thanks,
Saikat
Re: ROMS coupled to CICE
Hello everyone,
I got an error in the terminal, while I running the MetROMS. However, the log file does not contain any error massage. The following error massage are showing in the terminal:
MPI_ABORT was invoked on rank 26 in communicator MPI_COMM_WORLD
with errorcode 128.
NOTE: invoking MPI_ABORT causes Open MPI to kill all MPI processes.
You may or may not see output from other processes, depending on
exactly when Open MPI kills them.
--------------------------------------------------------------------------
[vimlesh-Precision-Tower-7910:1457035] 15 more processes have sent help message help-mpi-api.txt / mpi-abort
[vimlesh-Precision-Tower-7910:1457035] Set MCA parameter "orte_base_help_aggregate" to 0 to see all help / error messages
It may be due to the MPI, so I reinstalled the openmpi and again compile the model. But, I received the same error.
If you have any idea then please share.
Thanks in advance,
Saikat
I got an error in the terminal, while I running the MetROMS. However, the log file does not contain any error massage. The following error massage are showing in the terminal:
MPI_ABORT was invoked on rank 26 in communicator MPI_COMM_WORLD
with errorcode 128.
NOTE: invoking MPI_ABORT causes Open MPI to kill all MPI processes.
You may or may not see output from other processes, depending on
exactly when Open MPI kills them.
--------------------------------------------------------------------------
[vimlesh-Precision-Tower-7910:1457035] 15 more processes have sent help message help-mpi-api.txt / mpi-abort
[vimlesh-Precision-Tower-7910:1457035] Set MCA parameter "orte_base_help_aggregate" to 0 to see all help / error messages
It may be due to the MPI, so I reinstalled the openmpi and again compile the model. But, I received the same error.
If you have any idea then please share.
Thanks in advance,
Saikat
-
- Posts: 26
- Joined: Wed Jul 19, 2017 4:03 pm
- Location: Zhejiang University
Re: ROMS coupled to CICE
Dear saikat,saikat12 wrote: ↑Wed Mar 30, 2022 1:02 pm Hello everyone,
I got an error in the terminal, while I running the MetROMS. However, the log file does not contain any error massage. The following error massage are showing in the terminal:
MPI_ABORT was invoked on rank 26 in communicator MPI_COMM_WORLD
with errorcode 128.
NOTE: invoking MPI_ABORT causes Open MPI to kill all MPI processes.
You may or may not see output from other processes, depending on
exactly when Open MPI kills them.
--------------------------------------------------------------------------
[vimlesh-Precision-Tower-7910:1457035] 15 more processes have sent help message help-mpi-api.txt / mpi-abort
[vimlesh-Precision-Tower-7910:1457035] Set MCA parameter "orte_base_help_aggregate" to 0 to see all help / error messages
It may be due to the MPI, so I reinstalled the openmpi and again compile the model. But, I received the same error.
If you have any idea then please share.
Thanks in advance,
Saikat
I have compiled METROMS. But now, I have the same problems you have faced with. Have you solved it and How can I make forcing file for CICE ? Do I need to create specific atmospheric forcing .nc file for CICE, or CICE can read forcing .nc file prepared for the ROMS ? What is the usage of tools/create_time_index.py ? It need .nc file and then create .txt file, but the atmospheric forcing for ROMS doesn't contain cldf and rhoa.
Re: ROMS coupled to CICE
My https://github.com/kshedstrom/roms repo has a metroms branch which I believe solves the forcing file problem.
Note that this code is completely unsupported!
Note that this code is completely unsupported!
-
- Posts: 20
- Joined: Wed Jun 04, 2014 1:45 pm
- Location: Istanbul Technical University
Re: ROMS coupled to CICE
Hi Kate,
I was able to compile your version of the metroms.
However, it still doesn't exchange the atmospheric forcing information from ROMS to CICE and CICE still wants to read the atmospheric data file.
Was there a specific CPP option or forcing parameter that had to be set for ROMS to send the ROMS atmospheric parameters to CICE during MCT exchange?
I have checked the ice_in template and arctic-20km ROMS header files, but didn't notice any.
Thank you,
I was able to compile your version of the metroms.
However, it still doesn't exchange the atmospheric forcing information from ROMS to CICE and CICE still wants to read the atmospheric data file.
Was there a specific CPP option or forcing parameter that had to be set for ROMS to send the ROMS atmospheric parameters to CICE during MCT exchange?
I have checked the ice_in template and arctic-20km ROMS header files, but didn't notice any.
Thank you,
Re: ROMS coupled to CICE
I’m sorry, I don’t remember what I had done there. I’m not at home this week to look into it either.
-
- Posts: 20
- Joined: Wed Jun 04, 2014 1:45 pm
- Location: Istanbul Technical University
Re: ROMS coupled to CICE
No worries Kate,
I have setup the additional export variables from ROMS to CICE in roms.in. At least now I can see the Coupler message of whole export list. Maybe its just expecting a dummy file name .
I have setup the additional export variables from ROMS to CICE in roms.in. At least now I can see the Coupler message of whole export list. Maybe its just expecting a dummy file name .
-
- Posts: 20
- Joined: Wed Jun 04, 2014 1:45 pm
- Location: Istanbul Technical University
Re: ROMS coupled to CICE
Hi All,
I am experiencing an error with inquire.F. The error is, it is trying to create/read a file (which it really shouldn't). I haven't set to output to quick file but getting this,
I am adding this as an image, because, the garbage part before the file path depends on the terminal I use.
I was guessing this to be a problem with the input file, but the file name and path is correct, but somehow an additional garbage shows up.
Has anybody seen this type garbage added to path/file names ?
Code is Kate's metroms - forcing branch.
Thank you.
I am experiencing an error with inquire.F. The error is, it is trying to create/read a file (which it really shouldn't). I haven't set to output to quick file but getting this,
I am adding this as an image, because, the garbage part before the file path depends on the terminal I use.
I was guessing this to be a problem with the input file, but the file name and path is correct, but somehow an additional garbage shows up.
Has anybody seen this type garbage added to path/file names ?
Code is Kate's metroms - forcing branch.
Thank you.
-
- Posts: 26
- Joined: Wed Jul 19, 2017 4:03 pm
- Location: Zhejiang University
Re: ROMS coupled to CICE
Dear Kate,
I noticed that you have ever tried METROMS.
When I build and run roms standalone , everything gose well. But If I mpirun oceanG after build ROMS coupled with CICE (i.e. the METROMS https://github.com/metno/metroms), it turned forrtl: severe (174): SIGSEGV, segmentation fault occurred.
Could you please help me out ? I have tried many ways but still not solved it. I have upload my output log file and in file:
https://github.com/joeailvyou/METROMS-output-log
I did have tried debug mode, (in coupled to CICE), the error is not detail enouth:
I noticed that you have ever tried METROMS.
When I build and run roms standalone , everything gose well. But If I mpirun oceanG after build ROMS coupled with CICE (i.e. the METROMS https://github.com/metno/metroms), it turned forrtl: severe (174): SIGSEGV, segmentation fault occurred.
Could you please help me out ? I have tried many ways but still not solved it. I have upload my output log file and in file:
https://github.com/joeailvyou/METROMS-output-log
I did have tried debug mode, (in coupled to CICE), the error is not detail enouth:
Code: Select all
forrtl: severe (174): SIGSEGV, segmentation fault occurred
Image PC Routine Line Source
oceanG 00000000012153C1 Unknown Unknown Unknown
oceanG 0000000001213B17 Unknown Unknown Unknown
libmpi.so.12 00002AF06FB10762 Unknown Unknown Unknown
libmpi.so.12 00002AF06FB105B6 Unknown Unknown Unknown
libmpi.so.12 00002AF06FAFEE1C Unknown Unknown Unknown
libmpi.so.12 00002AF06FAE07C8 Unknown Unknown Unknown
libpthread.so.0 00002AF07015B5E0 Unknown Unknown Unknown
oceanG 0000000000FD44A8 Unknown Unknown Unknown
oceanG 0000000000FD156C Unknown Unknown Unknown
oceanG 0000000000FBC6FC Unknown Unknown Unknown
oceanG 0000000000F13600 Unknown Unknown Unknown
oceanG 0000000000408403 MAIN__ 106 master.f90
oceanG 0000000000406DCE Unknown Unknown Unknown
libc.so.6 00002AF07058DC05 Unknown Unknown Unknown
oceanG 0000000000406CD9 Unknown Unknown Unknown
forrtl: severe (174): SIGSEGV, segmentation fault occurred
Image PC Routine Line Source
oceanG 00000000012153C1 Unknown Unknown Unknown
oceanG 0000000001213B17 Unknown Unknown Unknown
libmpi.so.12 00002B8F2D10F762 Unknown Unknown Unknown
libmpi.so.12 00002B8F2D10F5B6 Unknown Unknown Unknown
libmpi.so.12 00002B8F2D0FDE1C Unknown Unknown Unknown
libmpi.so.12 00002B8F2D0DF7C8 Unknown Unknown Unknown
libpthread.so.0 00002B8F2D75A5E0 Unknown Unknown Unknown
oceanG 0000000000FD44A8 Unknown Unknown Unknown
oceanG 0000000000FD156C Unknown Unknown Unknown
oceanG 0000000000FBC6FC Unknown Unknown Unknown
oceanG 0000000000F13600 Unknown Unknown Unknown
oceanG 0000000000408403 MAIN__ 106 master.f90
oceanG 0000000000406DCE Unknown Unknown Unknown
libc.so.6 00002B8F2DB8CC05 Unknown Unknown Unknown
oceanG 0000000000406CD9 Unknown Unknown Unknown
real 0.49
user 5.06
sys 5.64
- Attachments
-
- ice.in
- (10.08 KiB) Downloaded 724 times
-
- cice_stdout.txt
- (178 Bytes) Downloaded 767 times
-
- cice_nu_diag.txt
- (20.8 KiB) Downloaded 694 times
-
- pbs_roms.txt
- (493 Bytes) Downloaded 708 times
-
- varinfo.dat
- (149.81 KiB) Downloaded 680 times
-
- roms.in
- (95.07 KiB) Downloaded 681 times
-
- out_txt.txt
- (2.85 KiB) Downloaded 727 times
-
- out_log.log
- (28.15 KiB) Downloaded 713 times
-
- out_err.txt
- (2.83 KiB) Downloaded 727 times
-
- coupling.dat
- (9.94 KiB) Downloaded 682 times
Re: ROMS coupled to CICE
Hi,
I had a few doubts regarding the ROMS-CICE coupling using the METROMS version. Can anyone tell me where to find the initial and forcing files for the ARCTIC-20KM example?
I saw the git: https://github.com/joeailvyou/METROMS-output-log and prepared my roms.in file as per that.
I'll be grateful for any help reagrding this matter.
Thanking you,
Kaushik
I had a few doubts regarding the ROMS-CICE coupling using the METROMS version. Can anyone tell me where to find the initial and forcing files for the ARCTIC-20KM example?
I saw the git: https://github.com/joeailvyou/METROMS-output-log and prepared my roms.in file as per that.
I'll be grateful for any help reagrding this matter.
Thanking you,
Kaushik
Re: ROMS coupled to CICE
This is the forum for the Rutgers ROMS code. I don't know if the person running a 20 km Arctic is reading this forum. Do you have a way to contact them directly?
These big files are a real pain to host and transfer.
These big files are a real pain to host and transfer.
Re: ROMS coupled to CICE
Dear kate,
I didn't find anyone who has run the ARCTIC 20KM case. I had emailed Nils (from metroms) but I didn't get any reply from him. That's when I found this thread and posted my question here.
If you can guide me on how to prepare the Initial, Forcing, and Boundary files for the CICE, it'll be helpful.
thanking you,
Kaushik
I didn't find anyone who has run the ARCTIC 20KM case. I had emailed Nils (from metroms) but I didn't get any reply from him. That's when I found this thread and posted my question here.
If you can guide me on how to prepare the Initial, Forcing, and Boundary files for the CICE, it'll be helpful.
thanking you,
Kaushik
- arango
- Site Admin
- Posts: 1367
- Joined: Wed Feb 26, 2003 4:41 pm
- Location: DMCS, Rutgers University
- Contact:
Re: ROMS coupled to CICE
We started interfacing ROMS with the UFS-coastal framework. The basic connectivity is working well. We still have to develop the testing applications. So far, the DATA-ROMS coupled components are working as the first step to couple with ESMF/NUOPC-based CDEPS/CMEPS. We use Hurricane Irene to test the CDEPS coupling connectors and CMEPS coupling mediator. We next develop the DATA_FV3-ROMS, CICE6-ROMS, and WW3-ROMS coupling systems and testing applications. In principle, we can couple with any of the components available in the UFS interface in the future:
https://github.com/oceanmodeling/ufs-co ... oastal_app
You need to be patient, and we will announce when the prototypes are ready for community use in due time.
https://github.com/oceanmodeling/ufs-co ... oastal_app
You need to be patient, and we will announce when the prototypes are ready for community use in due time.
Re: ROMS coupled to CICE
I am not running METROMS and I'm not able to help out either. Out of the box, CICE5 has no open boundary conditions. The Norwegians have added some to their code and they wrote a paper about it, but the last I heard, Elizabeth Hunke was hoping for a pull request from them for the code. For the forcing, I was hacking on the coupling between ROMS and CICE so that ROMS would pass winds, etc. to CICE instead of having it read them on its own. I don't remember if I got that to work, but it would in some neglected branch of my github ROMS.
The Australians were more into METROMS than I ever was, but I don't know what they are up to now.
The Australians were more into METROMS than I ever was, but I don't know what they are up to now.