-
Notifications
You must be signed in to change notification settings - Fork 11
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
Add ensemble forcing functionality #453
Conversation
Thanks, @weiyuan-jiang, for putting this together, looks great! cc: @saraqzhang |
@saraqzhang , each member will be initialized independently and call LDAS_GetForcing() independently too. The "path" and "tag" are passed into the subroutine LDAS_Getforcing. I would like your help to locate the files with the path and tag. I assume the tag you were (or will be) using is new. |
@weiyuan-jiang Weiyuan, I am setting up an experiment for using ens forcing, and wanted to confirm the following: |
@saraqzhang , I don't think we can run this branch now. We need to add codes to locate the forcing files. I think "ENSEMBLE_FORCING" is helpful for the script to figure out how to locate the forcing files. What are the tag and fields are you using? |
@weiyuan-jiang if (ensemble_forcing .and. NUM_ENSEMBLE > 1) then if we have: |
@saraqzhang , Do you have codes that implement the tag "x529_C180__Nx+-" ? Basically, I will need to know the fiedds ( or variables ) that need to be read in. |
@weiyuan-jiang the forcing fields for the ensemble case are same as that of one-set forcing case. You can find the fields specification in /discover/nobackup/projects/c612/user/qzhang/x529_C180/run/atmens/HISTAENS.rc.tmpl the collections of "inst1_2d_lfo_Nx+-" and "tavg1_2d_lfo_Nx+-" . |
It seems the "inst" and "avg" have different fields. I am still looking for your codes to read those fields since you have already done some calculations. |
@weiyuan-jiang the forcing fields in tavg and inst are different, as they have always been for ldas. |
Does ADAS forcing member start from 1 ? GEOSldas by default starts form 0. @saraqzhang |
@weiyuan-jiang adas ens index starts from 1 ( mem001/ ,... , mem/032) . |
@weiyuan-jiang @gmao-rreichle |
I suppose we didn't have a need because there was no connection between individual ens members in the LDAS and the ADAS. Going forward, though, I think we should have the ADAS setup script ensure FIRST_ENS_ID=1 in the LDAS setup so that the ens IDs match across the ADAS and LDAS. That is, assume that there is no offset between the ADAS and LDAS ens IDs. |
That is a good point. I will take advantage of the flexibility that GEOSldas provides |
@saraqzhang If you add "ENSEMBLE_FORCING: YES" and MET_PATH: /.../mem without id numbers, you should be able to run ldas setup ( FIRST_ENS_ID should start from 1 too). If it cannot be setup, please leave your exeinput file to, I will debug it. |
@weiyuan-jiang I will give it a try and let you know. |
@weiyuan-jiang I tried the setup with ENSEMBLE_FORCING: YES, MET_PATH: /.../mem , FIRST_ENS_ID : 1, |
@weiyuan-jiang is there more input parameter for forcing ( such as explicit forcing path for linking ) that I did not have in my expinp ? |
In your case , did you set "MET_PATH: /discover/nobackup//qzhang/LA5294tag/atmens/ensdiag/mem" in you exeinp? |
@weiyuan-jiang no I have not used the whole path in MET_PATH, I will try this again. |
@weiyuan-jiang with MET_PATH: /discover/nobackup//qzhang/LA5294tag/atmens/ensdiag/mem in setup, now they are linked to the correct adas directories. Is it ready for a test run? |
Yes, please try to run it. If anything wrong, please let me know. @saraqzhang |
@weiyuan-jiang I ran the test and compared the results ( fcst, incr) with the case of using ens-averaged forcing, the ensemble frocing connection and application work correctly. |
Sara, 1) Can we give a value 3 to LDAS_COUPLING when ENSEMBLE_FORCING is Yes? 2) I have talked to Rolf about this. We can either generate the ensembles from scratch or change the 0th member to the last one to match ADAS. |
I think it would be too confusing to have a translation from FIRST_ENS_ID=0 (in the restart) to FIRST_ENS_ID=1 (in the simulation) built into the code for RESTART=1. Most of the time, the restart files should already be produced with FIRST_ENS_ID=1 (ie, have matching numbering). If we ever need to restart from a run that has FIRST_ENS_ID=0, we could manually create a link (or copy) from member 0 to member NENS. |
@weiyuan-jiang @gmao-rreichle |
Probably it is simpler to remove parameter ENSEMBLE_FORCING and overload the meaning LDAS_COUPLING=3 |
@weiyuan-jiang it is fine with overloading the meaning LDAS_COUPLING=3, if there will not be a case in the future that ldas would run offline ( not coupling) with ensemble forcing. |
Sara has a good point. We'll probably want to run GEOSldas offline with an ensemble of forcing fields, so ENSEMBLE_FORCING is probably needed as a separate resource variable. But Weiyuan also has a good point. The evolution of the coupling in the LADAS means that we need to define a suite of LDAS_COUPLING options, some of which would trigger ENSEMBLE_FORCING=YES (although probably only in the coarse-resolution LDAS that is coupled to the ensemble, and not in the fine-resolution LDAS that is coupled to the deterministic ADAS). We'll find out more as we keep developing. |
@saraqzhang , I have added "ENSEMBLE_FORCING" to lenk.j according to your suggestion. Would you please reviee and test it? After that we can ask @gmao-rreichle to review and merge it to our develop branch. |
@weiyuan-jiang I pulled the addition , tested setup and run. all passed. |
Addresses #343 -- option to use ensemble of surface met forcing (typically from ADAS ensemble when LDAS is running within LADAS).