E3SM-Project / HOMMEXX

Clone of ACME for CMDV-SE project to convert HOMME to C++
11 stars 0 forks source link

Cam forcing #358

Closed mfdeakin-sandia closed 5 years ago

mfdeakin-sandia commented 5 years ago

Implements the type 2 forcing routines needed for integration with CAM, along with unit tests.

Fixes #337

Currently the unit test passes on Bowman. Since this is only applied when run through CAM, this is not expected to cause any non-BFB differences or performance implications for HOMMEXX

mfdeakin-sandia commented 5 years ago

This passes baselines on bowman and ride, so this should be ready. @oksanaguba The main concern I have with this is that I'm not using the fq_ps array in the elements structure. From what I (grep) can tell, that array is only used in the tracer forcing function implemented here, and not in CAM, so I decided not to spend precious memory bw on it (also replaces a scan with a reduce). Am I correct to do so, or is there some other reason to keep the buffer around?

oksanaguba commented 5 years ago

again, just to reiterate the same thing: this is really not tested wrt F (except for the unit test), cause we do not run nightlies with tests that need forcings...

oksanaguba commented 5 years ago

About derived%FQps -- i agree, i did not see anything in CAM either. due to case insensitivities, i grepped in cam/src folder: $ grep -r derived * and found nothing. it was used for energy calculations before, but not now.

mfdeakin-sandia commented 5 years ago

I'm now initializing the fq view just in time when it hasn't been initialized before, so no need for the ftype variable. Passes tests on ride, so I'm merging