OasisCoupler.h 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. class OasisCoupler
  2. {
  3. public : static char modelName[];
  4. // Received from IFS
  5. public : static int fieldTempId;
  6. public : static char fieldTempName[];
  7. public : static int fieldPrecipId;
  8. public : static char fieldPrecipName[];
  9. public : static int fieldSnowCId;
  10. public : static char fieldSnowCName[];
  11. public : static int fieldSnowDId;
  12. public : static char fieldSnowDName[];
  13. public : static int fieldST1LId;
  14. public : static char fieldST1LName[];
  15. public : static int fieldST2LId;
  16. public : static char fieldST2LName[];
  17. public : static int fieldST3LId;
  18. public : static char fieldST3LName[];
  19. public : static int fieldST4LId;
  20. public : static char fieldST4LName[];
  21. public : static int fieldSM1LId;
  22. public : static char fieldSM1LName[];
  23. public : static int fieldSM2LId;
  24. public : static char fieldSM2LName[];
  25. public : static int fieldSM3LId;
  26. public : static char fieldSM3LName[];
  27. public : static int fieldSM4LId;
  28. public : static char fieldSM4LName[];
  29. public: static int fieldSWRadId;
  30. public: static char fieldSWRadName[];
  31. public: static int fieldLWRadId;
  32. public: static char fieldLWRadName[];
  33. // Sent to IFS
  34. public : static int fieldLowlaiId;
  35. public : static char fieldLowlaiName[];
  36. public : static int fieldHighlaiId;
  37. public : static char fieldHighlaiName[];
  38. public : static int fieldTypeHId;
  39. public : static char fieldTypeHName[];
  40. public : static int fieldFracHId;
  41. public : static char fieldFracHName[];
  42. public : static int fieldTypeLId;
  43. public : static char fieldTypeLName[];
  44. public : static int fieldFracLId;
  45. public : static char fieldFracLName[];
  46. // For exchange with TM5
  47. public : static int fieldCO2Id;
  48. public : static char fieldCO2Name[];
  49. public : static int fieldCfluxNatId;
  50. public : static char fieldCfluxNatName[];
  51. public : static int fieldCfluxAntId;
  52. public : static char fieldCfluxAntName[];
  53. public : static int fieldNPPId;
  54. public : static char fieldNPPName[];
  55. // ***
  56. // METHODS
  57. // ***
  58. // Only OASIS-MCT initialisation
  59. public : static int init(int&);
  60. // Boolean argument specifies whether coupling to TM5 is done or not
  61. public : static int init_part_defvar(int, int, bool, int);
  62. // For communication with root only
  63. public : static int create_couplcomm(int, int, int&);
  64. // couple_get - from IFS and from TM5
  65. public : static int couple_get(int, int, int, bool, double *, double *, double *, double *, double *,
  66. double *, double *, double *, double *, double *, double *, double *, double *, double *, double *);
  67. // couple_put - up to 8 Fields (6 to IFS, 2 to TM5)
  68. public : static int couple_put(int, int, int, bool, double *, double *, double *, double *, double *, double *, double *, double *, double *);
  69. public : static int finalize(void);
  70. public : static int abort(int, std::string, std::string, int);
  71. };