Giter Club home page Giter Club logo

Comments (8)

dustinswales avatar dustinswales commented on June 27, 2024

@brhillman
Thanks for bringing this to our attention. Certainly looks as surfelev should not be declared as optional.
@rodrigoguzman-lmd Thoughts?

from cospv2.0.

rodrigoguzman-lmd avatar rodrigoguzman-lmd commented on June 27, 2024

@dustinswales @brhillman
Thanks for your messages, and sorry for the delayed answered. Yes, surfelev should definitively not be declared as optional. Dustin, what do you think if I open a new pull request where I could fix this and the bug concerning the opaque temperature diagnostics?

from cospv2.0.

rodrigoguzman-lmd avatar rodrigoguzman-lmd commented on June 27, 2024

@dustinswales @brhillman
Actually, it is not the COSP_OPAQ routine which declares surfelev as optional, it is the lidar_column routine which is in the same file (lidar_simulator.F90). So the title of this issue is not appropriate. The lidar_column routine declares surfelev as optional because it is only used by the CALIPSO simulator so far. @dustinswales , what shall we do, leave it as it is for the time being or declare surfelev as not optional in lidar_column and, hence, add this compulsory argument to the other lidar platform calls even if they don't use the surfelev variable so far?

from cospv2.0.

brhillman avatar brhillman commented on June 27, 2024

Oh, apologies, I might have had to add the optional to get it to run, because it's optional in lidar_column but non-optional in cosp_opaq, which is called from lidar_column. So either way this is a problem, because surfelev may not be present in lidar_column but is assumed present (required) in cosp_opaq. But I'll fix the description to be clear about this.

from cospv2.0.

dustinswales avatar dustinswales commented on June 27, 2024

@brhillman @rodrigoguzman-lmd @RobertPincus
Sorry for the late response, just now getting caught up on all things COSP.

After going through the code, I vote to keep surfelev as an optional input to lidar_column(). The reasoning is that in cosp.F90, lidar_simulator() is used by three different simulators (Calipso, ATlid, ground-based 532nm lidar), but only the Calipso simulator requires surfelev (to call cosp_opaq(), which it always does). Additionally, surfelev is protected throught lidar_column() with lcalipso flags.
Another option would be to have two interfaces to lidar_column(), but I'm in favor of the former.

from cospv2.0.

RobertPincus avatar RobertPincus commented on June 27, 2024

@dustinswales Your logic is sound. Does it imply we should see if @brhillman is willing to open a PR with changes to protect against using the variable when it's not provided?

from cospv2.0.

dustinswales avatar dustinswales commented on June 27, 2024

@dustinswales Your logic is sound. Does it imply we should see if @brhillman is willing to open a PR with changes to protect against using the variable when it's not provided?

@RobertPincus
The only place we need to add code is to the subroutine cosp_errorCheck(). There are three checks performed, 0) Are all fields allocated for requested simulators? 1) Are provided fields in range? 2) Are input fields sized consistently?
We would need to add logic in all three parts for both the Calipso and Cludsat simulator, as they both rely on surfelev.
@brhillman Would you be willing to open a PR?

from cospv2.0.

dustinswales avatar dustinswales commented on June 27, 2024

Closed.
See #64

from cospv2.0.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.