eceframework.h 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. ///////////////////////////////////////////////////////////////////////////////////////
  2. /// \file eceframework.h
  3. /// \brief The 'mission control' of LPJ-GUESS when coupled to EC-Earth
  4. ///
  5. /// $Date: 2018-02-02 18:01:35 +0100 (Fri, 02 Feb 2018) $
  6. ///
  7. ///////////////////////////////////////////////////////////////////////////////////////
  8. #ifndef LPJ_GUESS_ECEFRAMEWORK_H
  9. #define LPJ_GUESS_ECEFRAMEWORK_H
  10. class CommandLineArguments;
  11. /// The 'mission control' of LPJ-GUESS when coupled to EC-Earth
  12. /**
  13. * ecemain initializes LPJ-GUESS and then couples to EC-Earth via the OASIS-MCT coupler
  14. *
  15. * \param args The command line arguments, sent in from main
  16. *
  17. */
  18. int ecemain(const CommandLineArguments& args);
  19. // ecev3 - local communicator, initialised by OASIS-MCT
  20. static int localcomm;
  21. // ecev3 - MPI communicator gathering only component processes participating in the coupling
  22. static int couplcomm;
  23. //////////////////////////////////////////////////////////////////////////////////////
  24. // ecev3 - HELPER FUNCTIONS
  25. // Interpolate linearly between soil temperatures in the 2nd and 3rd IFS soil layers to get
  26. // T25. Layer 2 centre: 17cm. Layer 3 centre: 64cm.
  27. float ifs_to_lpjg_soiltemp(double temp_soil_2, double temp_soil_3);
  28. void ifs_to_lpjg_soilwater(double sm1l, double sm2l, double sm3l, double sm4l, float& lpjg_sw_upper, float& lpjg_sw_lower);
  29. #endif // LPJ_GUESS_ECEFRAMEWORK_H