5 | | * [[span(style=color: #FF0000, **master**)]]: Tagged versions and latest stable version of **ROMS** |
6 | | * [[span(style=color: #FF0000, **develop**)]]: Not for public consumption but passes the internal tests |
7 | | * [[span(style=color: #FF0000, **feature branches**)]]: Research and new development branches with access to beta testers |
8 | | * [[span(style=color: #0000FF, **feature/kernels**)]]: Major update to **ROMS** numerical kernels (**omega.F** and **step2d.F**) |
9 | | * [[span(style=color: #0000FF, **feature/seaice**)]]: Native **sea-ice model** refactoring and development |
10 | | * [[span(style=color: #0000FF, **feature/wec**)]]: Wave Effects on Currents algorithms adopted from COAWST |
11 | | |
12 | | ---- |
13 | | |
14 | | === __Consolidation Steps:__ === |
15 | | |
16 | | We need to consolidate the changes to **ROMS** due to the refactoring and development of the sea-ice model. Originally written by Paul Budgell (2005), maintained by Kate Hedstrom, and updated by Scott Durski (Durski and Kurapov, 2019, 2020). It is primarily based on Mellor and Kantha (1989) and Parkinson and Washington (1979). |
17 | | |
18 | | The sea-ice model has been cleaned, documented, and redesigned to facilitate adjoint-based applications in the future. It has only two state variables, **Fi** and **Si**, that can be expanded. The original code has at least **39** arrays. |
19 | | |
| 5 | * Corrected bug **ESM/coupling_esmf.yaml**, **ESM/coupling_esmf_coamps.yaml**, and **ESM/coupling_esmf_wrf.yaml**. We need the **extrapolation_method** to have a value of **nearest** instead of **none**. By default, the **ESMF/NUOPC** library needs the specification of the **regrid** and extrapolation methods in all the import and export fields: |
21 | | ! Define derived-type structure ice model state and internal arrays. |
22 | | |
23 | | TYPE T_ICE |
24 | | real(r8), pointer :: Fi(:,:,:) ! [i,j,1:nIceF] |
25 | | real(r8), pointer :: Si(:,:,:,:) ! [i,j,1:2,1:nIceS] |
26 | | END TYPE T_ICENgrids |
27 | | TYPE (T_ICE), allocatable :: ICE(:) ! [Ngrids] |
28 | | |
29 | | ! Ice model state prognostic variables indices. |
30 | | |
31 | | integer, parameter :: nIceS = 15 ! number of ice state variables |
32 | | integer :: iSice(nIceS) ! state I/O indices |
33 | | integer, parameter :: isAice = 1 ! ice concentration |
34 | | integer, parameter :: isHice = 2 ! ice thickness |
35 | | integer, parameter :: isHmel = 3 ! melt water thickness on ice |
36 | | integer, parameter :: isHsno = 4 ! snow thickness |
37 | | integer, parameter :: isIage = 5 ! ice age |
38 | | integer, parameter :: isISxx = 6 ! internal ice xx-stress |
39 | | integer, parameter :: isISxy = 7 ! internal ice xy-stress |
40 | | integer, parameter :: isISyy = 8 ! internal ice yy-stress |
41 | | integer, parameter :: isTice = 9 ! ice interior temperature |
42 | | integer, parameter :: isUice = 10 ! ice U-velocity |
43 | | integer, parameter :: isVice = 11 ! ice V-velocity |
44 | | integer, parameter :: isEnth = 12 ! ice/brine enthalpy |
45 | | integer, parameter :: isHage = 13 ! thickness linked with ice age |
46 | | integer, parameter :: isUevp = 14 ! EVP ice U-velocity |
47 | | integer, parameter :: isVevp = 15 ! EVP ice V-velocity |
48 | | |
49 | | ! Ice model internal variables indices. |
50 | | |
51 | | integer, parameter :: nIceF = 24 ! number of ice field variables |
52 | | integer :: iFice(nIceF) ! internal fields I/O indices |
53 | | integer, parameter :: icAIus = 1 ! surface Air-Ice U-stress |
54 | | integer, parameter :: icAIvs = 2 ! surface Air-Ice V-stress |
55 | | integer, parameter :: icBvis = 3 ! ice bulk viscosity |
56 | | integer, parameter :: icHsse = 4 ! sea surface elevation |
57 | | integer, parameter :: icIOfv = 5 ! Ice-Ocean friction velocity |
58 | | integer, parameter :: icIOmf = 6 ! Ice-Ocean mass flux |
59 | | integer, parameter :: icIOmt = 7 ! Ice-Ocean momentum transfer |
60 | | integer, parameter :: icIOvs = 8 ! Ice-Ocean velocity shear |
61 | | integer, parameter :: icIsst = 9 ! ice/snow surface temperature |
62 | | integer, parameter :: icPgrd = 10 ! gridded ice strength |
63 | | integer, parameter :: icPice = 11 ! ice pressure or strength |
64 | | integer, parameter :: icQcon = 12 ! ice/snow heat conductivity |
65 | | integer, parameter :: icQrhs = 13 ! RHS heat flux over ice/snow |
66 | | integer, parameter :: icSvis = 14 ! ice shear viscosity |
67 | | integer, parameter :: icS0mk = 15 ! molecular sublayer salinity |
68 | | integer, parameter :: icT0mk = 16 ! molecular sublayer temperature |
69 | | integer, parameter :: icUavg = 17 ! average mixed-layer U-velocity |
70 | | integer, parameter :: icVavg = 18 ! average mixed-layer V-velocity |
71 | | integer, parameter :: icWdiv = 19 ! ice divergence rate |
72 | | integer, parameter :: icW_ai = 20 ! melt/freeze rate at Air/Ice |
73 | | integer, parameter :: icW_ao = 21 ! melt/freeze rate at Air/Ocean |
74 | | integer, parameter :: icW_fr = 22 ! ice accretion rate by frazil |
75 | | integer, parameter :: icW_io = 23 ! melt/freeze rate at Ice/Ocean |
76 | | integer, parameter :: icW_ro = 24 ! melt/freeze rate runoff |
| 7 | - standard_name: downward_shortwave_flux_at_sea_water_surface |
| 8 | long_name: surface downward shortwave radiation flux |
| 9 | short_name: dSWrad |
| 10 | data_variables: [dswrad, time] |
| 11 | source_units: W m-2 |
| 12 | destination_units: W m-2 |
| 13 | source_grid: cell_center |
| 14 | destination_grid: cell_center |
| 15 | add_offset: 0.0d0 |
| 16 | scale: 1.0d0 |
| 17 | debug_write: false |
| 18 | connected_to: *ATM # swdown |
| 19 | regrid_method: bilinear |
| 20 | extrapolate_method: nearest |