Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Does meshcap follow the ww3_shel.nml convention for input forcing? #13

Open
janahaddad opened this issue Aug 5, 2024 · 4 comments
Open
Labels
documentation Improvements or additions to documentation

Comments

@janahaddad
Copy link
Collaborator

@DeniseWorthen @uturuncoglu, as part of troubleshooting oceanmodeling/ufs-weather-model/issues/124 with @yunfangsun @aliabdolali @sbanihash, this question came up: how does the mesh cap handle the input forcing flags in ww3_shel.nml?

is the convention described in ww3_shel.nml read/used by the cap? or is there another primary/first coupled forcing trigger?

@janahaddad janahaddad added the documentation Improvements or additions to documentation label Aug 5, 2024
@DeniseWorthen
Copy link

DeniseWorthen commented Aug 5, 2024

I'm not entirely clear on the question. The mesh cap reads a WW3 nml file (if it is present, otherwise it will read the older 'inp' file) in the standard WW3 way. The nml setting is used to set some internal WW3 flags like inflags1 etc. I'm not and expert on the inner-workings of those flags w/in WW3.

For example the nml file might have

&input_nml
  input%forcing%winds      = 'C'
  input%forcing%currents   = 'C'
  input%forcing%ice_conc   = 'F'
  input%forcing%ice_param1 = 'F'
  input%forcing%ice_param5 = 'F'
/

The C in the currents setting will make INFLAGS1(2)=.true.. Then in the cap, we make use of the WW3 flags like so:

! ---------------
! INFLAGS1(2) - ocn current fields
! ---------------
if (INFLAGS1(2)) then
TC0 = time0 ! times for ocn current fields
TCN = timen
CX0(:,:) = def_value ! ocn u current
CXN(:,:) = def_value
if (state_fldchk(importState, 'So_u')) then
call SetGlobalInput(importState, 'So_u', vm, global_data, rc)
if (ChkErr(rc,__LINE__,u_FILE_u)) return
call FillGlobalInput(global_data, CX0)
call FillGlobalInput(global_data, CXN)
end if
CY0(:,:) = def_value ! ocn v current
CYN(:,:) = def_value
if (state_fldchk(importState, 'So_v')) then
call SetGlobalInput(importState, 'So_v', vm, global_data, rc)
if (ChkErr(rc,__LINE__,u_FILE_u)) return
call FillGlobalInput(global_data, CY0)
call FillGlobalInput(global_data, CYN)
end if
end if

@aliabdolali
Copy link

@DeniseWorthen this is what I thought as well.
If the flag is 'C', the field is read from the coupler while T and F are for reading from file and no forcing. Thanks for your prompt reply.

This is what we discussed and I mentioned it should follow what you described:
In a simulation @yunfangsun reported he is using
input%forcing%winds = 'T'
input%forcing%currents = 'F'
and the model read wind from the coupler, he was not sure about current field.

@aliabdolali
Copy link

@josephzhang8 I am adding you here, to use proper flags when you set the coupled case for SCHISM+WW3 test case.

! * The FORCING flag can be : 'F' for "no forcing"
! 'T' for "external forcing file"
! 'H' for "homogeneous forcing input"
! 'C' for "coupled forcing field"

@josephzhang8
Copy link

Thx @aliabdolali!
Loop in @danishyo

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
Status: Needs review
Development

No branches or pull requests

4 participants