Git Product home page Git Product logo

Comments (11)

pb866 avatar pb866 commented on July 18, 2024

I don't think, there will be a lot of changes to kpp and we will probably not need updates of future kpp versions, so I don't see as much of a problem here. But, again, I am not a big fan of man binary and compressed files in a git repository. We should keep the Mistra repo as clean and the file size as small as possible.

A better and more elegant solution would be to have a separate repository for kpp, where changes can be documented compared to the original version and work is performed independently of Mistra. In Mistra, we can then include kpp as a git submodule. This way, kpp is fixed to a certain version, which ensures kpp works with the respective mistra version and it is readily available from github. We could also adjust the makefile to install kpp on first use. We have done this for the box model DSMACC and it works really well.

from mistra.

rs028 avatar rs028 commented on July 18, 2024

I agree that KPP needs to be separate from Mistra. It is possibile to have two repos under the same organization so that seems the obvious solution.

I would like to know more about what is the need of a custom version of KPP. From what I understand this is a fork of the KPP fork for GEOS-Chem.

from mistra.

JosueBock avatar JosueBock commented on July 18, 2024

I agree with Peter that it is unlikely that KPP will evolve much in the future. You know, until I updated the version used in Mistra in 2016, it was still the first version of KPP which was used, and it was working.
The main reason to update it in Mistra was to use the latest (major) version, which is available online while the original (v1.0) version was no longer available.

Regarding the changes that I made in KPP, they are summarised in the CHANGELOG file of the KPP distribution provided with Mistra. You can also have a look to the various commits that I did on the f77 and mistra branches of the KPP bitbucket repository : https://bitbucket.org/gcst/kpp/commits/all

from mistra.

rs028 avatar rs028 commented on July 18, 2024

The last official version of kpp is 2.2.3. An update to that version was certainly due,
What I am asking is the reason behind the additional modifications, especially since it is not clear what are the different purpose of the various branches and their reltion to each other.
In particular:

  • What is the f77 branch and is the mistra branch related to it or not?
  • Why is the mistra branch on bitbucket different from that on github?

I understand the changes are listed in the changelog but it wpuld be good to have a less technical and more infornative summary in the kpp/README file.

from mistra.

JosueBock avatar JosueBock commented on July 18, 2024

Most KPP users use the Fortran90 output, so they were not aware of specific issues related to the Fortran77 output. For that reason, the bugfix that I did and which are generic (i.e. not specific to Mistra) are located in the f77 branch.
Conversely, a few changes were directly related to Mistra, and for that reason I uploaded them in a specific Mistra branch.

I will have a look to the differences between the current Mistra branch on bitbucket, and the distribution provided with Mistra, and see if something is missing somewhere.

from mistra.

JosueBock avatar JosueBock commented on July 18, 2024

I just thought that if any user of Mistra already use the generic version of KPP for other projects, it would be convenient to keep both version (the generic KPP version plus the specific KPP_for_Mistra version) in parallel.

The implementation would be quite straightforward, so please let me know if this situation arise.

from mistra.

rs028 avatar rs028 commented on July 18, 2024

So if I understand KPP4GC was a fork of KPP v2.2.3. Your forked two branches from KPP4GC (one called mistra and one called f77) and eventually merged them into the mistra branch. Then you applied a few more changes and that's how we end up with kpp version 2.2.4_GC which is currently in the kpp/ folder. Is this correct?

from mistra.

JosueBock avatar JosueBock commented on July 18, 2024

Adrian Sandu released the latest version of KPP (v2.2.3) in November 2012 (see his webpage: http://people.cs.vt.edu/~asandu/Software/Kpp/ tab Download). As far as I know, he is no longer committed in the developpement of KPP, probably because the version 2.2.3 has been brought to completion, and does not require further developments for most current users.
Nevertheless, I diagnosed some bugs in this version, and corrected them. In order to discuss and release these bugfixes, I contacted Rolf Sander, who told me about the GEOS-Chem Support Team, which is apparently the only group to maintain KPP with either bugfixes or developments.

This is, historically, the reason why the first bugfixes that I did were uploaded by Rolf Sander, as a F77 branch of KPPv2.2.3_GC, which was itself a branch of the official release by Adrian Sandu.
See the following commit:
https://bitbucket.org/gcst/kpp/commits/095f8617f47b35178f00de9cf1acb2b13febf872

The further changes that I implemented in KPP were then uploaded in the same F77 branch, or in the mistra branch, which should be identical to the F77 branch except for some KPP tuning specific to mistra.

Regarding the name of the KPP distribution currently included with Mistra, to be honest I can't remember why the "_GC" is there, it would be better to label it "KPPv2.2.3_mistra". I will first double check that the whole distribution is identical to the mistra branch, then correct the archive name (and/or its content if needed). However, I am fairly confident that I dit it right, and maybe just messed up the archive name.

from mistra.

rs028 avatar rs028 commented on July 18, 2024

All right. It is good to have all this explained clearly, for the record.
The name of the version does not really matter, but yes it makes more sense to add "mistra" as a suffix.

from mistra.

rs028 avatar rs028 commented on July 18, 2024

Closed this by mistake. From what I can see the final version of the mistra branch on bitbucket has these differences with the version of KPP shipped with Mistra:

  • minor differences in int/rosenbrock.f and in Makefile.defs
  • deleted files rosenbrock_split.def and rosenbrock_split.f90 in int/
  • deleted a number of files in util/
  • deleted directory int.modified_WCOPY/
  • added CHANGELOG and a diff file

from mistra.

JosueBock avatar JosueBock commented on July 18, 2024

History of changes for KPP now fully documented, from v2.2.3 to the current version, in a separate repository : https://github.com/Mistra-UEA/KPP-Mistra

from mistra.

Related Issues (7)

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.