GEOS-ESM / GEOSana_GridComp

Repository containing code for data analysis for the GEOS Earth System Model data assimilation
Apache License 2.0
1 stars 3 forks source link

Feature/jguo/convinfo+pcscaling+icld det #83

Closed jing-guo closed 2 years ago

jing-guo commented 2 years ago

This branch is migrated from CVS GEOSadas revisions for issue #82. The earlier implementation was made on top of a 5_27 release. It is now rebase/merged to the most current develop branch (~5_29) with several minor corrections and some information added.

  1. correct some convinfo.db/ files.
  2. merge into an earlier pcscaling implementation with some informational changes.
  3. implemented icld value configuration mechanism to make_satinfo.x, including CMakeLists.txt fixes.
rtodling commented 2 years ago

Jing, thanks for this. Here is a question: why do you have changes in the active and available table files as compared to the what's in the develop branch?

jing-guo commented 2 years ago

Here is a question: why do you have changes in the active and available table files as compared to the what's in the develop branch?

They are fixes to convinfo.db/ files,

  1. They are wrong in format, where count m in entries <otype>-per-line does not match actual entry counts. Often m were supposed to be 0, and remained 1 after someone (Will?) had removed the <otype> .
  2. They apparently had never been used so far. So I am not sure if that was the reason convinfo not been implemented. So I fixed them anyway in case it would be used later.
jing-guo commented 2 years ago

Regarding the use of a namelist for the purpose. It was very easy format to use in Fortran. Now it was very powerful even for data input in a table form, where one may have found hard to do in Fortran 90 or earlier.

Similarly, namelist was also used in pcscaling.db/ for implementation. The main idea is to avoid parsing data through hand coding.

rtodling commented 2 years ago

I am finding out that to run the new code I have to have a namelist available ... that is mksi.x now needs that namelist; all good, but that means the gsiinfo.pl script needs to be changed - I can do that.

But I still don't quite understand what the role of this namelist is wrt setting an active channel off - will we have to also change the namelist? Best to chat about this ...

jing-guo commented 2 years ago

I am finding out that to run the new code I have to have a namelist available ... that is mksi.x now needs that namelist; all good, but that means the gsiinfo.pl script needs to be changed - I can do that.

I guess you can rename <>.nml to <>.tbl, if you want.

But I still don't quite understand what the role of this namelist is wrt setting an active channel off - will we have to also change the namelist? Best to chat about this ...

They refer to different variables, need to be specified separately. Certainly icld would be meaningless if iuse were set to <= 0. So in the algorithm, mksi.x first rewrites iuse values from satinfo.tmpl according to active.tbl etc.. Then it rewrites icld values according to icldtable.nml.

jing-guo commented 2 years ago

mkis.x was a code designed and developed when iuse values were very simple, containing -1, 0, and 1 only. So there were available.tbl and active.tbl two files, one valid iuse value per file. Then more iuse values were defined, including 2, 3, 4 etc. One would wish we have had iuse values specified in active.tbl, but it is too late now. Managing and maintaining with many different iuse configuration values is becoming awkward.

In this icld case, we know ahead of time that multiple icld values are expected. And I hope I have got the algorithm right this time.

rtodling commented 2 years ago

Well, I made a mistake in setting up the run - so that's why it crashed - I realize I don't need a change anywhere else to simply reproduce previous behavior, but I am still puzzled as to whether icld as you coded is doing what I had envisioned. Perhaps we can chat tomorrow morning ... would 9pm be ok?

jing-guo commented 2 years ago

Yes. The key issue is indeed to confirm the algorithm against requirement.

rtodling commented 2 years ago

I tested these and can confirm the changes are zero diff.

jing-guo commented 2 years ago

One problem remains, will this implementation solve the original expectation of managing icld values for satinfo.txt file?

If you need to have some changes, please let me know.