New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 12166 – NEMO

Changeset 12166


Ignore:
Timestamp:
2019-12-11T09:53:24+01:00 (4 years ago)
Author:
cetlod
Message:

dev_merge_option2 : merge in ENHANCE-02_ISF_nemo branch

Location:
NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019
Files:
4 deleted
51 edited
4 copied

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/cfgs/SHARED/field_def_nemo-oce.xml

    r12154 r12166  
    283283 
    284284          <!-- * variable related to ice shelf forcing * --> 
    285           <field id="fwfisf"       long_name="Ice shelf melting"                             unit="kg/m2/s"  /> 
    286           <field id="fwfisf3d"     long_name="Ice shelf melting"                             unit="kg/m2/s"  grid_ref="grid_T_3D" /> 
    287           <field id="qlatisf"      long_name="Ice shelf latent heat flux"                    unit="W/m2"     /> 
    288           <field id="qlatisf3d"    long_name="Ice shelf latent heat flux"                    unit="W/m2"     grid_ref="grid_T_3D" /> 
    289           <field id="qhcisf"       long_name="Ice shelf heat content flux"                   unit="W/m2"     /> 
    290           <field id="qhcisf3d"     long_name="Ice shelf heat content flux"                   unit="W/m2"     grid_ref="grid_T_3D" /> 
    291           <field id="isfgammat"    long_name="transfert coefficient for isf (temperature) "  unit="m/s"      /> 
    292           <field id="isfgammas"    long_name="transfert coefficient for isf (salinity)    "  unit="m/s"      /> 
    293           <field id="stbl"         long_name="salinity in the Losh tbl                    "  unit="PSU"      /> 
    294           <field id="ttbl"         long_name="temperature in the Losh tbl                 "  unit="C"        /> 
    295           <field id="utbl"         long_name="zonal current in the Losh tbl at T point    "  unit="m/s"      /> 
    296           <field id="vtbl"         long_name="merid current in the Losh tbl at T point    "  unit="m/s"      /> 
    297           <field id="thermald"     long_name="thermal driving of ice shelf melting        "  unit="C"        /> 
    298           <field id="tfrz"         long_name="top freezing point (used to compute melt)   "  unit="C"        /> 
    299           <field id="tinsitu"      long_name="top insitu temperature (used to cmpt melt)  "  unit="C"        /> 
    300           <field id="ustar"        long_name="ustar at T point used in ice shelf melting  "  unit="m/s"      /> 
     285          <field id="isftfrz_cav"     long_name="freezing point temperature at ocean/isf interface"                unit="degC"     /> 
     286          <field id="isftfrz_par"     long_name="freezing point temperature in the parametrization boundary layer" unit="degC"     /> 
     287          <field id="fwfisf_cav"      long_name="Ice shelf melt rate"                           unit="kg/m2/s"  /> 
     288          <field id="fwfisf_par"      long_name="Ice shelf melt rate"                           unit="kg/m2/s"  /> 
     289          <field id="qoceisf_cav"     long_name="Ice shelf ocean  heat flux"                    unit="W/m2"     /> 
     290          <field id="qoceisf_par"     long_name="Ice shelf ocean  heat flux"                    unit="W/m2"     /> 
     291          <field id="qlatisf_cav"     long_name="Ice shelf latent heat flux"                    unit="W/m2"     /> 
     292          <field id="qlatisf_par"     long_name="Ice shelf latent heat flux"                    unit="W/m2"     /> 
     293          <field id="qhcisf_cav"      long_name="Ice shelf heat content flux of injected water" unit="W/m2"     /> 
     294          <field id="qhcisf_par"      long_name="Ice shelf heat content flux of injected water" unit="W/m2"     /> 
     295          <field id="fwfisf3d_cav"    long_name="Ice shelf melt rate"                           unit="kg/m2/s"  grid_ref="grid_T_3D" /> 
     296          <field id="fwfisf3d_par"    long_name="Ice shelf melt rate"                           unit="kg/m2/s"  grid_ref="grid_T_3D" /> 
     297          <field id="qoceisf3d_cav"   long_name="Ice shelf ocean  heat flux"                    unit="W/m2"     grid_ref="grid_T_3D" /> 
     298          <field id="qoceisf3d_par"   long_name="Ice shelf ocean  heat flux"                    unit="W/m2"     grid_ref="grid_T_3D" /> 
     299          <field id="qlatisf3d_cav"   long_name="Ice shelf latent heat flux"                    unit="W/m2"     grid_ref="grid_T_3D" /> 
     300          <field id="qlatisf3d_par"   long_name="Ice shelf latent heat flux"                    unit="W/m2"     grid_ref="grid_T_3D" /> 
     301          <field id="qhcisf3d_cav"    long_name="Ice shelf heat content flux of injected water" unit="W/m2"     grid_ref="grid_T_3D" /> 
     302          <field id="qhcisf3d_par"    long_name="Ice shelf heat content flux of injected water" unit="W/m2"     grid_ref="grid_T_3D" /> 
     303          <field id="ttbl_cav"        long_name="temperature in Losch tbl"                      unit="degC"     /> 
     304          <field id="ttbl_par"        long_name="temperature in the parametrisation boundary layer" unit="degC" /> 
     305          <field id="isfthermald_cav" long_name="thermal driving of ice shelf melting"          unit="degC"     /> 
     306          <field id="isfthermald_par" long_name="thermal driving of ice shelf melting"          unit="degC"     /> 
     307          <field id="isfgammat"       long_name="Ice shelf heat-transfert velocity"             unit="m/s"      /> 
     308          <field id="isfgammas"       long_name="Ice shelf salt-transfert velocity"             unit="m/s"      /> 
     309          <field id="stbl"            long_name="salinity in the Losh tbl"                      unit="1e-3"     /> 
     310          <field id="utbl"            long_name="zonal current in the Losh tbl at T point"      unit="m/s"      /> 
     311          <field id="vtbl"            long_name="merid current in the Losh tbl at T point"      unit="m/s"      /> 
     312          <field id="isfustar"        long_name="ustar at T point used in ice shelf melting"    unit="m/s"      /> 
     313          <field id="qconisf"         long_name="Conductive heat flux through the ice shelf"    unit="W/m2"     /> 
    301314 
    302315          <!-- *_oce variables available with ln_blk_clio or ln_blk_core --> 
  • NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/cfgs/SHARED/namelist_ice_ref

    r12112 r12166  
    6060      rn_icebfr     =  15.            !        maximum bottom stress per unit volume [N/m3] 
    6161      rn_lfrelax    =   1.e-5         !        relaxation time scale to reach static friction [s-1] 
    62       rn_tensile    =   0.2           !        isotropic tensile strength [0-0.5??] 
     62      rn_tensile    =   0.05          !        isotropic tensile strength [0-0.5??] 
    6363/ 
    6464!------------------------------------------------------------------------------ 
     
    9191!------------------------------------------------------------------------------ 
    9292   ln_rhg_EVP       = .true.          !  EVP rheology 
    93       ln_aEVP       = .false.         !     adaptive rheology (Kimmritz et al. 2016 & 2017) 
     93      ln_aEVP       = .true.          !     adaptive rheology (Kimmritz et al. 2016 & 2017) 
    9494      rn_creepl     =   2.0e-9        !     creep limit [1/s] 
    9595      rn_ecc        =   2.0           !     eccentricity of the elliptical yield curve           
  • NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/cfgs/SHARED/namelist_ref

    r12154 r12166  
    55!! namelists    2 - Surface boundary (namsbc, namsbc_flx, namsbc_blk, namsbc_cpl, 
    66!!                                    namsbc_sas, namtra_qsr, namsbc_rnf, 
    7 !!                                    namsbc_isf, namsbc_iscpl, namsbc_apr, 
     7!!                                    namsbc_isf, namsbc_iscpl, namsbc_apr,  
     8!!                                    namisf, namsbc_apr,  
    89!!                                    namsbc_ssr, namsbc_wave, namberg) 
    910!!              3 - lateral boundary (namlbc, namagrif, nambdy, nambdy_tide) 
     
    5152      cn_ocerst_out   = "restart"   !  suffix of ocean restart name (output) 
    5253      cn_ocerst_outdir = "."        !  directory in which to write output ocean restarts 
    53    ln_iscpl    = .false.   !  cavity evolution forcing or coupling to ice sheet model 
    54    nn_istate   =       0   !  output the initial state (1) or not (0) 
     54   nn_istate   =       1   !  output the initial state (1) or not (0) 
    5555   ln_rst_list = .false.   !  output restarts at list of times using nn_stocklist (T) or at set frequency with nn_stock (F) 
    5656   nn_stock    =       0   !  used only if ln_rst_list = F: output restart freqeuncy (modulo referenced to 1) 
     
    7272!----------------------------------------------------------------------- 
    7373   ln_linssh   = .false.   !  =T  linear free surface  ==>>  model level are fixed in time 
    74    rn_isfhmin  =    1.00   !  treshold [m] to discriminate grounding ice from floating ice 
    7574   ! 
    7675   rn_rdt      = 5400.     !  time step for the dynamics and tracer 
     
    7978   ln_crs      = .false.   !  Logical switch for coarsening module      (T => fill namcrs) 
    8079   ! 
    81    ln_meshmask = .false.   !  =T create a mesh file 
     80   ln_meshmask = .true.   !  =T create a mesh file 
    8281/ 
    8382!----------------------------------------------------------------------- 
     
    184183!!   namsbc_rnf      river runoffs                                      (ln_rnf     =T) 
    185184!!   namsbc_apr      Atmospheric Pressure                               (ln_apr_dyn =T) 
    186 !!   namsbc_isf      ice shelf melting/freezing                         (ln_isfcav  =T : read (ln_read_cfg=T) or set or usr_def_zgr ) 
    187 !!   namsbc_iscpl    coupling option between land ice model and ocean   (ln_isfcav  =T) 
    188185!!   namsbc_wave     external fields from wave model                    (ln_wave    =T) 
    189186!!   namberg         iceberg floats                                     (ln_icebergs=T) 
     
    223220   ln_rnf      = .false.   !  runoffs                                   (T => fill namsbc_rnf) 
    224221   ln_apr_dyn  = .false.   !  Patm gradient added in ocean & ice Eqs.   (T => fill namsbc_apr ) 
    225    ln_isf      = .false.   !  ice shelf                                 (T   => fill namsbc_isf & namsbc_iscpl) 
    226222   ln_wave     = .false.   !  Activate coupling with wave  (T => fill namsbc_wave) 
    227223   ln_cdgw     = .false.   !  Neutral drag coefficient read from wave model (T => ln_wave=.true. & fill namsbc_wave) 
     
    482478/ 
    483479!----------------------------------------------------------------------- 
    484 &namsbc_isf    !  Top boundary layer (ISF)                              (ln_isfcav =T : read (ln_read_cfg=T) 
    485 !-----------------------------------------------------------------------             or set or usr_def_zgr ) 
    486    !                 ! type of top boundary layer 
    487    nn_isf      = 1         !  ice shelf melting/freezing 
    488                            !  1 = presence of ISF   ;  2 = bg03 parametrisation 
    489                            !  3 = rnf file for ISF  ;  4 = ISF specified freshwater flux 
    490                            !  options 1 and 4 need ln_isfcav = .true. (domzgr) 
    491       !              !  nn_isf = 1 or 2 cases: 
    492       rn_gammat0  = 1.e-4     ! gammat coefficient used in blk formula 
    493       rn_gammas0  = 1.e-4     ! gammas coefficient used in blk formula 
    494       !              !  nn_isf = 1 or 4 cases: 
    495       rn_hisf_tbl =  30.      ! thickness of the top boundary layer    (Losh et al. 2008) 
    496       !                       ! 0 => thickness of the tbl = thickness of the first wet cell 
    497       !              ! nn_isf = 1 case 
    498       nn_isfblk   = 1         ! 1 ISOMIP  like: 2 equations formulation (Hunter et al., 2006) 
    499       !                       ! 2 ISOMIP+ like: 3 equations formulation (Asay-Davis et al., 2015) 
    500       nn_gammablk = 1         ! 0 = cst Gammat (= gammat/s) 
    501       !                       ! 1 = velocity dependend Gamma (u* * gammat/s)  (Jenkins et al. 2010) 
    502       !                       ! 2 = velocity and stability dependent Gamma    (Holland et al. 1999) 
    503  
    504    !___________!_____________!___________________!___________!_____________!_________!___________!__________!__________!_______________! 
    505    !           !  file name  ! frequency (hours) ! variable  ! time interp.!  clim   ! 'yearly'/ ! weights  ! rotation ! land/sea mask ! 
    506    !           !             !  (if <0  months)  !   name    !  (logical)  !  (T/F)  ! 'monthly' ! filename ! pairing  ! filename      ! 
    507 !* nn_isf = 4 case 
    508    sn_fwfisf   = 'rnfisf'    ,         -12.      ,'sowflisf' ,  .false.    , .true.  , 'yearly'  ,    ''    ,   ''     ,    '' 
    509 !* nn_isf = 3 case 
    510    sn_rnfisf   = 'rnfisf'    ,         -12.      ,'sofwfisf' ,  .false.    , .true.  , 'yearly'  ,    ''    ,   ''     ,    '' 
    511 !* nn_isf = 2 and 3 cases 
    512    sn_depmax_isf ='rnfisf'   ,         -12.      ,'sozisfmax',  .false.    , .true.  , 'yearly'  ,    ''    ,   ''     ,    '' 
    513    sn_depmin_isf ='rnfisf'   ,         -12.      ,'sozisfmin',  .false.    , .true.  , 'yearly'  ,    ''    ,   ''     ,    '' 
    514 !* nn_isf = 2 case 
    515    sn_Leff_isf = 'rnfisf'    ,         -12.      ,'Leff'     ,  .false.    , .true.  , 'yearly'  ,    ''    ,   ''     ,    '' 
    516 / 
    517 !----------------------------------------------------------------------- 
    518 &namsbc_iscpl  !   land ice / ocean coupling option                     (ln_isfcav =T : read (ln_read_cfg=T) 
    519 !-----------------------------------------------------------------------             or set or usr_def_zgr ) 
    520    nn_drown    = 10        ! number of iteration of the extrapolation loop (fill the new wet cells) 
    521    ln_hsb      = .false.   ! activate conservation module (conservation exact after a time of rn_fiscpl) 
    522    nn_fiscpl   = 43800     ! (number of time step) conservation period (maybe should be fix to the coupling frequencey of restart frequency) 
     480&namisf       !  Top boundary layer (ISF)                               (default: OFF) 
     481!----------------------------------------------------------------------- 
     482   ! 
     483   ! ---------------- ice shelf load ------------------------------- 
     484   ! 
     485   cn_isfload = 'uniform'      ! scheme to compute ice shelf load (ln_isfcav = .true. in domain_cfg.nc) 
     486      rn_isfload_T = -1.9 
     487      rn_isfload_S = 34.4 
     488   ! 
     489   ! ---------------- ice shelf melt formulation ------------------------------- 
     490   ! 
     491   ln_isf = .false.           ! activate ice shelf module 
     492      ln_isfdebug = .false.      ! add debug print in ISF code (global min/max/sum of specific variable) 
     493      cn_isfdir   = './'         ! directory for all ice shelf input file 
     494      ! 
     495      ! ---------------- cavities opened ------------------------------- 
     496      ! 
     497      ln_isfcav_mlt = .false.    ! ice shelf melting into the cavity (need ln_isfcav = .true. in domain_cfg.nc) 
     498         cn_isfcav_mlt = '3eq'   ! ice shelf melting formulation (spe/2eq/3eq/oasis) 
     499         !                       ! spe = fwfisf is read from a forcing field 
     500         !                       ! 2eq = ISOMIP  like: 2 equations formulation (Hunter et al., 2006 for a short description) 
     501         !                       ! 3eq = ISOMIP+ like: 3 equations formulation (Asay-Davis et al., 2016 for a short description) 
     502         !                       ! oasis = fwfisf is given by oasis and pattern by file sn_isfcav_fwf 
     503         !              !  cn_isfcav_mlt = 2eq or 3eq cases: 
     504         cn_gammablk = 'vel'     ! scheme to compute gammat/s (spe,ad15,hj99) 
     505         !                       ! spe      = constant transfert velocity (rn_gammat0, rn_gammas0) 
     506         !                       ! vel      = velocity dependent transfert velocity (u* * gammat/s) (Asay-Davis et al. 2016 for a short description) 
     507         !                       ! vel_stab = velocity and stability dependent transfert coeficient (Holland et al. 1999 for a complete description) 
     508         rn_gammat0  = 1.4e-2    ! gammat coefficient used in spe, vel and vel_stab gamma computation method 
     509         rn_gammas0  = 4.0e-4    ! gammas coefficient used in spe, vel and vel_stab gamma computation method 
     510         ! 
     511         rn_htbl     =  30.      ! thickness of the top boundary layer    (Losh et al. 2008) 
     512         !                       ! 0 => thickness of the tbl = thickness of the first wet cell 
     513         ! 
     514         !* 'spe' and 'oasis' case 
     515         !___________!_____________!___________________!___________!_____________!_________!___________!__________!__________!_______________! 
     516         !           !  file name  ! frequency (hours) ! variable  ! time interp.!  clim   ! 'yearly'/ ! weights  ! rotation ! land/sea mask ! 
     517         !           !             !  (if <0  months)  !   name    !  (logical)  !  (T/F)  ! 'monthly' ! filename ! pairing  ! filename      ! 
     518         sn_isfcav_fwf = 'isfmlt_cav',      -12.      , 'fwflisf'  ,  .false.    , .true.  , 'yearly'  ,    ''    ,   ''     ,    '' 
     519      ! 
     520      ! ---------------- cavities parametrised ------------------------------- 
     521      ! 
     522      ln_isfpar_mlt = .false.   ! ice shelf melting parametrised 
     523         cn_isfpar_mlt = 'spe'  ! ice shelf melting parametrisation (spe/bg03/oasis) 
     524         !                      ! spe   = fwfisf is read from a forcing field 
     525         !                      ! bg03  = melt computed using Beckmann and Goosse parametrisation 
     526         !                      ! oasis = fwfisf is given by oasis and pattern by file sn_isfpar_fwf 
     527         ! 
     528         !* all cases 
     529         !___________!_____________!___________________!___________!_____________!_________!___________!__________!__________!_______________! 
     530         !           !  file name  ! frequency (hours) ! variable  ! time interp.!  clim   ! 'yearly'/ ! weights  ! rotation ! land/sea mask ! 
     531         !           !             !  (if <0  months)  !   name    !  (logical)  !  (T/F)  ! 'monthly' ! filename ! pairing  ! filename      ! 
     532         sn_isfpar_zmax = 'isfmlt_par',       0        ,'sozisfmax',  .false.    , .true.  , 'yearly'  ,    ''    ,   ''     ,    '' 
     533         sn_isfpar_zmin = 'isfmlt_par',       0        ,'sozisfmin',  .false.    , .true.  , 'yearly'  ,    ''    ,   ''     ,    '' 
     534         !* 'spe' and 'oasis' case 
     535         sn_isfpar_fwf = 'isfmlt_par' ,      -12.      ,'sofwfisf' ,  .false.    , .true.  , 'yearly'   ,    ''    ,   ''     ,    '' 
     536         !* 'bg03' case 
     537         sn_isfpar_Leff = 'isfmlt_par',       0.       ,'Leff'     ,  .false.    , .true.  , 'yearly'   ,    ''    ,   ''     ,    '' 
     538      ! 
     539      ! ---------------- ice sheet coupling ------------------------------- 
     540      ! 
     541      ln_isfcpl = .false. 
     542         nn_drown       = 10        ! number of iteration of the extrapolation loop (fill the new wet cells) 
     543         ln_isfcpl_cons = .false. 
    523544/ 
    524545!----------------------------------------------------------------------- 
     
    12381259&nam_diatmb    !  Top Middle Bottom Output                              (default: OFF) 
    12391260!----------------------------------------------------------------------- 
    1240    ln_diatmb   = .false.   !  Choose Top Middle and Bottom output or not 
     1261   ln_diatmb   = .true.   !  Choose Top Middle and Bottom output or not 
    12411262/ 
    12421263!----------------------------------------------------------------------- 
  • NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/cfgs/ref_cfgs.txt

    r12154 r12166  
    1212ORCA2_ICE OCE ICE 
    1313SPITZ12 OCE ICE 
    14 eORCA025_ICE OCE ICE 
    15 eORCA025_ICE_ABL OCE ICE ABL 
    16 eORCA025_SAS_ICE_ABL OCE SAS ICE ABL 
     14WED025 OCE ICE 
  • NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/BDY/bdyvol.F90

    r11536 r12166  
    1414   USE bdy_oce        ! ocean open boundary conditions 
    1515   USE sbc_oce        ! ocean surface boundary conditions 
     16   USE isf_oce, ONLY : fwfisf_cav, fwfisf_par  ! ice shelf 
    1617   USE dom_oce        ! ocean space and time domain  
    1718   USE phycst         ! physical constants 
    18    USE sbcisf         ! ice shelf 
    1919   ! 
    2020   USE in_out_manager ! I/O manager 
     
    7777      ! Calculate the cumulate surface Flux z_cflxemp (m3/s) over all the domain 
    7878      ! ----------------------------------------------------------------------- 
    79       IF ( kc == 1 ) z_cflxemp = glob_sum( 'bdyvol', ( emp(:,:) - rnf(:,:) + fwfisf(:,:) ) * bdytmask(:,:) * e1e2t(:,:)  ) / rau0 
     79      IF ( kc == 1 ) z_cflxemp = glob_sum( 'bdyvol', ( emp(:,:) - rnf(:,:) + fwfisf_cav(:,:) + fwfisf_par(:,:) ) * bdytmask(:,:) * e1e2t(:,:)  ) / rau0 
    8080 
    8181      ! Compute bdy surface each cycle if non linear free surface 
  • NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DIA/diahsb.F90

    r11536 r12166  
    1717   USE phycst         ! physical constants 
    1818   USE sbc_oce        ! surface thermohaline fluxes 
     19   USE isf_oce        ! ice shelf fluxes 
    1920   USE sbcrnf         ! river runoff 
    20    USE sbcisf         ! ice shelves 
    2121   USE domvvl         ! vertical scale factors 
    2222   USE traqsr         ! penetrative solar radiation 
     
    4848   REAL(wp), DIMENSION(:,:)  , ALLOCATABLE ::   ssh_hc_loc_ini, ssh_sc_loc_ini   ! 
    4949   REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::   hc_loc_ini, sc_loc_ini, e3t_ini  ! 
     50   REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::   tmask_ini 
    5051 
    5152   !! * Substitutions 
     
    9192      ! 1 - Trends due to forcing ! 
    9293      ! ------------------------- ! 
    93       z_frc_trd_v = r1_rau0 * glob_sum( 'diahsb', - ( emp(:,:) - rnf(:,:) + fwfisf(:,:) ) * surf(:,:) )   ! volume fluxes 
     94      z_frc_trd_v = r1_rau0 * glob_sum( 'diahsb', - ( emp(:,:) - rnf(:,:) + fwfisf_cav(:,:) + fwfisf_par(:,:) ) * surf(:,:) )   ! volume fluxes 
    9495      z_frc_trd_t =           glob_sum( 'diahsb', sbc_tsc(:,:,jp_tem) * surf(:,:) )                       ! heat fluxes 
    9596      z_frc_trd_s =           glob_sum( 'diahsb', sbc_tsc(:,:,jp_sal) * surf(:,:) )                       ! salt fluxes 
     
    9899      IF( ln_rnf_sal)   z_frc_trd_s = z_frc_trd_s + glob_sum( 'diahsb', rnf_tsc(:,:,jp_sal) * surf(:,:) ) 
    99100      !                    ! Add ice shelf heat & salt input 
    100       IF( ln_isf    )   z_frc_trd_t = z_frc_trd_t + glob_sum( 'diahsb', risf_tsc(:,:,jp_tem) * surf(:,:) ) 
     101      IF( ln_isf    )   z_frc_trd_t = z_frc_trd_t & 
     102         &                          + glob_sum( 'diahsb', ( risf_cav_tsc(:,:,jp_tem) + risf_par_tsc(:,:,jp_tem) ) * surf(:,:) ) 
    101103      !                    ! Add penetrative solar radiation 
    102104      IF( ln_traqsr )   z_frc_trd_t = z_frc_trd_t + r1_rau0_rcp * glob_sum( 'diahsb', qsr     (:,:) * surf(:,:) ) 
     
    155157      ! 
    156158      DO jk = 1, jpkm1           ! volume variation (calculated with scale factors) 
    157          zwrk(:,:,jk) = ( surf(:,:)*e3t_n(:,:,jk) - surf_ini(:,:)*e3t_ini(:,:,jk) ) * tmask(:,:,jk) 
     159         zwrk(:,:,jk) = surf(:,:)*e3t_n(:,:,jk)*tmask(:,:,jk) - surf_ini(:,:)*e3t_ini(:,:,jk)*tmask_ini(:,:,jk) 
    158160      END DO 
    159       zdiff_v2 = glob_sum_full( 'diahsb', zwrk(:,:,:) ) 
     161      zdiff_v2 = glob_sum_full( 'diahsb', zwrk(:,:,:) )     ! glob_sum_full needed as tmask and tmask_ini could be different 
    160162      DO jk = 1, jpkm1           ! heat content variation 
    161          zwrk(:,:,jk) = ( surf(:,:)*e3t_n(:,:,jk)*tsn(:,:,jk,jp_tem) - surf_ini(:,:)*hc_loc_ini(:,:,jk) ) * tmask(:,:,jk) 
     163         zwrk(:,:,jk) = ( surf(:,:)*e3t_n(:,:,jk)*tsn(:,:,jk,jp_tem) - surf_ini(:,:)*hc_loc_ini(:,:,jk) ) 
    162164      END DO 
    163165      zdiff_hc = glob_sum_full( 'diahsb', zwrk(:,:,:) ) 
    164166      DO jk = 1, jpkm1           ! salt content variation 
    165          zwrk(:,:,jk) = ( surf(:,:)*e3t_n(:,:,jk)*tsn(:,:,jk,jp_sal) - surf_ini(:,:)*sc_loc_ini(:,:,jk) ) * tmask(:,:,jk) 
     167         zwrk(:,:,jk) = ( surf(:,:)*e3t_n(:,:,jk)*tsn(:,:,jk,jp_sal) - surf_ini(:,:)*sc_loc_ini(:,:,jk) ) 
    166168      END DO 
    167169      zdiff_sc = glob_sum_full( 'diahsb', zwrk(:,:,:) ) 
     
    187189         zwrk(:,:,jk) = surf(:,:) * e3t_n(:,:,jk) * tmask(:,:,jk) 
    188190      END DO 
    189       zvol_tot = glob_sum_full( 'diahsb', zwrk(:,:,:) ) 
     191      zvol_tot = glob_sum( 'diahsb', zwrk(:,:,:) ) 
    190192 
    191193!!gm to be added ? 
     
    270272            CALL iom_get( numror, jpdom_autoglo, 'ssh_ini'   , ssh_ini   , ldxios = lrxios ) 
    271273            CALL iom_get( numror, jpdom_autoglo, 'e3t_ini'   , e3t_ini   , ldxios = lrxios ) 
     274            CALL iom_get( numror, jpdom_autoglo, 'tmask_ini' , tmask_ini , ldxios = lrxios ) 
    272275            CALL iom_get( numror, jpdom_autoglo, 'hc_loc_ini', hc_loc_ini, ldxios = lrxios ) 
    273276            CALL iom_get( numror, jpdom_autoglo, 'sc_loc_ini', sc_loc_ini, ldxios = lrxios ) 
     
    285288              ! if ice sheet/oceqn coupling, need to mask ini variables here (mask could change at the next NEMO instance). 
    286289               e3t_ini   (:,:,jk) = e3t_n(:,:,jk)                      * tmask(:,:,jk)  ! initial vertical scale factors 
     290               tmask_ini (:,:,jk) = tmask(:,:,jk)                                       ! initial mask 
    287291               hc_loc_ini(:,:,jk) = tsn(:,:,jk,jp_tem) * e3t_n(:,:,jk) * tmask(:,:,jk)  ! initial heat content 
    288292               sc_loc_ini(:,:,jk) = tsn(:,:,jk,jp_sal) * e3t_n(:,:,jk) * tmask(:,:,jk)  ! initial salt content 
     
    325329         CALL iom_rstput( kt, nitrst, numrow, 'ssh_ini'   , ssh_ini   , ldxios = lwxios ) 
    326330         CALL iom_rstput( kt, nitrst, numrow, 'e3t_ini'   , e3t_ini   , ldxios = lwxios ) 
     331         CALL iom_rstput( kt, nitrst, numrow, 'tmask_ini' , tmask_ini , ldxios = lwxios ) 
    327332         CALL iom_rstput( kt, nitrst, numrow, 'hc_loc_ini', hc_loc_ini, ldxios = lwxios ) 
    328333         CALL iom_rstput( kt, nitrst, numrow, 'sc_loc_ini', sc_loc_ini, ldxios = lwxios ) 
     
    396401      ! ------------------- ! 
    397402      ALLOCATE( hc_loc_ini(jpi,jpj,jpk), sc_loc_ini(jpi,jpj,jpk), surf_ini(jpi,jpj), & 
    398          &      e3t_ini(jpi,jpj,jpk), surf(jpi,jpj),  ssh_ini(jpi,jpj), STAT=ierror  ) 
     403         &      e3t_ini(jpi,jpj,jpk), surf(jpi,jpj),  ssh_ini(jpi,jpj), tmask_ini(jpi,jpj,jpk),STAT=ierror  ) 
    399404      IF( ierror > 0 ) THEN 
    400405         CALL ctl_stop( 'dia_hsb_init: unable to allocate hc_loc_ini' )   ;   RETURN 
  • NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DIA/diawri.F90

    r12154 r12166  
    2727   USE oce            ! ocean dynamics and tracers  
    2828   USE abl            ! abl variables in case ln_abl = .true. 
     29   USE isf_oce 
     30   USE isfcpl 
    2931   USE dom_oce        ! ocean space and time domain 
    3032   USE phycst         ! physical constants 
     
    957959      CHARACTER (len=* ), INTENT( in ) ::   cdfile_name      ! name of the file created 
    958960      !! 
    959       INTEGER :: inum 
     961      INTEGER :: inum, jk 
    960962      !!---------------------------------------------------------------------- 
    961963      !  
     
    981983         CALL iom_rstput( 0, 0, inum, 'vovecrtz', wn             )    ! now k-velocity 
    982984      ENDIF 
     985      CALL iom_rstput( 0, 0, inum, 'risfdep', risfdep            )    ! now k-velocity 
     986      CALL iom_rstput( 0, 0, inum, 'ht_n'   , ht_n               )    ! now k-velocity 
     987 
     988      IF ( ln_isf ) THEN 
     989         IF (ln_isfcav_mlt) THEN 
     990            CALL iom_rstput( 0, 0, inum, 'fwfisf_cav', fwfisf_cav          )    ! now k-velocity 
     991            CALL iom_rstput( 0, 0, inum, 'rhisf_cav_tbl', rhisf_tbl_cav    )    ! now k-velocity 
     992            CALL iom_rstput( 0, 0, inum, 'rfrac_cav_tbl', rfrac_tbl_cav    )    ! now k-velocity 
     993            CALL iom_rstput( 0, 0, inum, 'misfkb_cav', REAL(misfkb_cav,8)    )    ! now k-velocity 
     994            CALL iom_rstput( 0, 0, inum, 'misfkt_cav', REAL(misfkt_cav,8)    )    ! now k-velocity 
     995            CALL iom_rstput( 0, 0, inum, 'mskisf_cav', REAL(mskisf_cav,8), ktype = jp_i1 ) 
     996         END IF 
     997         IF (ln_isfpar_mlt) THEN 
     998            CALL iom_rstput( 0, 0, inum, 'isfmsk_par', REAL(mskisf_par,8)  )    ! now k-velocity 
     999            CALL iom_rstput( 0, 0, inum, 'fwfisf_par', fwfisf_par          )    ! now k-velocity 
     1000            CALL iom_rstput( 0, 0, inum, 'rhisf_par_tbl', rhisf_tbl_par    )    ! now k-velocity 
     1001            CALL iom_rstput( 0, 0, inum, 'rfrac_par_tbl', rfrac_tbl_par    )    ! now k-velocity 
     1002            CALL iom_rstput( 0, 0, inum, 'misfkb_par', REAL(misfkb_par,8)    )    ! now k-velocity 
     1003            CALL iom_rstput( 0, 0, inum, 'misfkt_par', REAL(misfkt_par,8)    )    ! now k-velocity 
     1004            CALL iom_rstput( 0, 0, inum, 'mskisf_par', REAL(mskisf_par,8), ktype = jp_i1 ) 
     1005         END IF 
     1006      END IF 
     1007 
    9831008      IF( ALLOCATED(ahtu) ) THEN 
    9841009         CALL iom_rstput( 0, 0, inum,  'ahtu', ahtu              )    ! aht at u-point 
  • NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DOM/dom_oce.F90

    r10068 r12166  
    3232   LOGICAL , PUBLIC ::   ln_linssh      !: =T  linear free surface ==>> model level are fixed in time 
    3333   LOGICAL , PUBLIC ::   ln_meshmask    !: =T  create a mesh-mask file (mesh_mask.nc) 
    34    REAL(wp), PUBLIC ::   rn_isfhmin     !: threshold to discriminate grounded ice to floating ice 
    3534   REAL(wp), PUBLIC ::   rn_rdt         !: time step for the dynamics and tracer 
    3635   REAL(wp), PUBLIC ::   rn_atfp        !: asselin time filter parameter 
    3736   INTEGER , PUBLIC ::   nn_euler       !: =0 start with forward time step or not (=1) 
    38    LOGICAL , PUBLIC ::   ln_iscpl       !: coupling with ice sheet 
    3937   LOGICAL , PUBLIC ::   ln_crs         !: Apply grid coarsening to dynamical model output or online passive tracers 
    4038 
     
    158156   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:)   ::   e3t_1d  , e3w_1d   !: reference vertical scale factors at T- and W-pts (m) 
    159157 
     158   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   risfdep, bathy 
    160159 
    161160   !!---------------------------------------------------------------------- 
     
    170169   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   tmask_h            !: internal domain T-point mask (Figure 8.5 NEMO book) 
    171170 
    172    INTEGER , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   misfdep                 !: top first ocean level             (ISF) 
    173    INTEGER , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   mikt, miku, mikv, mikf  !: top first wet T-, U-, V-, F-level (ISF) 
    174    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   risfdep                 !: Iceshelf draft                    (ISF) 
     171   INTEGER , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   mikt, miku, mikv, mikf  !: top first wet T-, U-, V-, F-level           (ISF) 
    175172 
    176173   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   ssmask, ssumask, ssvmask             !: surface mask at T-,U-, V- and F-pts 
     
    274271         &                      hu_a(jpi,jpj) , hv_a(jpi,jpj) , r1_hu_a(jpi,jpj) , r1_hv_a(jpi,jpj) , STAT=ierr(6)  ) 
    275272         ! 
    276          ! 
    277       ALLOCATE( gdept_1d(jpk) , gdepw_1d(jpk) , e3t_1d(jpk) , e3w_1d(jpk) , STAT=ierr(7) ) 
     273      ALLOCATE( risfdep(jpi,jpj) , bathy(jpi,jpj) , STAT=ierr(7)  )  
     274         ! 
     275      ALLOCATE( gdept_1d(jpk) , gdepw_1d(jpk) , e3t_1d(jpk) , e3w_1d(jpk) , STAT=ierr(8) ) 
    278276         ! 
    279277      ALLOCATE( tmask_i(jpi,jpj) , tmask_h(jpi,jpj) ,                        &  
     
    281279         &      mbkt   (jpi,jpj) , mbku   (jpi,jpj) , mbkv   (jpi,jpj) , STAT=ierr(9) ) 
    282280         ! 
    283       ALLOCATE( misfdep(jpi,jpj) , mikt(jpi,jpj) , miku(jpi,jpj) ,     & 
    284          &      risfdep(jpi,jpj) , mikv(jpi,jpj) , mikf(jpi,jpj) , STAT=ierr(10) ) 
     281      ALLOCATE( mikt(jpi,jpj), miku(jpi,jpj), mikv(jpi,jpj), mikf(jpi,jpj), STAT=ierr(10) ) 
    285282         ! 
    286283      ALLOCATE( tmask(jpi,jpj,jpk) , umask(jpi,jpj,jpk) ,     &  
  • NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DOM/domain.F90

    r11536 r12166  
    140140                                       ! Read in masks to define closed seas and lakes  
    141141      ! 
    142       DO jj = 1, jpj                   ! depth of the iceshelves 
    143          DO ji = 1, jpi 
    144             ik = mikt(ji,jj) 
    145             risfdep(ji,jj) = gdepw_0(ji,jj,ik) 
    146          END DO 
    147       END DO 
    148       ! 
    149142      ht_0(:,:) = 0._wp  ! Reference ocean thickness 
    150143      hu_0(:,:) = 0._wp 
     
    192185      IF( lk_c1d         )   CALL cor_c1d       ! 1D configuration: Coriolis set at T-point 
    193186      ! 
    194       IF( ln_meshmask .AND. .NOT.ln_iscpl )                        CALL dom_wri     ! Create a domain file 
    195       IF( ln_meshmask .AND.      ln_iscpl .AND. .NOT.ln_rstart )   CALL dom_wri     ! Create a domain file 
    196       IF(                                       .NOT.ln_rstart )   CALL dom_ctl     ! Domain control 
    197       ! 
    198       IF( ln_write_cfg )   CALL cfg_write         ! create the configuration file 
     187      IF( ln_meshmask    )   CALL dom_wri       ! Create a domain file 
     188      IF( .NOT.ln_rstart )   CALL dom_ctl       ! Domain control 
     189      ! 
     190      IF( ln_write_cfg   )   CALL cfg_write     ! create the configuration file 
    199191      ! 
    200192      IF(lwp) THEN 
     
    292284         &             nn_it000, nn_itend , nn_date0    , nn_time0     , nn_leapy  , nn_istate ,     & 
    293285         &             nn_stock, nn_write , ln_mskland  , ln_clobber   , nn_chunksz, nn_euler  ,     & 
    294          &             ln_cfmeta, ln_iscpl, ln_xios_read, nn_wxios 
    295       NAMELIST/namdom/ ln_linssh, rn_isfhmin, rn_rdt, rn_atfp, ln_crs, ln_meshmask 
     286         &             ln_cfmeta, ln_xios_read, nn_wxios 
     287      NAMELIST/namdom/ ln_linssh, rn_rdt, rn_atfp, ln_crs, ln_meshmask 
    296288#if defined key_netcdf4 
    297289      NAMELIST/namnc4/ nn_nchunks_i, nn_nchunks_j, nn_nchunks_k, ln_nc4zip 
     
    343335         WRITE(numout,*) '      overwrite an existing file      ln_clobber      = ', ln_clobber 
    344336         WRITE(numout,*) '      NetCDF chunksize (bytes)        nn_chunksz      = ', nn_chunksz 
    345          WRITE(numout,*) '      IS coupling at the restart step ln_iscpl        = ', ln_iscpl 
    346337         IF( TRIM(Agrif_CFixed()) == '0' ) THEN 
    347338            WRITE(numout,*) '      READ restart for a single file using XIOS ln_xios_read =', ln_xios_read 
     
    417408         WRITE(numout,*) '      linear free surface (=T)                ln_linssh   = ', ln_linssh 
    418409         WRITE(numout,*) '      create mesh/mask file                   ln_meshmask = ', ln_meshmask 
    419          WRITE(numout,*) '      treshold to open the isf cavity         rn_isfhmin  = ', rn_isfhmin, ' [m]' 
    420410         WRITE(numout,*) '      ocean time step                         rn_rdt      = ', rn_rdt 
    421411         WRITE(numout,*) '      asselin time filter parameter           rn_atfp     = ', rn_atfp 
  • NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DOM/domvvl.F90

    r11536 r12166  
    3636 
    3737   PUBLIC  dom_vvl_init       ! called by domain.F90 
     38   PUBLIC  dom_vvl_zgr        ! called by isfcpl.F90 
    3839   PUBLIC  dom_vvl_sf_nxt     ! called by step.F90 
    3940   PUBLIC  dom_vvl_sf_swp     ! called by step.F90 
     
    115116      !! Reference  : Leclair, M., and G. Madec, 2011, Ocean Modelling. 
    116117      !!---------------------------------------------------------------------- 
     118      ! 
     119      IF(lwp) WRITE(numout,*) 
     120      IF(lwp) WRITE(numout,*) 'dom_vvl_init : Variable volume activated' 
     121      IF(lwp) WRITE(numout,*) '~~~~~~~~~~~~' 
     122      ! 
     123      CALL dom_vvl_ctl     ! choose vertical coordinate (z_star, z_tilde or layer) 
     124      ! 
     125      !                    ! Allocate module arrays 
     126      IF( dom_vvl_alloc() /= 0 )   CALL ctl_stop( 'STOP', 'dom_vvl_init : unable to allocate arrays' ) 
     127      ! 
     128      !                    ! Read or initialize e3t_(b/n), tilde_e3t_(b/n) and hdiv_lf 
     129      CALL dom_vvl_rst( nit000, 'READ' ) 
     130      e3t_a(:,:,jpk) = e3t_0(:,:,jpk)  ! last level always inside the sea floor set one for all 
     131      ! 
     132      CALL dom_vvl_zgr() ! interpolation scale factor, depth and water column 
     133      ! 
     134   END SUBROUTINE dom_vvl_init 
     135   ! 
     136   SUBROUTINE dom_vvl_zgr() 
     137      !!---------------------------------------------------------------------- 
     138      !!                ***  ROUTINE dom_vvl_init  *** 
     139      !!                    
     140      !! ** Purpose :  Interpolation of all scale factors,  
     141      !!               depths and water column heights 
     142      !! 
     143      !! ** Method  :  - interpolate scale factors 
     144      !! 
     145      !! ** Action  : - e3t_(n/b) and tilde_e3t_(n/b) 
     146      !!              - Regrid: e3(u/v)_n 
     147      !!                        e3(u/v)_b        
     148      !!                        e3w_n            
     149      !!                        e3(u/v)w_b       
     150      !!                        e3(u/v)w_n       
     151      !!                        gdept_n, gdepw_n and gde3w_n 
     152      !!              - h(t/u/v)_0 
     153      !!              - frq_rst_e3t and frq_rst_hdv 
     154      !! 
     155      !! Reference  : Leclair, M., and G. Madec, 2011, Ocean Modelling. 
     156      !!---------------------------------------------------------------------- 
    117157      INTEGER ::   ji, jj, jk 
    118158      INTEGER ::   ii0, ii1, ij0, ij1 
    119159      REAL(wp)::   zcoef 
    120160      !!---------------------------------------------------------------------- 
    121       ! 
    122       IF(lwp) WRITE(numout,*) 
    123       IF(lwp) WRITE(numout,*) 'dom_vvl_init : Variable volume activated' 
    124       IF(lwp) WRITE(numout,*) '~~~~~~~~~~~~' 
    125       ! 
    126       CALL dom_vvl_ctl     ! choose vertical coordinate (z_star, z_tilde or layer) 
    127       ! 
    128       !                    ! Allocate module arrays 
    129       IF( dom_vvl_alloc() /= 0 )   CALL ctl_stop( 'STOP', 'dom_vvl_init : unable to allocate arrays' ) 
    130       ! 
    131       !                    ! Read or initialize e3t_(b/n), tilde_e3t_(b/n) and hdiv_lf 
    132       CALL dom_vvl_rst( nit000, 'READ' ) 
    133       e3t_a(:,:,jpk) = e3t_0(:,:,jpk)  ! last level always inside the sea floor set one for all 
    134161      ! 
    135162      !                    !== Set of all other vertical scale factors  ==!  (now and before) 
     
    263290      ENDIF 
    264291      ! 
    265    END SUBROUTINE dom_vvl_init 
    266  
     292   END SUBROUTINE dom_vvl_zgr 
    267293 
    268294   SUBROUTINE dom_vvl_sf_nxt( kt, kcall )  
     
    813839            id4 = iom_varid( numror, 'tilde_e3t_n', ldstop = .FALSE. ) 
    814840            id5 = iom_varid( numror, 'hdiv_lf', ldstop = .FALSE. ) 
     841            ! 
    815842            !                             ! --------- ! 
    816843            !                             ! all cases ! 
    817844            !                             ! --------- ! 
     845            ! 
    818846            IF( MIN( id1, id2 ) > 0 ) THEN       ! all required arrays exist 
    819847               CALL iom_get( numror, jpdom_autoglo, 'e3t_b', e3t_b(:,:,:), ldxios = lrxios ) 
     
    10331061      ! 
    10341062      IF( ioptio /= 1 )   CALL ctl_stop( 'Choose ONE vertical coordinate in namelist nam_vvl' ) 
    1035       IF( .NOT. ln_vvl_zstar .AND. ln_isf ) CALL ctl_stop( 'Only vvl_zstar has been tested with ice shelf cavity' ) 
    10361063      ! 
    10371064      IF(lwp) THEN                   ! Print the choice 
  • NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DOM/domwri.F90

    r11532 r12166  
    1616   !!   dom_stiff      : diagnose maximum grid stiffness/hydrostatic consistency (s-coordinate) 
    1717   !!---------------------------------------------------------------------- 
     18   ! 
    1819   USE dom_oce         ! ocean space and time domain 
    1920   USE phycst ,   ONLY :   rsmall 
     
    155156       
    156157      ! note that mbkt is set to 1 over land ==> use surface tmask 
    157       zprt(:,:) = ssmask(:,:) * REAL( mbkt(:,:) , wp ) 
     158      zprt(:,:) = REAL( mbkt(:,:) , wp ) 
    158159      CALL iom_rstput( 0, 0, inum, 'mbathy', zprt, ktype = jp_i4 )     !    ! nb of ocean T-points 
    159       zprt(:,:) = ssmask(:,:) * REAL( mikt(:,:) , wp ) 
     160      zprt(:,:) = REAL( mikt(:,:) , wp ) 
    160161      CALL iom_rstput( 0, 0, inum, 'misf', zprt, ktype = jp_i4 )       !    ! nb of ocean T-points 
    161       zprt(:,:) = ssmask(:,:) * REAL( risfdep(:,:) , wp ) 
    162       CALL iom_rstput( 0, 0, inum, 'isfdraft', zprt, ktype = jp_r8 )   !    ! nb of ocean T-points 
    163162      !                                                         ! vertical mesh 
    164163      CALL iom_rstput( 0, 0, inum, 'e3t_1d', e3t_1d, ktype = jp_r8  )    !    ! scale factors 
  • NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DOM/domzgr.F90

    r10425 r12166  
    7171      INTEGER, DIMENSION(:,:), INTENT(out) ::   k_top, k_bot   ! ocean first and last level indices 
    7272      ! 
    73       INTEGER  ::   jk                  ! dummy loop index 
     73      INTEGER  ::   ji,jj,jk            ! dummy loop index 
     74      INTEGER  ::   ikt, ikb            ! top/bot index 
    7475      INTEGER  ::   ioptio, ibat, ios   ! local integer 
    7576      REAL(wp) ::   zrefdep             ! depth of the reference level (~10m) 
     
    138139      !                                ! top/bottom ocean level indices for t-, u- and v-points (f-point also for top) 
    139140      CALL zgr_top_bot( k_top, k_bot )      ! with a minimum value set to 1 
    140        
    141  
     141      ! 
     142      !                                ! ice shelf draft and bathymetry 
     143      DO jj = 1,jpj 
     144         DO ji = 1,jpi 
     145            ikt = mikt(ji,jj) 
     146            ikb = mbkt(ji,jj) 
     147            bathy  (ji,jj) = gdepw_0(ji,jj,ikb+1) 
     148            risfdep(ji,jj) = gdepw_0(ji,jj,ikt  ) 
     149         END DO 
     150      END DO 
     151      ! 
    142152      !                                ! deepest/shallowest W level Above/Below ~10m 
    143153!!gm BUG in s-coordinate this does not work! 
  • NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DOM/istate.F90

    r10499 r12166  
    2828   USE dtauvd         ! data: U & V current             (dta_uvd routine) 
    2929   USE domvvl          ! varying vertical mesh 
    30    USE iscplrst        ! ice sheet coupling 
    3130   USE wet_dry         ! wetting and drying (needed for wad_istate) 
    3231   USE usrdef_istate   ! User defined initial state 
     
    8685         !                                    ! ------------------- 
    8786         CALL rst_read                        ! Read the restart file 
    88          IF (ln_iscpl)       CALL iscpl_stp   ! extrapolate restart to wet and dry 
    8987         CALL day_init                        ! model calendar (using both namelist and restart infos) 
    9088         ! 
  • NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DYN/divhor.F90

    r10425 r12166  
    2020   USE oce             ! ocean dynamics and tracers 
    2121   USE dom_oce         ! ocean space and time domain 
    22    USE sbc_oce, ONLY : ln_rnf, ln_isf ! surface boundary condition: ocean 
    23    USE sbcrnf          ! river runoff  
    24    USE sbcisf          ! ice shelf 
    25    USE iscplhsb        ! ice sheet / ocean coupling 
    26    USE iscplini        ! ice sheet / ocean coupling 
     22   USE sbc_oce, ONLY : ln_rnf      ! river runoff 
     23   USE sbcrnf , ONLY : sbc_rnf_div ! river runoff  
     24   USE isf_oce, ONLY : ln_isf      ! ice shelf 
     25   USE isfhdiv, ONLY : isf_hdiv    ! ice shelf 
    2726#if defined key_asminc    
    2827   USE asminc          ! Assimilation increment 
     
    6463      INTEGER  ::   ji, jj, jk    ! dummy loop indices 
    6564      REAL(wp) ::   zraur, zdep   ! local scalars 
     65      REAL(wp), DIMENSION(jpi,jpj) :: ztmp 
    6666      !!---------------------------------------------------------------------- 
    6767      ! 
     
    8585         END DO   
    8686      END DO 
     87      ! 
    8788#if defined key_agrif 
    8889      IF( .NOT. Agrif_Root() ) THEN 
     
    9495#endif 
    9596      ! 
    96       IF( ln_rnf )   CALL sbc_rnf_div( hdivn )              !==  runoffs    ==!   (update hdivn field) 
     97      IF( ln_rnf )                      CALL sbc_rnf_div( hdivn )       !==  runoffs           ==!   (update hdivn field) 
    9798      ! 
    9899#if defined key_asminc  
     
    100101      !  
    101102#endif 
    102       IF( ln_isf )   CALL sbc_isf_div( hdivn )      !==  ice shelf  ==!   (update hdivn field) 
    103103      ! 
    104       IF( ln_iscpl .AND. ln_hsb )   CALL iscpl_div( hdivn ) !==  ice sheet  ==!   (update hdivn field) 
     104      IF( ln_isf )                      CALL isf_hdiv( kt, hdivn )      !==  ice shelf         ==!   (update hdivn field) 
    105105      ! 
    106106      CALL lbc_lnk( 'divhor', hdivn, 'T', 1. )   !   (no sign change) 
  • NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DYN/dynhpg.F90

    r11536 r12166  
    3131   !!---------------------------------------------------------------------- 
    3232   USE oce             ! ocean dynamics and tracers 
     33   USE isf_oce , ONLY : risfload  ! ice shelf  (risfload variable) 
     34   USE isfload , ONLY : isf_load  ! ice shelf  (isf_load routine ) 
    3335   USE sbc_oce         ! surface variable (only for the flag with ice shelf) 
    3436   USE dom_oce         ! ocean space and time domain 
     
    213215      ENDIF 
    214216      !                           
    215       IF ( .NOT. ln_isfcav ) THEN     !--- no ice shelf load 
    216          riceload(:,:) = 0._wp 
    217          ! 
    218       ELSE                            !--- set an ice shelf load 
    219          ! 
    220          IF(lwp) WRITE(numout,*) 
    221          IF(lwp) WRITE(numout,*) '   ice shelf case: set the ice-shelf load' 
    222          ALLOCATE( zts_top(jpi,jpj,jpts) , zrhd(jpi,jpj,jpk) , zrhdtop_isf(jpi,jpj) , ziceload(jpi,jpj) )  
    223          ! 
    224          znad = 1._wp                     !- To use density and not density anomaly 
    225          ! 
    226          !                                !- assume water displaced by the ice shelf is at T=-1.9 and S=34.4 (rude) 
    227          zts_top(:,:,jp_tem) = -1.9_wp   ;   zts_top(:,:,jp_sal) = 34.4_wp 
    228          ! 
    229          DO jk = 1, jpk                   !- compute density of the water displaced by the ice shelf  
    230             CALL eos( zts_top(:,:,:), gdept_n(:,:,jk), zrhd(:,:,jk) ) 
    231          END DO 
    232          ! 
    233          !                                !- compute rhd at the ice/oce interface (ice shelf side) 
    234          CALL eos( zts_top , risfdep, zrhdtop_isf ) 
    235          ! 
    236          !                                !- Surface value + ice shelf gradient 
    237          ziceload = 0._wp                       ! compute pressure due to ice shelf load  
    238          DO jj = 1, jpj                         ! (used to compute hpgi/j for all the level from 1 to miku/v) 
    239             DO ji = 1, jpi                      ! divided by 2 later 
    240                ikt = mikt(ji,jj) 
    241                ziceload(ji,jj) = ziceload(ji,jj) + (znad + zrhd(ji,jj,1) ) * e3w_n(ji,jj,1) * (1._wp - tmask(ji,jj,1)) 
    242                DO jk = 2, ikt-1 
    243                   ziceload(ji,jj) = ziceload(ji,jj) + (2._wp * znad + zrhd(ji,jj,jk-1) + zrhd(ji,jj,jk)) * e3w_n(ji,jj,jk) & 
    244                      &                              * (1._wp - tmask(ji,jj,jk)) 
    245                END DO 
    246                IF (ikt  >=  2) ziceload(ji,jj) = ziceload(ji,jj) + (2._wp * znad + zrhdtop_isf(ji,jj) + zrhd(ji,jj,ikt-1)) & 
    247                   &                                              * ( risfdep(ji,jj) - gdept_n(ji,jj,ikt-1) ) 
    248             END DO 
    249          END DO 
    250          riceload(:,:) = ziceload(:,:)  ! need to be saved for diaar5 
    251          ! 
    252          DEALLOCATE( zts_top , zrhd , zrhdtop_isf , ziceload )  
    253       ENDIF 
    254       ! 
    255217   END SUBROUTINE dyn_hpg_init 
    256  
    257218 
    258219   SUBROUTINE hpg_zco( kt ) 
     
    572533      !!         ua = ua - 1/e1u * zhpi 
    573534      !!         va = va - 1/e2v * zhpj 
    574       !!      iceload is added and partial cell case are added to the top and bottom 
     535      !!      iceload is added 
    575536      !!       
    576537      !! ** Action : - Update (ua,va) with the now hydrastatic pressure trend 
     
    617578               &                                  - 0.5_wp * e3w_n(ji,jj,ikt)                                         & 
    618579               &                                    * ( 2._wp * znad + rhd(ji,jj,ikt) + zrhdtop_oce(ji,jj) )          & 
    619                &                                  + ( riceload(ji+1,jj) - riceload(ji,jj))                            )  
     580               &                                  + ( risfload(ji+1,jj) - risfload(ji,jj))                            )  
    620581            zhpj(ji,jj,1) = zcoef0 / e2v(ji,jj) * ( 0.5_wp * e3w_n(ji,jj+1,iktp1j)                                    & 
    621582               &                                    * ( 2._wp * znad + rhd(ji,jj+1,iktp1j) + zrhdtop_oce(ji,jj+1) )   & 
    622583               &                                  - 0.5_wp * e3w_n(ji,jj,ikt)                                         &  
    623584               &                                    * ( 2._wp * znad + rhd(ji,jj,ikt) + zrhdtop_oce(ji,jj) )          & 
    624                &                                  + ( riceload(ji,jj+1) - riceload(ji,jj))                            )  
     585               &                                  + ( risfload(ji,jj+1) - risfload(ji,jj))                            )  
    625586            ! s-coordinate pressure gradient correction (=0 if z coordinate) 
    626587            zuap = -zcoef0 * ( rhd    (ji+1,jj,1) + rhd    (ji,jj,1) + 2._wp * znad )   & 
  • NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DYN/dynnxt.F90

    r12026 r12166  
    2929   USE sbc_oce        ! Surface boundary condition: ocean fields 
    3030   USE sbcrnf         ! river runoffs 
    31    USE sbcisf         ! ice shelf 
    3231   USE phycst         ! physical constants 
    3332   USE dynadv         ! dynamics: vector invariant versus flux form 
     
    3534   USE domvvl         ! variable volume 
    3635   USE bdy_oce   , ONLY: ln_bdy 
     36   USE isf_oce   , ONLY: ln_isf     ! ice shelf 
    3737   USE bdydta         ! ocean open boundary conditions 
    3838   USE bdydyn         ! ocean open boundary conditions 
     
    4141   USE trddyn         ! trend manager: dynamics 
    4242   USE trdken         ! trend manager: kinetic energy 
     43   USE isfdynnxt , ONLY: isf_dynnxt ! ice shelf volume filter correction subroutine  
    4344   ! 
    4445   USE in_out_manager ! I/O manager 
     
    243244               ENDIF 
    244245            END IF 
    245  
    246             IF ( ln_isf ) THEN   ! if ice shelf melting 
    247                DO jk = 1, jpkm1 ! Deal with isf separetely, as can be through depth too 
    248                   DO jj = 1, jpj 
    249                      DO ji = 1, jpi 
    250                         IF( misfkt(ji,jj) <=jk .and. jk < misfkb(ji,jj)  ) THEN 
    251                            e3t_b(ji,jj,jk) = e3t_b(ji,jj,jk) - zcoef * ( fwfisf_b(ji,jj) - fwfisf(ji,jj) ) & 
    252                                 &          * ( e3t_n(ji,jj,jk) * r1_hisf_tbl(ji,jj) ) * tmask(ji,jj,jk) 
    253                         ELSEIF ( jk==misfkb(ji,jj) ) THEN 
    254                            e3t_b(ji,jj,jk) = e3t_b(ji,jj,jk) - zcoef * ( fwfisf_b(ji,jj) - fwfisf(ji,jj) ) & 
    255                                 &          * ( e3t_n(ji,jj,jk) * r1_hisf_tbl(ji,jj) ) * ralpha(ji,jj) * tmask(ji,jj,jk) 
    256                         ENDIF 
    257                      END DO 
    258                   END DO 
    259                END DO 
    260             END IF 
     246            ! 
     247            ! ice shelf melting (deal separatly as it can be in depth) 
     248            ! PM: we could probably define a generic subroutine to do the in depth correction 
     249            !     to manage rnf, isf and possibly in the futur icb, tide water glacier (...) 
     250            !     ...(kt, coef, ktop, kbot, hz, fwf_b, fwf) 
     251            IF ( ln_isf ) CALL isf_dynnxt( kt, atfp * rdt ) 
    261252            ! 
    262253            IF( ln_dynadv_vec ) THEN      ! Asselin filter applied on velocity 
  • NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DYN/dynspg_ts.F90

    r12072 r12166  
    3131   USE dom_oce         ! ocean space and time domain 
    3232   USE sbc_oce         ! surface boundary condition: ocean 
     33   USE isf_oce         ! ice shelf variable (fwfisf) 
    3334   USE zdf_oce         ! vertical physics: variables 
    3435   USE zdfdrg          ! vertical physics: top/bottom drag coef. 
    35    USE sbcisf          ! ice shelf variable (fwfisf) 
    3636   USE sbcapr          ! surface boundary condition: atmospheric pressure 
    3737   USE dynadv    , ONLY: ln_dynadv_vec 
     
    335335      !                                   ! ---------------------------------------------------  ! 
    336336      IF (ln_bt_fw) THEN                          ! FORWARD integration: use kt+1/2 fluxes (NOW+1/2) 
    337          zssh_frc(:,:) = r1_rau0 * ( emp(:,:)             - rnf(:,:)              + fwfisf(:,:)                  ) 
     337         zssh_frc(:,:) = r1_rau0 * ( emp(:,:) - rnf(:,:) + fwfisf_cav(:,:) + fwfisf_par(:,:) ) 
    338338      ELSE                                        ! CENTRED integration: use kt-1/2 + kt+1/2 fluxes (NOW) 
    339339         zztmp = r1_rau0 * r1_2 
    340          zssh_frc(:,:) = zztmp * (  emp(:,:) + emp_b(:,:) - rnf(:,:) - rnf_b(:,:) + fwfisf(:,:) + fwfisf_b(:,:)  ) 
     340         zssh_frc(:,:) = zztmp * (  emp(:,:)        + emp_b(:,:)                    & 
     341                &                 - rnf(:,:)        - rnf_b(:,:)                    & 
     342                &                 + fwfisf_cav(:,:) + fwfisf_cav_b(:,:)             & 
     343                &                 + fwfisf_par(:,:) + fwfisf_par_b(:,:)             ) 
    341344      ENDIF 
    342345      !                                   !=  Add Stokes drift divergence  =!   (if exist) 
     
    344347         zssh_frc(:,:) = zssh_frc(:,:) + div_sd(:,:) 
    345348      ENDIF 
     349      ! 
     350      !                                         ! ice sheet coupling 
     351      IF ( ln_isf .AND. ln_isfcpl ) THEN 
     352         ! 
     353         ! ice sheet coupling 
     354         IF( ln_rstart .AND. kt == nit000 ) THEN 
     355            zssh_frc(:,:) = zssh_frc(:,:) + risfcpl_ssh(:,:) 
     356         END IF 
     357         ! 
     358         ! conservation option 
     359         IF( ln_isfcpl_cons ) THEN 
     360            zssh_frc(:,:) = zssh_frc(:,:) + risfcpl_cons_ssh(:,:) 
     361         END IF 
     362         ! 
     363      END IF 
    346364      ! 
    347365#if defined key_asminc 
  • NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DYN/dynzdf.F90

    r11281 r12166  
    149149                  ze3va =  ( 1._wp - r_vvl ) * e3v_n(ji,jj,ikv) + r_vvl * e3v_a(ji,jj,ikv) 
    150150                  ua(ji,jj,iku) = ua(ji,jj,iku) + r2dt * 0.5*( rCdU_top(ji+1,jj)+rCdU_top(ji,jj) ) * ua_b(ji,jj) / ze3ua 
    151                   va(ji,jj,ikv) = va(ji,jj,ikv) + r2dt * 0.5*( rCdU_top(ji+1,jj)+rCdU_top(ji,jj) ) * va_b(ji,jj) / ze3va 
     151                  va(ji,jj,ikv) = va(ji,jj,ikv) + r2dt * 0.5*( rCdU_top(ji,jj+1)+rCdU_top(ji,jj) ) * va_b(ji,jj) / ze3va 
    152152               END DO 
    153153            END DO 
     
    428428                  ikv = mikv(ji,jj)       ! (first wet ocean u- and v-points) 
    429429                  ze3va =  ( 1._wp - r_vvl ) * e3v_n(ji,jj,ikv) + r_vvl * e3v_a(ji,jj,ikv)   ! after scale factor at T-point 
    430                   zwd(ji,jj,iku) = zwd(ji,jj,iku) - r2dt * 0.5*( rCdU_top(ji+1,jj)+rCdU_top(ji,jj) ) / ze3va 
     430                  zwd(ji,jj,ikv) = zwd(ji,jj,ikv) - r2dt * 0.5*( rCdU_top(ji,jj+1)+rCdU_top(ji,jj) ) / ze3va 
    431431               END DO 
    432432            END DO 
  • NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DYN/sshwzv.F90

    r11414 r12166  
    1818   !!---------------------------------------------------------------------- 
    1919   USE oce            ! ocean dynamics and tracers variables 
     20   USE isf_oce        ! ice shelf 
    2021   USE dom_oce        ! ocean space and time domain variables  
    2122   USE sbc_oce        ! surface boundary condition: ocean 
     
    255256         IF( .NOT.ln_linssh ) THEN                          ! before <-- with forcing removed 
    256257            zcoef = atfp * rdt * r1_rau0 
    257             sshb(:,:) = sshb(:,:) - zcoef * (     emp_b(:,:) - emp   (:,:)   & 
    258                &                             -    rnf_b(:,:) + rnf   (:,:)   & 
    259                &                             + fwfisf_b(:,:) - fwfisf(:,:)   ) * ssmask(:,:) 
     258            sshb(:,:) = sshb(:,:) - zcoef * (  emp_b(:,:)        - emp   (:,:)       & 
     259               &                             - rnf_b(:,:)        + rnf   (:,:)       & 
     260               &                             + fwfisf_cav_b(:,:) - fwfisf_cav(:,:)   & 
     261               &                             + fwfisf_par_b(:,:) - fwfisf_par(:,:)   ) * ssmask(:,:) 
     262 
     263            ! ice sheet coupling 
     264            IF ( ln_isf .AND. ln_isfcpl .AND. kt == nit000+1) sshb(:,:) = sshb(:,:) - atfp * rdt * ( risfcpl_ssh(:,:) - 0.0 ) * ssmask(:,:) 
     265 
    260266         ENDIF 
     267 
    261268         sshn(:,:) = ssha(:,:)                              ! now <-- after 
    262269      ENDIF 
  • NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/IOM/iom.F90

    r12154 r12166  
    401401        CALL iom_set_rstw_var_active('sshn') 
    402402        CALL iom_set_rstw_var_active('rhop') 
    403      ! extra variable needed for the ice sheet coupling 
    404         IF ( ln_iscpl ) THEN 
    405              CALL iom_set_rstw_var_active('tmask') 
    406              CALL iom_set_rstw_var_active('umask') 
    407              CALL iom_set_rstw_var_active('vmask') 
    408              CALL iom_set_rstw_var_active('smask') 
    409              CALL iom_set_rstw_var_active('e3t_n') 
    410              CALL iom_set_rstw_var_active('e3u_n') 
    411              CALL iom_set_rstw_var_active('e3v_n') 
    412              CALL iom_set_rstw_var_active('gdepw_n') 
    413         END IF 
    414403      ENDIF 
    415404      IF(ln_diurnal) CALL iom_set_rstw_var_active('Dsst') 
  • NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/IOM/restart.F90

    r11536 r12166  
    161161                     CALL iom_rstput( kt, nitrst, numrow, 'sshn'   , sshn, ldxios = lwxios      ) 
    162162                     CALL iom_rstput( kt, nitrst, numrow, 'rhop'   , rhop, ldxios = lwxios      ) 
    163                   ! extra variable needed for the ice sheet coupling 
    164                   IF ( ln_iscpl ) THEN  
    165                      CALL iom_rstput( kt, nitrst, numrow, 'tmask'  , tmask, ldxios = lwxios ) ! need to extrapolate T/S 
    166                      CALL iom_rstput( kt, nitrst, numrow, 'umask'  , umask, ldxios = lwxios ) ! need to correct barotropic velocity 
    167                      CALL iom_rstput( kt, nitrst, numrow, 'vmask'  , vmask, ldxios = lwxios ) ! need to correct barotropic velocity 
    168                      CALL iom_rstput( kt, nitrst, numrow, 'smask'  , ssmask, ldxios = lwxios) ! need to correct barotropic velocity 
    169                      CALL iom_rstput( kt, nitrst, numrow, 'e3t_n', e3t_n(:,:,:), ldxios = lwxios )   ! need to compute temperature correction 
    170                      CALL iom_rstput( kt, nitrst, numrow, 'e3u_n', e3u_n(:,:,:), ldxios = lwxios )   ! need to compute bt conservation 
    171                      CALL iom_rstput( kt, nitrst, numrow, 'e3v_n', e3v_n(:,:,:), ldxios = lwxios )   ! need to compute bt conservation 
    172                      CALL iom_rstput( kt, nitrst, numrow, 'gdepw_n', gdepw_n(:,:,:), ldxios = lwxios ) ! need to compute extrapolation if vvl 
    173                   END IF 
    174163      ENDIF 
    175164       
  • NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/LDF/ldfslp.F90

    r10425 r12166  
    2121   !!---------------------------------------------------------------------- 
    2222   USE oce            ! ocean dynamics and tracers 
     23   USE isf_oce        ! ice shelf 
    2324   USE dom_oce        ! ocean space and time domain 
    2425!   USE ldfdyn         ! lateral diffusion: eddy viscosity coef. 
  • NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/LDF/ldftra.F90

    r12109 r12166  
    662662                  ! eddies using the isopycnal slopes calculated in ldfslp.F :  
    663663                  ! T^-1 = sqrt(m_jpk(N^2*(r1^2+r2^2)*e3w)) 
    664                   ze3w = e3w_n(ji,jj,jk) * tmask(ji,jj,jk) 
     664                  ze3w = e3w_n(ji,jj,jk) * wmask(ji,jj,jk) 
    665665                  zah(ji,jj) = zah(ji,jj) + zn2 * wslp2(ji,jj,jk) * ze3w 
    666666                  zhw(ji,jj) = zhw(ji,jj) + ze3w 
     
    680680                  ! eddies using the isopycnal slopes calculated in ldfslp.F :  
    681681                  ! T^-1 = sqrt(m_jpk(N^2*(r1^2+r2^2)*e3w)) 
    682                   ze3w = e3w_n(ji,jj,jk) * tmask(ji,jj,jk) 
     682                  ze3w = e3w_n(ji,jj,jk) * wmask(ji,jj,jk) 
    683683                  zah(ji,jj) = zah(ji,jj) + zn2 * ( wslpi(ji,jj,jk) * wslpi(ji,jj,jk)   & 
    684684                     &                            + wslpj(ji,jj,jk) * wslpj(ji,jj,jk) ) * ze3w 
  • NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/SBC/sbc_oce.F90

    r12154 r12166  
    4545   LOGICAL , PUBLIC ::   ln_dm2dc       !: Daily mean to Diurnal Cycle short wave (qsr) 
    4646   LOGICAL , PUBLIC ::   ln_rnf         !: runoffs / runoff mouths 
    47    LOGICAL , PUBLIC ::   ln_isf         !: ice shelf melting 
    4847   LOGICAL , PUBLIC ::   ln_ssr         !: Sea Surface restoring on SST and/or SSS       
    4948   LOGICAL , PUBLIC ::   ln_apr_dyn     !: Atmospheric pressure forcing used on dynamics (ocean & ice) 
     
    125124   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   emp_tot           !: total E-P over ocean and ice                 [Kg/m2/s] 
    126125   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   fmmflx            !: freshwater budget: freezing/melting          [Kg/m2/s] 
    127    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   rnf    , rnf_b    !: river runoff        [Kg/m2/s]   
    128    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   fwfisf , fwfisf_b !: ice shelf melting   [Kg/m2/s]   
    129    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   fwficb , fwficb_b !: iceberg melting [Kg/m2/s]   
    130  
     126   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   rnf    , rnf_b    !: river runoff                                 [Kg/m2/s]   
     127   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   fwficb , fwficb_b !: iceberg melting                              [Kg/m2/s]   
    131128   !! 
    132129   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::  sbc_tsc, sbc_tsc_b  !: sbc content trend                      [K.m/s] jpi,jpj,jpts 
     
    185182         &      sfx    (jpi,jpj) , sfx_b(jpi,jpj) , emp_tot(jpi,jpj), fmmflx(jpi,jpj), STAT=ierr(2) ) 
    186183         ! 
    187       ALLOCATE( fwfisf  (jpi,jpj), rnf  (jpi,jpj) , sbc_tsc  (jpi,jpj,jpts) , qsr_hc  (jpi,jpj,jpk) ,  & 
    188          &      fwfisf_b(jpi,jpj), rnf_b(jpi,jpj) , sbc_tsc_b(jpi,jpj,jpts) , qsr_hc_b(jpi,jpj,jpk) ,  & 
     184      ALLOCATE( rnf  (jpi,jpj) , sbc_tsc  (jpi,jpj,jpts) , qsr_hc  (jpi,jpj,jpk) ,  & 
     185         &      rnf_b(jpi,jpj) , sbc_tsc_b(jpi,jpj,jpts) , qsr_hc_b(jpi,jpj,jpk) ,  & 
    189186         &      fwficb  (jpi,jpj), fwficb_b(jpi,jpj), STAT=ierr(3) ) 
    190187         ! 
  • NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/SBC/sbccpl.F90

    r12154 r12166  
    2727   USE sbcwave         ! surface boundary condition: waves 
    2828   USE phycst          ! physical constants 
     29   USE isf_oce , ONLY : l_isfoasis, fwfisf_oasis ! ice shelf boundary condition 
    2930#if defined key_si3 
    3031   USE ice            ! ice variables 
     
    3637   USE eosbn2         !  
    3738   USE sbcrnf  , ONLY : l_rnfcpl 
    38    USE sbcisf  , ONLY : l_isfcpl 
    3939#if defined key_cice 
    4040   USE ice_domain_size, only: ncat 
     
    474474      srcv(jpr_icb)%clname = 'OIceberg'   ;  IF( TRIM( sn_rcv_icb%cldes) == 'coupled' )   srcv(jpr_icb)%laction = .TRUE. 
    475475 
    476       IF( srcv(jpr_isf)%laction .AND. ln_isf ) THEN 
    477          l_isfcpl             = .TRUE.                      ! -> no need to read isf in sbcisf 
     476      IF( srcv(jpr_isf)%laction ) THEN 
     477         l_isfoasis = .TRUE.  ! -> isf fwf comes from oasis 
    478478         IF(lwp) WRITE(numout,*) 
    479479         IF(lwp) WRITE(numout,*) '   iceshelf received from oasis ' 
     480         CALL ctl_stop('STOP','not coded') 
    480481      ENDIF 
    481482      ! 
     
    14041405             rnf(:,:)    = rnf(:,:) + fwficb(:,:)   ! iceberg added to runfofs 
    14051406         ENDIF 
    1406          IF( srcv(jpr_isf)%laction )  fwfisf(:,:) = - frcv(jpr_isf)%z3(:,:,1)  ! fresh water flux from the isf (fwfisf <0 mean melting)   
     1407         ! 
     1408         ! ice shelf fwf 
     1409         IF( srcv(jpr_isf)%laction )  THEN 
     1410            fwfisf_oasis(:,:) = - frcv(jpr_isf)%z3(:,:,1)  ! fresh water flux from the isf (fwfisf <0 mean melting)   
     1411         END IF 
    14071412         
    14081413         IF( ln_mixcpl ) THEN   ;   emp(:,:) = emp(:,:) * xcplmask(:,:,0) + zemp(:,:) * zmsk(:,:) 
     
    17071712      ENDIF 
    17081713      IF( srcv(jpr_isf)%laction ) THEN   ! iceshelf (fwfisf <0 mean melting) 
    1709         fwfisf(:,:) = - frcv(jpr_isf)%z3(:,:,1)   
     1714        fwfisf_oasis(:,:) = - frcv(jpr_isf)%z3(:,:,1)   
    17101715      ENDIF 
    17111716 
     
    17461751      ENDIF 
    17471752      IF( srcv(jpr_isf)%laction ) THEN   ! iceshelf (fwfisf <0 mean melting) 
    1748         fwfisf(:,:) = - frcv(jpr_isf)%z3(:,:,1) 
     1753        fwfisf_oasis(:,:) = - frcv(jpr_isf)%z3(:,:,1) 
    17491754      ENDIF 
    17501755      ! 
  • NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/SBC/sbcfwb.F90

    r10570 r12166  
    1717   USE dom_oce        ! ocean space and time domain 
    1818   USE sbc_oce        ! surface ocean boundary condition 
     19   USE isf_oce , ONLY : fwfisf_cav, fwfisf_par                    ! ice shelf melting contribution 
    1920   USE sbc_ice , ONLY : snwice_mass, snwice_mass_b, snwice_fmass 
    2021   USE phycst         ! physical constants 
    2122   USE sbcrnf         ! ocean runoffs 
    22    USE sbcisf         ! ice shelf melting contribution 
    2323   USE sbcssr         ! Sea-Surface damping terms 
    2424   ! 
     
    104104         ! 
    105105         IF( MOD( kt-1, kn_fsbc ) == 0 ) THEN 
    106             y_fwfnow(1) = local_sum( e1e2t(:,:) * ( emp(:,:) - rnf(:,:) + fwfisf(:,:) - snwice_fmass(:,:) ) ) 
     106            y_fwfnow(1) = local_sum( e1e2t(:,:) * ( emp(:,:) - rnf(:,:) + fwfisf_cav(:,:) + fwfisf_par(:,:) - snwice_fmass(:,:) ) ) 
    107107            CALL mpp_delay_sum( 'sbcfwb', 'fwb', y_fwfnow(:), z_fwfprv(:), kt == nitend - nn_fsbc + 1 ) 
    108108            z_fwfprv(1) = z_fwfprv(1) / area 
     
    159159            ztmsk_neg(:,:) = tmask_i(:,:) - ztmsk_pos(:,:) 
    160160            !                                                  ! fwf global mean (excluding ocean to ice/snow exchanges)  
    161             z_fwf     = glob_sum( 'sbcfwb', e1e2t(:,:) * ( emp(:,:) - rnf(:,:) + fwfisf(:,:) - snwice_fmass(:,:) ) ) / area 
     161            z_fwf     = glob_sum( 'sbcfwb', e1e2t(:,:) * ( emp(:,:) - rnf(:,:) + fwfisf_cav(:,:) + fwfisf_par(:,:) - snwice_fmass(:,:) ) ) / area 
    162162            !             
    163163            IF( z_fwf < 0._wp ) THEN         ! spread out over >0 erp area to increase evaporation 
  • NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/SBC/sbcmod.F90

    r12154 r12166  
    3939#endif 
    4040   USE sbcice_cice    ! surface boundary condition: CICE sea-ice model 
    41    USE sbcisf         ! surface boundary condition: ice-shelf 
    4241   USE sbccpl         ! surface boundary condition: coupled formulation 
    4342   USE cpl_oasis3     ! OASIS routines for coupling 
     
    4544   USE sbcrnf         ! surface boundary condition: runoffs 
    4645   USE sbcapr         ! surface boundary condition: atmo pressure  
    47    USE sbcisf         ! surface boundary condition: ice shelf 
    4846   USE sbcfwb         ! surface boundary condition: freshwater budget 
    4947   USE icbstp         ! Icebergs 
     
    157155         WRITE(numout,*) '         Patm gradient added in ocean & ice Eqs.    ln_apr_dyn    = ', ln_apr_dyn 
    158156         WRITE(numout,*) '         runoff / runoff mouths                     ln_rnf        = ', ln_rnf 
    159          WRITE(numout,*) '         iceshelf formulation                       ln_isf        = ', ln_isf 
    160157         WRITE(numout,*) '         nb of iterations if land-sea-mask applied  nn_lsm        = ', nn_lsm 
    161158         WRITE(numout,*) '         surface wave                               ln_wave       = ', ln_wave 
     
    259256      ENDIF 
    260257      ! 
    261  
    262258      IF( nn_ice == 0 ) THEN        !* No sea-ice in the domain : ice fraction is always zero 
    263259         IF( nn_components /= jp_iam_opa )   fr_i(:,:) = 0._wp    ! except for OPA in SAS-OPA coupled case 
     
    354350      IF( ln_ssr      )   CALL sbc_ssr_init            ! Sea-Surface Restoring initialization 
    355351      ! 
    356       IF( ln_isf      )   CALL sbc_isf_init            ! Compute iceshelves 
    357       ! 
    358352                          CALL sbc_rnf_init            ! Runof initialization 
    359353      ! 
     
    422416            rnf_b    (:,:  ) = rnf    (:,:  ) 
    423417            rnf_tsc_b(:,:,:) = rnf_tsc(:,:,:) 
    424          ENDIF 
    425          IF( ln_isf )  THEN 
    426             fwfisf_b  (:,:  ) = fwfisf  (:,:  )                
    427             risf_tsc_b(:,:,:) = risf_tsc(:,:,:)               
    428418         ENDIF 
    429419        ! 
     
    479469         IF( .NOT. ln_passive_mode ) CALL lbc_lnk( 'sbcmod', emp, 'T', 1. ) ! ensure restartability with icebergs 
    480470      ENDIF 
    481  
    482       IF( ln_isf         )   CALL sbc_isf( kt )                   ! compute iceshelves 
    483471 
    484472      IF( ln_rnf         )   CALL sbc_rnf( kt )                   ! add runoffs to fresh water fluxes 
     
    585573      ! 
    586574      IF(ln_ctl) THEN         ! print mean trends (used for debugging) 
    587          CALL prt_ctl(tab2d_1=fr_i              , clinfo1=' fr_i    - : ', mask1=tmask ) 
    588          CALL prt_ctl(tab2d_1=(emp-rnf + fwfisf), clinfo1=' emp-rnf - : ', mask1=tmask ) 
    589          CALL prt_ctl(tab2d_1=(sfx-rnf + fwfisf), clinfo1=' sfx-rnf - : ', mask1=tmask ) 
     575         CALL prt_ctl(tab2d_1=fr_i             , clinfo1=' fr_i     - : ', mask1=tmask ) 
     576         CALL prt_ctl(tab2d_1=(emp-rnf)        , clinfo1=' emp-rnf - : ', mask1=tmask ) 
     577         CALL prt_ctl(tab2d_1=(sfx-rnf)        , clinfo1=' sfx-rnf - : ', mask1=tmask ) 
    590578         CALL prt_ctl(tab2d_1=qns              , clinfo1=' qns      - : ', mask1=tmask ) 
    591579         CALL prt_ctl(tab2d_1=qsr              , clinfo1=' qsr      - : ', mask1=tmask ) 
  • NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/SBC/sbcrnf.F90

    r12154 r12166  
    1919   USE phycst         ! physical constants 
    2020   USE sbc_oce        ! surface boundary condition variables 
    21    USE sbcisf         ! PM we could remove it I think 
    2221   USE eosbn2         ! Equation Of State 
    2322   USE closea         ! closed seas 
     
    141140               rnf_tsc(:,:,jp_tem) = sst_m(:,:) * rnf(:,:) * r1_rau0 
    142141            END WHERE 
    143             WHERE( sf_t_rnf(1)%fnow(:,:,1) == -222._wp )             ! where fwf comes from melting of ice shelves or iceberg 
    144                rnf_tsc(:,:,jp_tem) = ztfrz(:,:) * rnf(:,:) * r1_rau0 - rnf(:,:) * rLfusisf * r1_rau0_rcp 
    145             END WHERE 
    146142         ELSE                                                        ! use SST as runoffs temperature 
    147143            !CEOD River is fresh water so must at least be 0 unless we consider ice 
  • NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/SBC/sbcssm.F90

    r10425 r12166  
    6060      ! 
    6161      !                                        !* surface T-, U-, V- ocean level variables (T, S, depth, velocity) 
    62       DO jj = 1, jpj 
    63          DO ji = 1, jpi 
    64             zts(ji,jj,jp_tem) = tsn(ji,jj,mikt(ji,jj),jp_tem) 
    65             zts(ji,jj,jp_sal) = tsn(ji,jj,mikt(ji,jj),jp_sal) 
    66          END DO 
    67       END DO 
     62      zts(:,:,jp_tem) = tsn(:,:,1,jp_tem) 
     63      zts(:,:,jp_sal) = tsn(:,:,1,jp_sal) 
    6864      ! 
    6965      IF( nn_fsbc == 1 ) THEN                             !   Instantaneous surface fields        ! 
  • NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/TRA/tranxt.F90

    r10425 r12166  
    2828   USE sbc_oce         ! surface boundary condition: ocean 
    2929   USE sbcrnf          ! river runoffs 
    30    USE sbcisf          ! ice shelf melting 
     30   USE isf_oce         ! ice shelf melting 
    3131   USE zdf_oce         ! ocean vertical mixing 
    3232   USE domvvl          ! variable volume 
     
    312312                  ztc_f  = ztc_n  + atfp * ztc_d 
    313313                  ! 
    314                   IF( jk == mikt(ji,jj) ) THEN           ! first level  
    315                      ze3t_f = ze3t_f - zfact2 * ( (emp_b(ji,jj)    - emp(ji,jj)   )  & 
    316                             &                   + (fwfisf_b(ji,jj) - fwfisf(ji,jj))  ) 
     314                  IF( jk == 1 ) THEN           ! first level  
     315                     ze3t_f = ze3t_f - zfact2 * ( emp_b(ji,jj) - emp(ji,jj)   ) 
    317316                     ztc_f  = ztc_f  - zfact1 * ( psbc_tc(ji,jj,jn) - psbc_tc_b(ji,jj,jn) ) 
    318317                  ENDIF 
     318                  ! 
     319                  ! river runoff 
    319320                  IF( ln_rnf_depth ) THEN 
    320321                     ! Rivers are not just at the surface must go down to nk_rnf(ji,jj) 
    321                      IF( mikt(ji,jj) <=jk .and. jk <= nk_rnf(ji,jj)  ) THEN 
     322                     IF( jk <= nk_rnf(ji,jj)  ) THEN 
    322323                        ze3t_f = ze3t_f - zfact2 * ( - (rnf_b(ji,jj) - rnf(ji,jj)   )  ) & 
    323324                    &                            * ( e3t_n(ji,jj,jk) / h_rnf(ji,jj) )  
    324325                     ENDIF 
    325326                  ELSE 
    326                      IF( jk == mikt(ji,jj) ) THEN           ! first level  
     327                     IF( jk == 1 ) THEN           ! first level  
    327328                        ze3t_f = ze3t_f - zfact2 * ( - (rnf_b(ji,jj)    - rnf(ji,jj)   ) )  
    328329                     ENDIF 
    329330                  ENDIF 
    330  
     331                  ! 
     332                  IF( ll_rnf .AND. jk <= nk_rnf(ji,jj) )                                          & 
     333                     &     ztc_f  = ztc_f  - zfact1 * ( rnf_tsc(ji,jj,jn) - rnf_tsc_b(ji,jj,jn) ) &  
     334                     &                              * e3t_n(ji,jj,jk) / h_rnf(ji,jj) 
    331335                  ! 
    332336                  ! solar penetration (temperature only) 
    333337                  IF( ll_traqsr .AND. jn == jp_tem .AND. jk <= nksr )                            &  
    334338                     &     ztc_f  = ztc_f  - zfact1 * ( qsr_hc(ji,jj,jk) - qsr_hc_b(ji,jj,jk) )  
    335                      ! 
    336                   ! river runoff 
    337                   IF( ll_rnf .AND. jk <= nk_rnf(ji,jj) )                                          & 
    338                      &     ztc_f  = ztc_f  - zfact1 * ( rnf_tsc(ji,jj,jn) - rnf_tsc_b(ji,jj,jn) ) &  
    339                      &                              * e3t_n(ji,jj,jk) / h_rnf(ji,jj) 
    340                      ! 
     339                  ! 
    341340                  ! ice shelf 
    342341                  IF( ll_isf ) THEN 
    343                      ! level fully include in the Losch_2008 ice shelf boundary layer 
    344                      IF ( jk >= misfkt(ji,jj) .AND. jk < misfkb(ji,jj) )                          & 
    345                         ztc_f  = ztc_f  - zfact1 * ( risf_tsc(ji,jj,jn) - risf_tsc_b(ji,jj,jn) )  & 
    346                                &                 * e3t_n(ji,jj,jk) * r1_hisf_tbl (ji,jj) 
    347                      ! level partially include in Losch_2008 ice shelf boundary layer  
    348                      IF ( jk == misfkb(ji,jj) )                                                   & 
    349                         ztc_f  = ztc_f  - zfact1 * ( risf_tsc(ji,jj,jn) - risf_tsc_b(ji,jj,jn) )  & 
    350                                &                 * e3t_n(ji,jj,jk) * r1_hisf_tbl (ji,jj) * ralpha(ji,jj) 
     342                     ! 
     343                     ! melt in the cavity 
     344                     IF ( ln_isfcav_mlt ) THEN 
     345                        ! level fully include in the Losch_2008 ice shelf boundary layer 
     346                        IF ( jk >= misfkt_cav(ji,jj) .AND. jk < misfkb_cav(ji,jj) ) THEN 
     347                           ztc_f  = ztc_f  - zfact1 * ( risf_cav_tsc(ji,jj,jn) - risf_cav_tsc_b(ji,jj,jn) ) & 
     348                              &                     * e3t_n(ji,jj,jk) / rhisf_tbl_cav(ji,jj) 
     349                           ze3t_f = ze3t_f - zfact2 * ( fwfisf_cav_b(ji,jj) - fwfisf_cav(ji,jj) )           & 
     350                              &                     * e3t_n(ji,jj,jk) / rhisf_tbl_cav(ji,jj) 
     351                        END IF 
     352                        ! level partially include in Losch_2008 ice shelf boundary layer  
     353                        IF ( jk == misfkb_cav(ji,jj) ) THEN 
     354                           ztc_f  = ztc_f  - zfact1 * ( risf_cav_tsc(ji,jj,jn) - risf_cav_tsc_b(ji,jj,jn) )  & 
     355                                  &                 * e3t_n(ji,jj,jk) / rhisf_tbl_cav(ji,jj) * rfrac_tbl_cav(ji,jj) 
     356                           ze3t_f = ze3t_f - zfact2 * ( fwfisf_cav_b(ji,jj) - fwfisf_cav(ji,jj) )            & 
     357                              &                     * e3t_n(ji,jj,jk) / rhisf_tbl_cav(ji,jj) * rfrac_tbl_cav(ji,jj) 
     358                        END IF 
     359                     END IF 
     360                     ! 
     361                     ! parametrised melt (cavity closed) 
     362                     IF ( ln_isfpar_mlt ) THEN 
     363                        ! level fully include in the Losch_2008 ice shelf boundary layer 
     364                        IF ( jk >= misfkt_par(ji,jj) .AND. jk < misfkb_par(ji,jj) ) THEN 
     365                           ztc_f  = ztc_f  - zfact1 * ( risf_par_tsc(ji,jj,jn) - risf_par_tsc_b(ji,jj,jn) )  & 
     366                                  &                 * e3t_n(ji,jj,jk) / rhisf_tbl_par(ji,jj) 
     367                           ze3t_f = ze3t_f - zfact2 * ( fwfisf_par_b(ji,jj) - fwfisf_par(ji,jj) )            & 
     368                              &                     * e3t_n(ji,jj,jk) / rhisf_tbl_par(ji,jj) 
     369                        END IF 
     370                        ! level partially include in Losch_2008 ice shelf boundary layer  
     371                        IF ( jk == misfkb_par(ji,jj) ) THEN 
     372                           ztc_f  = ztc_f  - zfact1 * ( risf_par_tsc(ji,jj,jn) - risf_par_tsc_b(ji,jj,jn) )  & 
     373                                  &                 * e3t_n(ji,jj,jk) / rhisf_tbl_par(ji,jj) * rfrac_tbl_par(ji,jj) 
     374                           ze3t_f = ze3t_f - zfact2 * ( fwfisf_par_b(ji,jj) - fwfisf_par(ji,jj) )            & 
     375                              &                     * e3t_n(ji,jj,jk) / rhisf_tbl_par(ji,jj) * rfrac_tbl_par(ji,jj) 
     376                        END IF 
     377                     END IF 
     378                     ! 
     379                     ! ice sheet coupling correction 
     380                     IF ( ln_isfcpl ) THEN 
     381                        ! 
     382                        ! at kt = nit000,  risfcpl_vol_n = 0 and risfcpl_vol_b = risfcpl_vol so contribution nul 
     383                        IF ( ln_rstart .AND. kt == nit000+1 ) THEN 
     384                           ztc_f  = ztc_f  + zfact1 * risfcpl_tsc(ji,jj,jk,jn) * r1_e1e2t(ji,jj) 
     385                           ze3t_f = ze3t_f - zfact1 * risfcpl_vol(ji,jj,jk   ) * r1_e1e2t(ji,jj) 
     386                        END IF 
     387                        ! 
     388                     END IF 
     389                     ! 
    351390                  END IF 
    352391                  ! 
  • NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/TRA/trasbc.F90

    r10499 r12166  
    1010   !!             -   !  2010-09  (C. Ethe, G. Madec) Merge TRA-TRC 
    1111   !!            3.6  !  2014-11  (P. Mathiot) isf melting forcing  
     12   !!            4.1  !  2019-09  (P. Mathiot) isf moved in traisf 
    1213   !!---------------------------------------------------------------------- 
    1314 
     
    2223   USE sbcmod         ! ln_rnf   
    2324   USE sbcrnf         ! River runoff   
    24    USE sbcisf         ! Ice shelf    
    25    USE iscplini       ! Ice sheet coupling 
    2625   USE traqsr         ! solar radiation penetration 
    2726   USE trd_oce        ! trends: ocean variables 
     
    6261      !!      (1) Fext, external forcing (i.e. flux through the (air+ice)-sea interface);  
    6362      !!      (2) Fwe , tracer carried with the water that is exchanged with air+ice.  
    64       !!               The input forcing fields (emp, rnf, sfx, isf) contain Fext+Fwe, 
     63      !!               The input forcing fields (emp, rnf, sfx) contain Fext+Fwe, 
    6564      !!             they are simply added to the tracer trend (tsa). 
    6665      !!               In linear free surface case (ln_linssh=T), the volume of the 
     
    153152         IF( lwxios ) CALL iom_swap(      cxios_context          ) 
    154153      ENDIF 
    155       ! 
    156       !---------------------------------------- 
    157       !       Ice Shelf effects (ISF) 
    158       !     tbl treated as in Losh (2008) JGR 
    159       !---------------------------------------- 
    160       ! 
    161 !!gm BUG ?   Why no differences between non-linear and linear free surface ? 
    162 !!gm         probably taken into account in r1_hisf_tbl : to be verified 
    163       IF( ln_isf ) THEN 
    164          zfact = 0.5_wp 
    165          DO jj = 2, jpj 
    166             DO ji = fs_2, fs_jpim1 
    167                ! 
    168                ikt = misfkt(ji,jj) 
    169                ikb = misfkb(ji,jj) 
    170                ! 
    171                ! level fully include in the ice shelf boundary layer 
    172                ! sign - because fwf sign of evapo (rnf sign of precip) 
    173                DO jk = ikt, ikb - 1 
    174                ! compute trend 
    175                   tsa(ji,jj,jk,jp_tem) = tsa(ji,jj,jk,jp_tem)                                                & 
    176                      &           + zfact * ( risf_tsc_b(ji,jj,jp_tem) + risf_tsc(ji,jj,jp_tem) )             & 
    177                      &           * r1_hisf_tbl(ji,jj) 
    178                END DO 
    179     
    180                ! level partially include in ice shelf boundary layer  
    181                ! compute trend 
    182                tsa(ji,jj,ikb,jp_tem) = tsa(ji,jj,ikb,jp_tem)                                                 & 
    183                   &              + zfact * ( risf_tsc_b(ji,jj,jp_tem) + risf_tsc(ji,jj,jp_tem) )             & 
    184                   &              * r1_hisf_tbl(ji,jj) * ralpha(ji,jj) 
    185  
    186             END DO 
    187          END DO 
    188       END IF 
    189154      ! 
    190155      !---------------------------------------- 
     
    242207#endif 
    243208      ! 
    244       !---------------------------------------- 
    245       !        Ice Sheet coupling imbalance correction to have conservation 
    246       !---------------------------------------- 
    247       ! 
    248       IF( ln_iscpl .AND. ln_hsb) THEN         ! input of heat and salt due to river runoff  
    249          DO jk = 1,jpk 
    250             DO jj = 2, jpj  
    251                DO ji = fs_2, fs_jpim1 
    252                   zdep = 1._wp / e3t_n(ji,jj,jk)  
    253                   tsa(ji,jj,jk,jp_tem) = tsa(ji,jj,jk,jp_tem) - htsc_iscpl(ji,jj,jk,jp_tem) * zdep 
    254                   tsa(ji,jj,jk,jp_sal) = tsa(ji,jj,jk,jp_sal) - htsc_iscpl(ji,jj,jk,jp_sal) * zdep   
    255                END DO   
    256             END DO   
    257          END DO 
    258       ENDIF 
    259  
    260209      IF( l_trdtra )   THEN                      ! save the horizontal diffusive trends for further diagnostics 
    261210         ztrdt(:,:,:) = tsa(:,:,:,jp_tem) - ztrdt(:,:,:) 
  • NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/ZDF/zdfmxl.F90

    r10425 r12166  
    1212   !!---------------------------------------------------------------------- 
    1313   USE oce            ! ocean dynamics and tracers variables 
     14   USE isf_oce        ! ice shelf 
    1415   USE dom_oce        ! ocean space and time domain variables 
    1516   USE trc_oce  , ONLY: l_offline         ! ocean space and time domain variables 
  • NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/nemogcm.F90

    r12109 r12166  
    6161   USE diaharm        ! tidal harmonics diagnostics  (dia_harm_init routine) 
    6262   USE step           ! NEMO time-stepping                 (stp     routine) 
     63   USE isfstp         ! ice shelf                     (isf_stp_init routine) 
    6364   USE icbini         ! handle bergs, initialisation 
    6465   USE icbstp         ! handle bergs, calving, themodynamics and transport 
     
    431432         RETURN                                       ! end of initialization 
    432433      ENDIF 
     434      ! 
    433435       
    434436                           CALL  istate_init    ! ocean initial state (Dynamics and tracers) 
     
    471473      !                                      ! Icebergs 
    472474                           CALL icb_init( rdt, nit000)   ! initialise icebergs instance 
     475 
     476                                                ! ice shelf 
     477                           CALL isf_init 
    473478 
    474479      !                                      ! Misc. options 
  • NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/step.F90

    r12109 r12166  
    113113      IF( ln_apr_dyn )   CALL sbc_apr ( kstp )                   ! atmospheric pressure (NB: call before bdy_dta which needs ssh_ib)  
    114114      IF( ln_bdy     )   CALL bdy_dta ( kstp, kt_offset = +1 )   ! update dynamic & tracer data at open boundaries 
     115      IF( ln_isf     )   CALL isf_stp ( kstp )                   ! ice shelf/ocean boundary condition 
    115116                         CALL sbc     ( kstp )                   ! Sea Boundary Condition (including sea-ice) 
    116117 
     
    229230                         CALL tra_sbc       ( kstp )  ! surface boundary condition 
    230231      IF( ln_traqsr  )   CALL tra_qsr       ( kstp )  ! penetrative solar radiation qsr 
     232      IF( ln_isf     )   CALL tra_isf       ( kstp )  ! ice shelf heat flux 
    231233      IF( ln_trabbc  )   CALL tra_bbc       ( kstp )  ! bottom heat flux 
    232234      IF( ln_trabbl  )   CALL tra_bbl       ( kstp )  ! advective (and/or diffusive) bottom boundary layer scheme 
  • NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/step_oce.F90

    r10068 r12166  
    2222   USE sbcwave         ! Wave intialisation 
    2323 
     24   USE isf_oce         ! ice shelf boundary condition 
     25   USE isfstp          ! ice shelf boundary condition     (isf_stp routine) 
     26 
    2427   USE traqsr          ! solar radiation penetration      (tra_qsr routine) 
     28   USE traisf          ! ice shelf                        (tra_isf routine) 
    2529   USE trasbc          ! surface boundary condition       (tra_sbc routine) 
    2630   USE trabbc          ! bottom boundary condition        (tra_bbc routine) 
  • NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/ISOMIP/EXPREF/file_def_nemo-oce.xml

    r9572 r12166  
    2727     <field field_ref="ssh"          name="sossheig"  /> 
    2828          <!-- variable for ice shelf --> 
    29           <field field_ref="qlatisf"      name="sohflisf"  /> 
    30           <field field_ref="fwfisf"       name="sowflisf"  /> 
     29          <field field_ref="fwfisf_cav"       name="sowflisf"  /> 
    3130          <field field_ref="isfgammat"    name="sogammat"  /> 
    3231          <field field_ref="isfgammas"    name="sogammas"  /> 
  • NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/ISOMIP/EXPREF/namelist_cfg

    r11536 r12166  
    4646   rn_rdt      = 1800.     !  time step for the dynamics (and tracer if nn_acc=0) 
    4747/ 
     48!----------------------------------------------------------------------- 
     49&namcfg        !   parameters of the configuration                      (default: use namusr_def in namelist_cfg) 
     50!----------------------------------------------------------------------- 
     51/ 
     52!----------------------------------------------------------------------- 
     53&namtsd        !    Temperature & Salinity Data  (init/dmp)             (default: OFF) 
     54!----------------------------------------------------------------------- 
     55    
     56/ 
     57!----------------------------------------------------------------------- 
     58&namwad        !   Wetting and Drying (WaD)                             (default: OFF) 
     59!----------------------------------------------------------------------- 
     60/ 
     61!----------------------------------------------------------------------- 
     62&namcrs        !   coarsened grid (for outputs and/or TOP)              (ln_crs =T) 
     63!----------------------------------------------------------------------- 
     64/ 
     65!----------------------------------------------------------------------- 
     66&namc1d        !   1D configuration options                             ("key_c1d" default: PAPA station) 
     67!----------------------------------------------------------------------- 
     68/ 
     69!----------------------------------------------------------------------- 
     70&namc1d_dyndmp !   U & V newtonian damping                              ("key_c1d" default: OFF) 
     71!----------------------------------------------------------------------- 
     72/ 
     73!----------------------------------------------------------------------- 
     74&namc1d_uvd    !   data: U & V currents                                 ("key_c1d" default: OFF) 
     75!----------------------------------------------------------------------- 
     76 
     77/ 
     78 
    4879!!====================================================================== 
    4980!!            ***  Surface Boundary Condition namelists  ***          !! 
     
    5990!!   namsbc_rnf      river runoffs                                      (ln_rnf     =T) 
    6091!!   namsbc_apr      Atmospheric Pressure                               (ln_apr_dyn =T) 
    61 !!   namsbc_isf      ice shelf melting/freezing                         (ln_isfcav  =T : read (ln_read_cfg=T) or set or usr_def_zgr ) 
    62 !!   namsbc_iscpl    coupling option between land ice model and ocean   (ln_isfcav  =T) 
    6392!!   namsbc_wave     external fields from wave model                    (ln_wave    =T) 
    6493!!   namberg         iceberg floats                                     (ln_icebergs=T) 
     
    6695! 
    6796!----------------------------------------------------------------------- 
    68 &namsbc        !   Surface Boundary Condition (surface module) 
    69 !----------------------------------------------------------------------- 
    70    nn_fsbc     = 1         !  frequency of surface boundary condition computation 
     97&namsbc        !   Surface Boundary Condition manager                   (default: NO selection) 
     98!----------------------------------------------------------------------- 
     99   nn_fsbc     = 1         !  frequency of SBC module call 
     100      !                    !  (control sea-ice & iceberg model call) 
    71101   ln_usr      = .true.    !  user defined formulation                  (T => check usrdef_sbc) 
    72    ln_isf      = .true.    !  ice shelf melting/freezing                (T => fill namsbc_isf) 
    73 / 
    74 !----------------------------------------------------------------------- 
    75 &namsbc_isf    !  Top boundary layer (ISF)                              (ln_isfcav =T : read (ln_read_cfg=T)  
    76 !-----------------------------------------------------------------------             or set or usr_def_zgr ) 
    77 !              ! file name ! frequency (hours) ! variable ! time interpol. !  clim   ! 'yearly'/ ! weights  ! rotation ! land/sea mask ! 
    78 !              !           !  (if <0  months)  !   name   !    (logical)   !  (T/F)  ! 'monthly' ! filename ! pairing  ! filename      ! 
    79 ! nn_isf == 4 
    80    sn_fwfisf   = 'rnfisf'  ,         -12.      ,'sowflisf',     .false.    , .true.  , 'yearly'  ,  ''      ,   ''     , '' 
    81 ! nn_isf == 3 
    82    sn_rnfisf   = 'rnfisf'  ,         -12.      ,'sofwfisf',     .false.    , .true.  , 'yearly'  ,  ''      ,   ''     , '' 
    83 ! nn_isf == 2 and 3 
    84    sn_depmax_isf = 'rnfisf' ,        -12.      ,'sozisfmax' ,   .false.    , .true.  , 'yearly'  ,  ''      ,   ''     , '' 
    85    sn_depmin_isf = 'rnfisf' ,        -12.      ,'sozisfmin' ,   .false.    , .true.  , 'yearly'  ,  ''      ,   ''     , '' 
    86 ! nn_isf == 2 
    87    sn_Leff_isf = 'rnfisf'  ,         -12.      ,'Leff'    ,     .false.    , .true.  , 'yearly'  ,  ''      ,   ''     , '' 
    88 ! for all case 
    89    nn_isf      = 1         !  ice shelf melting/freezing 
    90                            !  1 = presence of ISF    2 = bg03 parametrisation  
    91                            !  3 = rnf file for isf   4 = ISF fwf specified 
    92                            !  option 1 and 4 need ln_isfcav = .true. (domzgr) 
    93 ! only for nn_isf = 1 or 2 
    94    rn_gammat0  = 1.0e-4   ! gammat coefficient used in blk formula 
    95    rn_gammas0  = 1.0e-4   ! gammas coefficient used in blk formula 
    96 ! only for nn_isf = 1 or 4 
    97    rn_hisf_tbl =  30.      ! thickness of the top boundary layer    (Losh et al. 2008) 
    98                           ! 0 => thickness of the tbl = thickness of the first wet cell 
    99 ! only for nn_isf = 1 
    100    nn_isfblk   = 1        ! 1 ISOMIP  like: 2 equations formulation (Hunter et al., 2006) 
    101                           ! 2 ISOMIP+ like: 3 equations formulation (Asay-Davis et al., 2015) 
    102    nn_gammablk = 0        ! 0 = cst Gammat (= gammat/s) 
    103                           ! 1 = velocity dependend Gamma (u* * gammat/s)  (Jenkins et al. 2010) 
    104                           ! 2 = velocity and stability dependent Gamma    (Holland et al. 1999) 
    105 / 
    106 !----------------------------------------------------------------------- 
    107 &namsbc_iscpl  !   land ice / ocean coupling option                      
    108 !----------------------------------------------------------------------- 
    109 / 
     102/ 
     103!----------------------------------------------------------------------- 
     104&namsbc_flx    !   surface boundary condition : flux formulation        (ln_flx =T) 
     105!----------------------------------------------------------------------- 
     106/ 
     107!----------------------------------------------------------------------- 
     108&namsbc_blk    !   namsbc_blk  generic Bulk formula                     (ln_blk =T) 
     109!----------------------------------------------------------------------- 
     110 
     111/ 
     112!----------------------------------------------------------------------- 
     113&namsbc_cpl    !   coupled ocean/atmosphere model                       ("key_oasis3") 
     114!----------------------------------------------------------------------- 
     115 
     116/ 
     117!----------------------------------------------------------------------- 
     118&namsbc_sas    !   Stand-Alone Surface module: ocean data               (SAS_SRC  only) 
     119!----------------------------------------------------------------------- 
     120 
     121/ 
     122!----------------------------------------------------------------------- 
     123&namsbc_iif    !   Ice-IF : use observed ice cover                      (nn_ice = 1) 
     124!----------------------------------------------------------------------- 
     125/ 
     126!----------------------------------------------------------------------- 
     127&namtra_qsr    !   penetrative solar radiation                          (ln_traqsr =T) 
     128!----------------------------------------------------------------------- 
     129    
     130/ 
     131!----------------------------------------------------------------------- 
     132&namsbc_ssr    !   surface boundary condition : sea surface restoring   (ln_ssr =T) 
     133!----------------------------------------------------------------------- 
     134 
     135/ 
     136!----------------------------------------------------------------------- 
     137&namsbc_rnf    !   runoffs                                              (ln_rnf =T) 
     138!----------------------------------------------------------------------- 
     139 
     140/ 
     141!----------------------------------------------------------------------- 
     142&namsbc_apr    !   Atmospheric pressure used as ocean forcing           (ln_apr_dyn =T) 
     143!----------------------------------------------------------------------- 
     144 
     145/ 
     146!----------------------------------------------------------------------- 
     147&namisf       !  Top boundary layer (ISF)                               (default: OFF) 
     148!----------------------------------------------------------------------- 
     149   ! 
     150   ! ---------------- ice shelf load ------------------------------- 
     151   ! 
     152   ! 
     153   ! ---------------- ice shelf melt formulation ------------------------------- 
     154   ! 
     155   ln_isf = .true.           ! activate ice shelf module 
     156      cn_isfdir = './'           ! directory for all ice shelf input file 
     157      ! 
     158      ! ---------------- cavities opened ------------------------------- 
     159      ! 
     160      ln_isfcav_mlt = .true.    ! ice shelf melting into the cavity (need ln_isfcav = .true. in domain_cfg.nc) 
     161         cn_isfcav_mlt = '2eq'   ! ice shelf melting formulation (spe/2eq/3eq/oasis) 
     162         !                       ! spe = fwfisf is read from a forcing field 
     163         !                       ! 2eq = ISOMIP  like: 2 equations formulation (Hunter et al., 2006) 
     164         !                       ! 3eq = ISOMIP+ like: 3 equations formulation (Asay-Davis et al., 2015) 
     165         !                       ! oasis = fwfisf is given by oasis and pattern by file sn_isfcav_fwf 
     166         !              !  cn_isfcav_mlt = 2eq or 3eq cases: 
     167         cn_gammablk = 'spe'    ! scheme to compute gammat/s (spe,ad15,hj99) 
     168         !                       ! ad15 = velocity dependend Gamma (u* * gammat/s)  (Jenkins et al. 2010) 
     169         !                       ! hj99 = velocity and stability dependent Gamma    (Holland et al. 1999) 
     170         rn_gammat0  = 1.e-4     ! gammat coefficient used in blk formula 
     171         rn_gammas0  = 1.e-4     ! gammas coefficient used in blk formula 
     172         ! 
     173         rn_htbl     =  30.      ! thickness of the top boundary layer    (Losh et al. 2008) 
     174         !                       ! 0 => thickness of the tbl = thickness of the first wet cell 
     175         ! 
     176/ 
     177!----------------------------------------------------------------------- 
     178&namsbc_wave   ! External fields from wave model                        (ln_wave=T) 
     179!----------------------------------------------------------------------- 
     180/ 
     181!----------------------------------------------------------------------- 
     182&namberg       !   iceberg parameters                                   (default: OFF) 
     183!----------------------------------------------------------------------- 
     184 
     185/ 
     186 
    110187!!====================================================================== 
    111188!!               ***  Lateral boundary condition  ***                 !! 
     
    124201   rn_shlat    =    0.     !  free slip 
    125202/ 
     203!----------------------------------------------------------------------- 
     204&namagrif      !  AGRIF zoom                                            ("key_agrif") 
     205!----------------------------------------------------------------------- 
     206/ 
     207!----------------------------------------------------------------------- 
     208&nam_tide      !   tide parameters                                      (default: OFF) 
     209!----------------------------------------------------------------------- 
     210/ 
     211!----------------------------------------------------------------------- 
     212&nambdy        !  unstructured open boundaries                          (default: OFF) 
     213!----------------------------------------------------------------------- 
     214/ 
     215!----------------------------------------------------------------------- 
     216&nambdy_dta    !  open boundaries - external data                       (see nam_bdy) 
     217!----------------------------------------------------------------------- 
     218 
     219/ 
     220!----------------------------------------------------------------------- 
     221&nambdy_tide   !  tidal forcing at open boundaries                      (default: OFF) 
     222!----------------------------------------------------------------------- 
     223/ 
     224 
    126225!!====================================================================== 
    127226!!                ***  Top/Bottom boundary condition  ***             !! 
     
    145244/ 
    146245!----------------------------------------------------------------------- 
    147 &namdrg_top    !   TOP friction                                         (ln_isfcav=T) 
     246&namdrg_top    !   TOP friction                                         (ln_OFF =F & ln_isfcav=T) 
    148247!----------------------------------------------------------------------- 
    149248   rn_Cd0     =  2.5e-3    !  drag coefficient [-] 
     
    156255/ 
    157256!----------------------------------------------------------------------- 
    158 &namdrg_bot    !   BOTTOM friction                                   
     257&namdrg_bot    !   BOTTOM friction                                      (ln_OFF =F) 
    159258!----------------------------------------------------------------------- 
    160259   rn_Cd0     =  1.e-3    !  drag coefficient [-] 
     
    166265      rn_boost =  50.         !  local boost factor  [-] 
    167266/ 
     267!----------------------------------------------------------------------- 
     268&nambbc        !   bottom temperature boundary condition                (default: OFF) 
     269!----------------------------------------------------------------------- 
     270 
     271/ 
     272!----------------------------------------------------------------------- 
     273&nambbl        !   bottom boundary layer scheme                         (default: OFF) 
     274!----------------------------------------------------------------------- 
     275/ 
     276 
    168277!!====================================================================== 
    169278!!                        Tracer (T-S) namelists                      !! 
     
    178287! 
    179288!----------------------------------------------------------------------- 
    180 &nameos        !   ocean Equation Of Seawater                           (default: OFF) 
     289&nameos        !   ocean Equation Of Seawater                           (default: NO selection) 
    181290!----------------------------------------------------------------------- 
    182291   ln_eos80    = .true.          !  = Use EOS80 equation of state 
     
    199308      rn_Ld        = 10.e+3         !  lateral diffusive length   [m] 
    200309/ 
     310!----------------------------------------------------------------------- 
     311&namtra_mle    !   mixed layer eddy parametrisation (Fox-Kemper)       (default: OFF) 
     312!----------------------------------------------------------------------- 
     313/ 
     314!----------------------------------------------------------------------- 
     315&namtra_eiv    !   eddy induced velocity param.                         (default: OFF) 
     316!----------------------------------------------------------------------- 
     317/ 
     318!----------------------------------------------------------------------- 
     319&namtra_dmp    !   tracer: T & S newtonian damping                      (default: OFF) 
     320!----------------------------------------------------------------------- 
     321/ 
     322 
    201323!!====================================================================== 
    202324!!                      ***  Dynamics namelists  ***                  !! 
     
    212334! 
    213335!----------------------------------------------------------------------- 
     336&nam_vvl       !   vertical coordinate options                          (default: z-star) 
     337!----------------------------------------------------------------------- 
     338/ 
     339!----------------------------------------------------------------------- 
    214340&namdyn_adv    !   formulation of the momentum advection                (default: NO selection) 
    215341!----------------------------------------------------------------------- 
     
    218344/ 
    219345!----------------------------------------------------------------------- 
    220 &namdyn_vor    !   Vorticity / Coriolis scheme                          (default: OFF) 
     346&namdyn_vor    !   Vorticity / Coriolis scheme                          (default: NO selection) 
    221347!----------------------------------------------------------------------- 
    222348   ln_dynvor_ene = .true.  !  energy conserving scheme 
     
    241367      rn_Lv      = 10.e+3           !  lateral viscous length   [m] 
    242368/ 
     369!----------------------------------------------------------------------- 
     370&namdta_dyn    !   offline ocean input files                            (OFF_SRC only) 
     371!----------------------------------------------------------------------- 
     372 
     373/ 
     374 
    243375!!====================================================================== 
    244376!!                     vertical physics namelists                     !! 
     
    253385! 
    254386!----------------------------------------------------------------------- 
    255 &namzdf        !   vertical physics                                     (default: NO selection) 
    256 !----------------------------------------------------------------------- 
    257    !                       ! type of vertical closure 
     387&namzdf        !   vertical physics manager                             (default: NO selection) 
     388!----------------------------------------------------------------------- 
     389   !                       ! type of vertical closure (required) 
    258390   ln_zdfcst   = .true.       !  constant mixing 
     391   ! 
     392   !                       ! convection 
    259393   ln_zdfevd   = .true.       !  enhanced vertical diffusion 
    260       nn_evdm     =    1         ! apply on tracer (=0) or on tracer and momentum (=1) 
    261       rn_evd      =   0.1        ! mixing coefficient [m2/s] 
     394   rn_evd      =  0.1         ! mixing coefficient [m2/s] 
     395   ! 
    262396   !                       ! coefficients 
    263    rn_avm0     =   1.e-3     !  vertical eddy viscosity   [m2/s] 
    264    rn_avt0     =   5.e-5     !  vertical eddy diffusivity [m2/s] 
    265 / 
     397   rn_avm0     =   1.e-3      !  vertical eddy viscosity   [m2/s]       (background Kz if ln_zdfcst) 
     398   rn_avt0     =   5.e-5      !  vertical eddy diffusivity [m2/s]       (background Kz if ln_zdfcst) 
     399/ 
     400!----------------------------------------------------------------------- 
     401&namzdf_ric    !   richardson number dependent vertical diffusion       (ln_zdfric =T) 
     402!----------------------------------------------------------------------- 
     403/ 
     404!----------------------------------------------------------------------- 
     405&namzdf_tke    !   turbulent eddy kinetic dependent vertical diffusion  (ln_zdftke =T) 
     406!----------------------------------------------------------------------- 
     407/ 
     408!----------------------------------------------------------------------- 
     409&namzdf_gls    !   GLS vertical diffusion                               (ln_zdfgls =T) 
     410!----------------------------------------------------------------------- 
     411/ 
     412!----------------------------------------------------------------------- 
     413&namzdf_osm    !   OSM vertical diffusion                               (ln_zdfosm =T) 
     414!----------------------------------------------------------------------- 
     415/ 
     416!----------------------------------------------------------------------- 
     417&namzdf_iwm    !    internal wave-driven mixing parameterization        (ln_zdfiwm =T) 
     418!----------------------------------------------------------------------- 
     419/ 
     420 
    266421!!====================================================================== 
    267422!!                  ***  Diagnostics namelists  ***                   !! 
     
    280435!!====================================================================== 
    281436! 
     437!----------------------------------------------------------------------- 
     438&namtrd        !   trend diagnostics                                    (default: OFF) 
     439!----------------------------------------------------------------------- 
     440/ 
     441!----------------------------------------------------------------------- 
     442&namptr        !   Poleward Transport Diagnostic                        (default: OFF) 
     443!----------------------------------------------------------------------- 
     444/ 
     445!----------------------------------------------------------------------- 
     446&namhsb        !  Heat and salt budgets                                 (default: OFF) 
     447!----------------------------------------------------------------------- 
     448/ 
     449!----------------------------------------------------------------------- 
     450&namdiu        !   Cool skin and warm layer models                      (default: OFF) 
     451!----------------------------------------------------------------------- 
     452/ 
     453!----------------------------------------------------------------------- 
     454&namflo        !   float parameters                                     ("key_float") 
     455!----------------------------------------------------------------------- 
     456/ 
     457!----------------------------------------------------------------------- 
     458&nam_diaharm   !   Harmonic analysis of tidal constituents              ("key_diaharm") 
     459!----------------------------------------------------------------------- 
     460/ 
     461!----------------------------------------------------------------------- 
     462&namdct        ! transports through some sections                       ("key_diadct") 
     463!----------------------------------------------------------------------- 
     464/ 
     465!----------------------------------------------------------------------- 
     466&nam_diatmb    !  Top Middle Bottom Output                              (default: OFF) 
     467!----------------------------------------------------------------------- 
     468/ 
     469!----------------------------------------------------------------------- 
     470&nam_dia25h    !  25h Mean Output                                       (default: OFF) 
     471!----------------------------------------------------------------------- 
     472/ 
     473!----------------------------------------------------------------------- 
     474&namnc4        !   netcdf4 chunking and compression settings            ("key_netcdf4") 
     475!----------------------------------------------------------------------- 
     476/ 
     477 
    282478!!====================================================================== 
    283479!!               ***  Observation & Assimilation  ***                 !! 
     
    287483!!====================================================================== 
    288484! 
     485!----------------------------------------------------------------------- 
     486&namobs        !  observation usage switch                              (default: OFF) 
     487!----------------------------------------------------------------------- 
     488/ 
     489!----------------------------------------------------------------------- 
     490&nam_asminc    !   assimilation increments                              ('key_asminc') 
     491!----------------------------------------------------------------------- 
     492/ 
     493 
    289494!!====================================================================== 
    290495!!                  ***  Miscellaneous namelists  ***                 !! 
  • NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/LOCK_EXCHANGE/EXPREF/namelist_FCT2_flux_cen2_cfg

    r10075 r12166  
    3232!----------------------------------------------------------------------- 
    3333   ln_linssh   = .false.   !  =T  linear free surface  ==>>  model level are fixed in time 
    34    ! 
    35    rn_isfhmin  =    0.00   !  treshold (m) to discriminate grounding ice to floating ice 
    3634   ! 
    3735   rn_rdt      =    1.     !  time step for the dynamics (and tracer if nn_acc=0) 
  • NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/LOCK_EXCHANGE/EXPREF/namelist_FCT2_flux_ubs_cfg

    r11536 r12166  
    4646!----------------------------------------------------------------------- 
    4747   ln_linssh   = .false.   !  =T  linear free surface  ==>>  model level are fixed in time 
    48    ! 
    49    rn_isfhmin  =    0.00   !  treshold (m) to discriminate grounding ice to floating ice 
    5048   ! 
    5149   rn_rdt      =    1.     !  time step for the dynamics (and tracer if nn_acc=0) 
  • NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/LOCK_EXCHANGE/EXPREF/namelist_FCT2_vect_eenH_cfg

    r10075 r12166  
    3232!----------------------------------------------------------------------- 
    3333   ln_linssh   = .false.   !  =T  linear free surface  ==>>  model level are fixed in time 
    34    ! 
    35    rn_isfhmin  =    0.00   !  treshold (m) to discriminate grounding ice to floating ice 
    3634   ! 
    3735   rn_rdt      =    1.     !  time step for the dynamics (and tracer if nn_acc=0) 
  • NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/LOCK_EXCHANGE/EXPREF/namelist_FCT2_vect_een_cfg

    r10075 r12166  
    3232!----------------------------------------------------------------------- 
    3333   ln_linssh   = .false.   !  =T  linear free surface  ==>>  model level are fixed in time 
    34    ! 
    35    rn_isfhmin  =    0.00   !  treshold (m) to discriminate grounding ice to floating ice 
    3634   ! 
    3735   rn_rdt      =    1.     !  time step for the dynamics (and tracer if nn_acc=0) 
  • NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/LOCK_EXCHANGE/EXPREF/namelist_FCT2_vect_ene_cfg

    r10075 r12166  
    3232!----------------------------------------------------------------------- 
    3333   ln_linssh   = .false.   !  =T  linear free surface  ==>>  model level are fixed in time 
    34    ! 
    35    rn_isfhmin  =    0.00   !  treshold (m) to discriminate grounding ice to floating ice 
    3634   ! 
    3735   rn_rdt      =    1.     !  time step for the dynamics (and tracer if nn_acc=0) 
  • NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/LOCK_EXCHANGE/EXPREF/namelist_FCT2_vect_ens_cfg

    r10075 r12166  
    3232!----------------------------------------------------------------------- 
    3333   ln_linssh   = .false.   !  =T  linear free surface  ==>>  model level are fixed in time 
    34    ! 
    35    rn_isfhmin  =    0.00   !  treshold (m) to discriminate grounding ice to floating ice 
    3634   ! 
    3735   rn_rdt      =    1.     !  time step for the dynamics (and tracer if nn_acc=0) 
  • NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/LOCK_EXCHANGE/EXPREF/namelist_FCT4_flux_cen2_cfg

    r10075 r12166  
    3232!----------------------------------------------------------------------- 
    3333   ln_linssh   = .false.   !  =T  linear free surface  ==>>  model level are fixed in time 
    34    ! 
    35    rn_isfhmin  =    0.00   !  treshold (m) to discriminate grounding ice to floating ice 
    3634   ! 
    3735   rn_rdt      =    1.     !  time step for the dynamics (and tracer if nn_acc=0) 
  • NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/LOCK_EXCHANGE/EXPREF/namelist_FCT4_flux_ubs_cfg

    r10075 r12166  
    3232!----------------------------------------------------------------------- 
    3333   ln_linssh   = .false.   !  =T  linear free surface  ==>>  model level are fixed in time 
    34    ! 
    35    rn_isfhmin  =    0.00   !  treshold (m) to discriminate grounding ice to floating ice 
    3634   ! 
    3735   rn_rdt      =    1.     !  time step for the dynamics (and tracer if nn_acc=0) 
  • NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/LOCK_EXCHANGE/EXPREF/namelist_FCT4_vect_eenH_cfg

    r10075 r12166  
    3232!----------------------------------------------------------------------- 
    3333   ln_linssh   = .false.   !  =T  linear free surface  ==>>  model level are fixed in time 
    34    ! 
    35    rn_isfhmin  =    0.00   !  treshold (m) to discriminate grounding ice to floating ice 
    3634   ! 
    3735   rn_rdt      =    1.     !  time step for the dynamics (and tracer if nn_acc=0) 
  • NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/LOCK_EXCHANGE/EXPREF/namelist_FCT4_vect_een_cfg

    r10075 r12166  
    3232!----------------------------------------------------------------------- 
    3333   ln_linssh   = .false.   !  =T  linear free surface  ==>>  model level are fixed in time 
    34    ! 
    35    rn_isfhmin  =    0.00   !  treshold (m) to discriminate grounding ice to floating ice 
    3634   ! 
    3735   rn_rdt      =    1.     !  time step for the dynamics (and tracer if nn_acc=0) 
  • NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/LOCK_EXCHANGE/EXPREF/namelist_FCT4_vect_ene_cfg

    r10075 r12166  
    3232!----------------------------------------------------------------------- 
    3333   ln_linssh   = .false.   !  =T  linear free surface  ==>>  model level are fixed in time 
    34    ! 
    35    rn_isfhmin  =    0.00   !  treshold (m) to discriminate grounding ice to floating ice 
    3634   ! 
    3735   rn_rdt      =    1.     !  time step for the dynamics (and tracer if nn_acc=0) 
  • NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/LOCK_EXCHANGE/EXPREF/namelist_FCT4_vect_ens_cfg

    r10075 r12166  
    3232!----------------------------------------------------------------------- 
    3333   ln_linssh   = .false.   !  =T  linear free surface  ==>>  model level are fixed in time 
    34    ! 
    35    rn_isfhmin  =    0.00   !  treshold (m) to discriminate grounding ice to floating ice 
    3634   ! 
    3735   rn_rdt      =    1.     !  time step for the dynamics (and tracer if nn_acc=0) 
  • NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/VORTEX/MY_SRC/domvvl.F90

    r11536 r12166  
    3636 
    3737   PUBLIC  dom_vvl_init       ! called by domain.F90 
     38   PUBLIC  dom_vvl_zgr        ! called by isfcpl.F90 
    3839   PUBLIC  dom_vvl_sf_nxt     ! called by step.F90 
    3940   PUBLIC  dom_vvl_sf_swp     ! called by step.F90 
     
    115116      !! Reference  : Leclair, M., and G. Madec, 2011, Ocean Modelling. 
    116117      !!---------------------------------------------------------------------- 
     118      ! 
     119      IF(lwp) WRITE(numout,*) 
     120      IF(lwp) WRITE(numout,*) 'dom_vvl_init : Variable volume activated' 
     121      IF(lwp) WRITE(numout,*) '~~~~~~~~~~~~' 
     122      ! 
     123      CALL dom_vvl_ctl     ! choose vertical coordinate (z_star, z_tilde or layer) 
     124      ! 
     125      !                    ! Allocate module arrays 
     126      IF( dom_vvl_alloc() /= 0 )   CALL ctl_stop( 'STOP', 'dom_vvl_init : unable to allocate arrays' ) 
     127      ! 
     128      !                    ! Read or initialize e3t_(b/n), tilde_e3t_(b/n) and hdiv_lf 
     129      CALL dom_vvl_rst( nit000, 'READ' ) 
     130      e3t_a(:,:,jpk) = e3t_0(:,:,jpk)  ! last level always inside the sea floor set one for all 
     131      ! 
     132      CALL dom_vvl_zgr() ! interpolation scale factor, depth and water column 
     133      ! 
     134   END SUBROUTINE dom_vvl_init 
     135   ! 
     136   SUBROUTINE dom_vvl_zgr() 
     137      !!---------------------------------------------------------------------- 
     138      !!                ***  ROUTINE dom_vvl_init  *** 
     139      !!                    
     140      !! ** Purpose :  Interpolation of all scale factors,  
     141      !!               depths and water column heights 
     142      !! 
     143      !! ** Method  :  - interpolate scale factors 
     144      !! 
     145      !! ** Action  : - e3t_(n/b) and tilde_e3t_(n/b) 
     146      !!              - Regrid: e3(u/v)_n 
     147      !!                        e3(u/v)_b        
     148      !!                        e3w_n            
     149      !!                        e3(u/v)w_b       
     150      !!                        e3(u/v)w_n       
     151      !!                        gdept_n, gdepw_n and gde3w_n 
     152      !!              - h(t/u/v)_0 
     153      !!              - frq_rst_e3t and frq_rst_hdv 
     154      !! 
     155      !! Reference  : Leclair, M., and G. Madec, 2011, Ocean Modelling. 
     156      !!---------------------------------------------------------------------- 
    117157      INTEGER ::   ji, jj, jk 
    118158      INTEGER ::   ii0, ii1, ij0, ij1 
    119159      REAL(wp)::   zcoef 
    120160      !!---------------------------------------------------------------------- 
    121       ! 
    122       IF(lwp) WRITE(numout,*) 
    123       IF(lwp) WRITE(numout,*) 'dom_vvl_init : Variable volume activated' 
    124       IF(lwp) WRITE(numout,*) '~~~~~~~~~~~~' 
    125       ! 
    126       CALL dom_vvl_ctl     ! choose vertical coordinate (z_star, z_tilde or layer) 
    127       ! 
    128       !                    ! Allocate module arrays 
    129       IF( dom_vvl_alloc() /= 0 )   CALL ctl_stop( 'STOP', 'dom_vvl_init : unable to allocate arrays' ) 
    130       ! 
    131       !                    ! Read or initialize e3t_(b/n), tilde_e3t_(b/n) and hdiv_lf 
    132       CALL dom_vvl_rst( nit000, 'READ' ) 
    133       e3t_a(:,:,jpk) = e3t_0(:,:,jpk)  ! last level always inside the sea floor set one for all 
    134161      ! 
    135162      !                    !== Set of all other vertical scale factors  ==!  (now and before) 
     
    263290      ENDIF 
    264291      ! 
    265    END SUBROUTINE dom_vvl_init 
    266  
     292   END SUBROUTINE dom_vvl_zgr 
    267293 
    268294   SUBROUTINE dom_vvl_sf_nxt( kt, kcall )  
     
    10341060      ! 
    10351061      IF( ioptio /= 1 )   CALL ctl_stop( 'Choose ONE vertical coordinate in namelist nam_vvl' ) 
    1036       IF( .NOT. ln_vvl_zstar .AND. ln_isf ) CALL ctl_stop( 'Only vvl_zstar has been tested with ice shelf cavity' ) 
    10371062      ! 
    10381063      IF(lwp) THEN                   ! Print the choice 
  • NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/tests/demo_cfgs.txt

    r12154 r12166  
    11CANAL OCE 
    22ISOMIP OCE 
     3ISOMIP+ OCE 
    34LOCK_EXCHANGE OCE 
    45OVERFLOW OCE 
Note: See TracChangeset for help on using the changeset viewer.