diff --git a/src/MNH/mnh_oasis_recv.F90 b/src/MNH/mnh_oasis_recv.F90 index 481d2151a7cf24e1a0a259b01243119c4627c560..f3bbff21dff12a27d676f5e314541cb9cc7cba65 100644 --- a/src/MNH/mnh_oasis_recv.F90 +++ b/src/MNH/mnh_oasis_recv.F90 @@ -75,13 +75,14 @@ SUBROUTINE MNH_OASIS_RECV (HPROGRAM,KI,KSW,PTIMEC,PTSTEP_SURF, & USE MODN_SFX_OASIS, ONLY : XTSTEP_CPL_LAND, & XTSTEP_CPL_SEA, & XTSTEP_CPL_WAVE, & - LWATER + LWATER, LSEACARB ! USE MODD_SFX_OASIS, ONLY : LCPL_LAND, & LCPL_GW,LCPL_FLOOD,& LCPL_SEA, & LCPL_SEAICE, & - LCPL_WAVE + LCPL_WAVE, & + LSEAICE_2FLX ! USE MODD_SURF_PAR, ONLY : XUNDEF USE MODD_MNH_SURFEX_n @@ -122,12 +123,14 @@ REAL, DIMENSION(KI) :: ZLAND_WTD ! Land water table depth (m) REAL, DIMENSION(KI) :: ZLAND_FWTD ! Land grid-cell fraction of water table rise (-) REAL, DIMENSION(KI) :: ZLAND_FFLOOD ! Land Floodplains fraction (-) REAL, DIMENSION(KI) :: ZLAND_PIFLOOD ! Land Potential flood infiltration(kg/m2/s) +REAL, DIMENSION(KI) :: ZLAND_TWS ! RRM terrestrial water storage (kg/m2) REAL, DIMENSION(KI) :: ZSEA_SST ! Sea surface temperature (K) REAL, DIMENSION(KI) :: ZSEA_UCU ! Sea u-current stress (Pa) REAL, DIMENSION(KI) :: ZSEA_VCU ! Sea v-current stress (Pa) REAL, DIMENSION(KI) :: ZSEAICE_SIT ! Sea-ice Temperature (K) REAL, DIMENSION(KI) :: ZSEAICE_CVR ! Sea-ice cover (-) REAL, DIMENSION(KI) :: ZSEAICE_ALB ! Sea-ice albedo (-) +REAL, DIMENSION(KI) :: ZSEA_FCO2 ! Sea CO2 Flux REAL, DIMENSION(KI) :: ZWAVE_CHA ! Charnock coefficient (-) REAL, DIMENSION(KI) :: ZWAVE_UCU ! u-current velocity (m/s) REAL, DIMENSION(KI) :: ZWAVE_VCU ! v-current velocity (m/s) @@ -161,6 +164,7 @@ IF(GRECV_LAND)THEN ZLAND_FWTD (:) = XUNDEF ZLAND_FFLOOD (:) = XUNDEF ZLAND_PIFLOOD(:) = XUNDEF + ZLAND_TWS (:) = XUNDEF ENDIF ! IF(GRECV_SEA)THEN @@ -170,6 +174,7 @@ IF(GRECV_SEA)THEN ZSEAICE_SIT(:) = XUNDEF ZSEAICE_CVR(:) = XUNDEF ZSEAICE_ALB(:) = XUNDEF + ZSEA_FCO2(:) = XUNDEF ENDIF ! IF(GRECV_WAVE)THEN @@ -189,8 +194,10 @@ CALL SFX_OASIS_RECV(HPROGRAM,IGPTOT,KI,KSW,ZTIME_CPL, & GRECV_LAND, GRECV_SEA, GRECV_WAVE, & ZLAND_WTD (:),ZLAND_FWTD (:), & ZLAND_FFLOOD (:),ZLAND_PIFLOOD(:), & - ZSEA_SST (:),ZSEA_UCU (:), & - ZSEA_VCU (:),ZSEAICE_SIT (:), & + ZLAND_TWS (:), & + ZSEA_SST (:), & + ZSEA_UCU (:),ZSEA_VCU (:), & + ZSEA_FCO2 (:),ZSEAICE_SIT (:), & ZSEAICE_CVR (:),ZSEAICE_ALB (:), & ZWAVE_CHA (:),ZWAVE_UCU (:), & ZWAVE_VCU (:),ZWAVE_HS (:), & @@ -209,7 +216,7 @@ IF(GRECV_LAND)THEN YSURF_CUR%IM%NK, YSURF_CUR%IM%NP, YSURF_CUR%U, & ILUOUT,LCPL_GW,LCPL_FLOOD, & ZLAND_WTD (:),ZLAND_FWTD (:), & - ZLAND_FFLOOD(:),ZLAND_PIFLOOD(:) ) + ZLAND_FFLOOD(:),ZLAND_PIFLOOD(:), ZLAND_TWS ) ENDIF ! !------------------------------------------------------------------------------- @@ -218,10 +225,10 @@ ENDIF ! IF(GRECV_SEA)THEN CALL PUT_SFX_SEA(YSURF_CUR%SM%S, YSURF_CUR%U, YSURF_CUR%WM%W, & - ILUOUT,LCPL_SEAICE,LWATER, & + ILUOUT,LCPL_SEAICE, LSEAICE_2FLX,LWATER, LSEACARB, & ZSEA_SST (:),ZSEA_UCU (:), & - ZSEA_VCU (:),ZSEAICE_SIT(:), & - ZSEAICE_CVR(:),ZSEAICE_ALB(:) ) + ZSEA_VCU (:), ZSEA_FCO2(:), ZSEAICE_SIT(:), & + ZSEAICE_CVR(:), ZSEAICE_ALB(:) ) ENDIF ! !------------------------------------------------------------------------------- diff --git a/src/MNH/mnh_oasis_send.F90 b/src/MNH/mnh_oasis_send.F90 index 283772b77bce21611b5cde16423b2fe01e13d38e..06795780347d39be1d2c0c6bc575ce1161d98075 100644 --- a/src/MNH/mnh_oasis_send.F90 +++ b/src/MNH/mnh_oasis_send.F90 @@ -63,10 +63,11 @@ USE MODN_SFX_OASIS, ONLY : XTSTEP_CPL_LAND, & XTSTEP_CPL_LAKE, & XTSTEP_CPL_SEA , & XTSTEP_CPL_WAVE, & - LWATER + LWATER,LSEACARB ! USE MODD_SFX_OASIS, ONLY : LCPL_LAND,LCPL_GW, & LCPL_FLOOD,LCPL_CALVING, & + LCPL_RIVCARB, & LCPL_LAKE, & LCPL_SEA,LCPL_SEAICE, & LCPL_WAVE @@ -97,7 +98,8 @@ REAL, INTENT(IN) :: PSTEP_SURF ! Model time step (s) REAL, DIMENSION(KI) :: ZLAND_RUNOFF ! Cumulated Surface runoff (kg/m2) REAL, DIMENSION(KI) :: ZLAND_DRAIN ! Cumulated Deep drainage (kg/m2) REAL, DIMENSION(KI) :: ZLAND_CALVING ! Cumulated Calving flux (kg/m2) -REAL, DIMENSION(KI) :: ZLAND_RECHARGE ! Cumulated Recharge to groundwater (kg/m2) +REAL, DIMENSION(KI) :: ZLAND_SRCFLOOD ! Cumulated freshwater flux (kg/m2) +REAL, DIMENSION(KI) :: ZLAND_DOCFLUX ! Cumulated doc flux (kg/m2) ! REAL, DIMENSION(KI) :: ZLAKE_EVAP ! Cumulated Evaporation (kg/m2) REAL, DIMENSION(KI) :: ZLAKE_RAIN ! Cumulated Rainfall rate (kg/m2) @@ -119,6 +121,7 @@ REAL, DIMENSION(KI) :: ZSEA_PRES ! Cumulated Surface pressure (Pa.s) REAL, DIMENSION(KI) :: ZSEAICE_HEAT ! Cumulated Sea-ice non solar net heat flux (J/m2) REAL, DIMENSION(KI) :: ZSEAICE_SNET ! Cumulated Sea-ice solar net heat flux (J/m2) REAL, DIMENSION(KI) :: ZSEAICE_EVAP ! Cumulated Sea-ice sublimation (kg/m2) +REAL, DIMENSION(KI) :: ZSEA_CO2 ! ! REAL, DIMENSION(KI) :: ZWAVE_U10 ! 10m u-wind speed (m/s) REAL, DIMENSION(KI) :: ZWAVE_V10 ! 10m v-wind speed (m/s) @@ -154,7 +157,6 @@ IF(GSEND_LAND)THEN ZLAND_RUNOFF (:) = XUNDEF ZLAND_DRAIN (:) = XUNDEF ZLAND_CALVING (:) = XUNDEF - ZLAND_RECHARGE(:) = XUNDEF ENDIF ! IF(GSEND_LAKE)THEN @@ -180,6 +182,7 @@ IF(GSEND_SEA)THEN ZSEAICE_HEAT (:) = XUNDEF ZSEAICE_SNET (:) = XUNDEF ZSEAICE_EVAP (:) = XUNDEF + ZSEA_CO2 (:) = XUNDEF ENDIF ! IF(GSEND_WAVE)THEN @@ -197,9 +200,9 @@ IF(GSEND_LAND)THEN ! * Get river output fields ! CALL GET_SFX_LAND(YSURF_CUR%IM%O, YSURF_CUR%IM%S, YSURF_CUR%U, & - LCPL_GW,LCPL_FLOOD,LCPL_CALVING, & + LCPL_GW,LCPL_FLOOD,LCPL_CALVING, LCPL_RIVCARB, & ZLAND_RUNOFF (:),ZLAND_DRAIN (:), & - ZLAND_CALVING(:),ZLAND_RECHARGE(:) ) + ZLAND_CALVING(:),ZLAND_SRCFLOOD(:), ZLAND_DOCFLUX(:) ) ! ENDIF ! @@ -218,11 +221,11 @@ IF(GSEND_SEA)THEN ! * Get sea output fields ! CALL GET_SFX_SEA(YSURF_CUR%SM%S, YSURF_CUR%U, YSURF_CUR%WM%W, & - LCPL_SEAICE, LWATER, & + LCPL_SEAICE, LWATER, LSEACARB, & ZSEA_FWSU (:),ZSEA_FWSV (:),ZSEA_HEAT (:),& ZSEA_SNET (:),ZSEA_WIND (:),ZSEA_FWSM (:),& ZSEA_EVAP (:),ZSEA_RAIN (:),ZSEA_SNOW (:),& - ZSEA_WATF (:),ZSEA_PRES (:), & + ZSEA_WATF (:),ZSEA_PRES (:),ZSEA_CO2 (:),& ZSEAICE_HEAT(:),ZSEAICE_SNET(:),ZSEAICE_EVAP(:) ) ! ENDIF @@ -243,7 +246,8 @@ ENDIF ! ---------------------------------- ! CALL SFX_OASIS_SEND(ILUOUT,KI,IDATE,GSEND_LAND,GSEND_LAKE,GSEND_SEA,GSEND_WAVE, & - ZLAND_RUNOFF,ZLAND_DRAIN,ZLAND_CALVING,ZLAND_RECHARGE, & + ZLAND_RUNOFF,ZLAND_DRAIN,ZLAND_CALVING, & + ZLAND_SRCFLOOD,ZLAND_DOCFLUX, & ZLAKE_EVAP,ZLAKE_RAIN,ZLAKE_SNOW,ZLAKE_WATF, & ZSEA_FWSU,ZSEA_FWSV,ZSEA_HEAT,ZSEA_SNET,ZSEA_WIND, & ZSEA_FWSM,ZSEA_EVAP,ZSEA_RAIN,ZSEA_SNOW, & diff --git a/src/SURFEX/modd_sfx_oasis.F90 b/src/SURFEX/modd_sfx_oasis.F90 index beb0ca9f11f1a4da93190d3a44f71640ad56d8b5..11cca6afd531f6789895c749e6cfc2e7cf5f6fbb 100644 --- a/src/SURFEX/modd_sfx_oasis.F90 +++ b/src/SURFEX/modd_sfx_oasis.F90 @@ -104,6 +104,7 @@ INTEGER :: NLAKE_WATF_ID ! Freshwater id LOGICAL :: LCPL_SEA = .FALSE. ! Fields to/from surfex sea/water area LOGICAL :: LCPL_SEAICE = .FALSE. ! Fields to/from surfex sea-ice area (e.g. GELATO 3D, ...) LOGICAL :: LCPL_SEACARB = .FALSE. ! Fields to/from surfex related to carbon cycle (e.g. PISCES 3D, ...) +LOGICAL :: LSEAICE_2FLX = .FALSE. ! Fields to/from surfex sea-ice area ! ! Sea Output variables ! diff --git a/src/SURFEX/modn_sfx_oasis.F90 b/src/SURFEX/modn_sfx_oasis.F90 index 22410116e92643eed33e9490b33088f8df91f492..85f94d8dd56d695c5dcb678fc85c74089d8b1ba9 100644 --- a/src/SURFEX/modn_sfx_oasis.F90 +++ b/src/SURFEX/modn_sfx_oasis.F90 @@ -148,6 +148,11 @@ LOGICAL :: LWATER = .FALSE. ! LOGICAL :: LSEAICE_2FLX = .FALSE. ! +! +! Switch to activate sea carbon coupling +! +LOGICAL :: LSEACARB = .FALSE. +! !------------------------------------------------------------------------------- ! !* 1. NAMELISTS FOR LAND SURFACE FIELD @@ -175,7 +180,7 @@ NAMELIST/NAM_SFX_SEA_CPL/XTSTEP_CPL_SEA, LWATER, LSEAICE_2FLX, & CSEA_WATF,CSEA_PRES,CSEAICE_HEAT,CSEAICE_SNET, & CSEAICE_EVAP,CSEA_SST,CSEA_UCU,CSEA_VCU, & CSEAICE_SIT,CSEAICE_CVR,CSEAICE_ALB, & - CSEA_CO2,CSEA_FCO2 + CSEA_CO2,CSEA_FCO2, LSEACARB !not sure about the name of this namelist ! !* 4. NAMELISTS FOR WAVE FIELD ! ---------------------------------------------------------------