Changeset 11987
- Timestamp:
- 2019-11-27T15:50:29+01:00 (4 years ago)
- Location:
- NEMO/branches/2019/ENHANCE-02_ISF_nemo
- Files:
-
- 36 edited
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/ENHANCE-02_ISF_nemo/src/OCE/BDY/bdyvol.F90
r11395 r11987 14 14 USE bdy_oce ! ocean open boundary conditions 15 15 USE sbc_oce ! ocean surface boundary conditions 16 USE isf_oce, ONLY : fwfisf_cav, fwfisf_par ! ice shelf 16 17 USE dom_oce ! ocean space and time domain 17 18 USE phycst ! physical constants 18 USE isf ! ice shelf19 19 ! 20 20 USE in_out_manager ! I/O manager -
NEMO/branches/2019/ENHANCE-02_ISF_nemo/src/OCE/DIA/diahsb.F90
r11529 r11987 17 17 USE phycst ! physical constants 18 18 USE sbc_oce ! surface thermohaline fluxes 19 USE isf_oce ! ice shelf fluxes 19 20 USE sbcrnf ! river runoff 20 USE isf ! ice shelves21 21 USE domvvl ! vertical scale factors 22 22 USE traqsr ! penetrative solar radiation -
NEMO/branches/2019/ENHANCE-02_ISF_nemo/src/OCE/DIA/diawri.F90
r11876 r11987 26 26 !!---------------------------------------------------------------------- 27 27 USE oce ! ocean dynamics and tracers 28 USE isf 28 USE isf_oce 29 29 USE isfcpl 30 30 USE dom_oce ! ocean space and time domain … … 909 909 CALL iom_rstput( 0, 0, inum, 'risfdep', risfdep ) ! now k-velocity 910 910 CALL iom_rstput( 0, 0, inum, 'ht_n' , ht_n ) ! now k-velocity 911 911 912 IF ( ln_isf ) THEN 912 913 IF (ln_isfcav_mlt) THEN … … 916 917 CALL iom_rstput( 0, 0, inum, 'misfkb_cav', REAL(misfkb_cav,8) ) ! now k-velocity 917 918 CALL iom_rstput( 0, 0, inum, 'misfkt_cav', REAL(misfkt_cav,8) ) ! now k-velocity 919 CALL iom_rstput( 0, 0, inum, 'mskisf_cav', REAL(mskisf_cav,8), ktype = jp_i1 ) 918 920 END IF 919 921 IF (ln_isfpar_mlt) THEN … … 924 926 CALL iom_rstput( 0, 0, inum, 'misfkb_par', REAL(misfkb_par,8) ) ! now k-velocity 925 927 CALL iom_rstput( 0, 0, inum, 'misfkt_par', REAL(misfkt_par,8) ) ! now k-velocity 928 CALL iom_rstput( 0, 0, inum, 'mskisf_par', REAL(mskisf_par,8), ktype = jp_i1 ) 926 929 END IF 927 930 END IF 928 931 929 IF ( ln_isf ) THEN930 IF (ln_isfcav_mlt) CALL iom_rstput( 0, 0, inum, 'mskisf_cav', REAL(mskisf_cav,8), ktype = jp_i1 )931 IF (ln_isfpar_mlt) CALL iom_rstput( 0, 0, inum, 'mskisf_par', REAL(mskisf_par,8), ktype = jp_i1 )932 END IF933 934 932 IF( ALLOCATED(ahtu) ) THEN 935 933 CALL iom_rstput( 0, 0, inum, 'ahtu', ahtu ) ! aht at u-point -
NEMO/branches/2019/ENHANCE-02_ISF_nemo/src/OCE/DOM/domwri.F90
r11395 r11987 16 16 !! dom_stiff : diagnose maximum grid stiffness/hydrostatic consistency (s-coordinate) 17 17 !!---------------------------------------------------------------------- 18 USE isf ! ice shelf18 ! 19 19 USE dom_oce ! ocean space and time domain 20 20 USE phycst , ONLY : rsmall -
NEMO/branches/2019/ENHANCE-02_ISF_nemo/src/OCE/DYN/divhor.F90
r11852 r11987 19 19 !!---------------------------------------------------------------------- 20 20 USE oce ! ocean dynamics and tracers 21 USE isf22 USE isfutils23 21 USE dom_oce ! ocean space and time domain 24 USE sbc_oce, ONLY : ln_rnf ! surface boundary condition: ocean 25 USE sbcrnf ! river runoff 26 USE isfhdiv ! ice shelf 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 27 26 #if defined key_asminc 28 27 USE asminc ! Assimilation increment -
NEMO/branches/2019/ENHANCE-02_ISF_nemo/src/OCE/DYN/dynhpg.F90
r11403 r11987 31 31 !!---------------------------------------------------------------------- 32 32 USE oce ! ocean dynamics and tracers 33 USE isf 34 USE isfload 33 USE isf_oce , ONLY : risfload ! ice shelf (risfload variable) 34 USE isfload , ONLY : isf_load ! ice shelf (isf_load routine ) 35 35 USE sbc_oce ! surface variable (only for the flag with ice shelf) 36 36 USE dom_oce ! ocean space and time domain -
NEMO/branches/2019/ENHANCE-02_ISF_nemo/src/OCE/DYN/dynnxt.F90
r11931 r11987 34 34 USE domvvl ! variable volume 35 35 USE bdy_oce , ONLY: ln_bdy 36 USE isf_oce , ONLY: ln_isf ! ice shelf 36 37 USE bdydta ! ocean open boundary conditions 37 38 USE bdydyn ! ocean open boundary conditions … … 40 41 USE trddyn ! trend manager: dynamics 41 42 USE trdken ! trend manager: kinetic energy 42 USE isf , ONLY: ln_isf ! ice shelf 43 USE isfdynnxt , ONLY: isf_dynnxt ! ice shelf 43 USE isfdynnxt , ONLY: isf_dynnxt ! ice shelf volume filter correction subroutine 44 44 ! 45 45 USE in_out_manager ! I/O manager … … 246 246 ! PM: we could probably define a generic subroutine to do the in depth correction 247 247 ! to manage rnf, isf and possibly in the futur icb, tide water glacier (...) 248 ! ...(kt, coef, ktop, kbot, hz, fwf_b, fwf) 248 249 IF ( ln_isf ) CALL isf_dynnxt( kt, atfp * rdt ) 249 250 ! -
NEMO/branches/2019/ENHANCE-02_ISF_nemo/src/OCE/DYN/dynspg_ts.F90
r11541 r11987 31 31 USE dom_oce ! ocean space and time domain 32 32 USE sbc_oce ! surface boundary condition: ocean 33 USE isf_oce ! ice shelf variable (fwfisf) 33 34 USE zdf_oce ! vertical physics: variables 34 35 USE zdfdrg ! vertical physics: top/bottom drag coef. 35 USE isf ! ice shelf variable (fwfisf)36 USE isfutils37 36 USE sbcapr ! surface boundary condition: atmospheric pressure 38 37 USE dynadv , ONLY: ln_dynadv_vec -
NEMO/branches/2019/ENHANCE-02_ISF_nemo/src/OCE/DYN/sshwzv.F90
r11931 r11987 17 17 !!---------------------------------------------------------------------- 18 18 USE oce ! ocean dynamics and tracers variables 19 USE isf ! ice shelf 20 USE isfutils 19 USE isf_oce ! ice shelf 21 20 USE dom_oce ! ocean space and time domain variables 22 21 USE sbc_oce ! surface boundary condition: ocean -
NEMO/branches/2019/ENHANCE-02_ISF_nemo/src/OCE/ISF/isf_oce.F90
r11931 r11987 1 MODULE isf 1 MODULE isf_oce 2 2 !!====================================================================== 3 3 !! *** MODULE sbcisf *** … … 23 23 PRIVATE 24 24 25 PUBLIC isf_alloc, isf_alloc_par, isf_alloc_cav, isf_alloc_cpl 25 PUBLIC isf_alloc, isf_alloc_par, isf_alloc_cav, isf_alloc_cpl, isf_dealloc_cpl 26 26 ! 27 27 !------------------------------------------------------- … … 71 71 !------------------------------------------------------- 72 72 ! 73 ! 0.1 -------- ice shelf cavity parameter --------------73 ! 2.1 -------- ice shelf cavity parameter -------------- 74 74 LOGICAL , PUBLIC :: l_isfoasis 75 75 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: risfload !: ice shelf load 76 76 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: fwfisf_oasis 77 77 ! 78 ! 0.2 -------- ice shelf cavity melt namelist parameter -------------78 ! 2.2 -------- ice shelf cavity melt namelist parameter ------------- 79 79 INTEGER , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: mskisf_cav !: 80 80 INTEGER , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: misfkt_cav , misfkb_cav !: … … 86 86 REAL(wp) , PUBLIC :: risf_lamb1, risf_lamb2, risf_lamb3 ! freezing point linearization coeficient 87 87 ! 88 ! 0.3 -------- ice shelf param. melt namelist parameter -------------88 ! 2.3 -------- ice shelf param. melt namelist parameter ------------- 89 89 INTEGER , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: mskisf_par !: 90 90 INTEGER , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: misfkt_par , misfkb_par !: … … 97 97 REAL(wp) , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: risfLeff !: 98 98 ! 99 ! 0.4 -------- coupling namelist parameter -------------99 ! 2.4 -------- coupling namelist parameter ------------- 100 100 INTEGER , PUBLIC :: nstp_iscpl !: 101 101 REAL(wp), PUBLIC :: rdt_iscpl !: … … 175 175 !! *** ROUTINE isf_alloc_cpl *** 176 176 !! 177 !! ** Purpose : 178 !! 179 !! ** Method : 177 !! ** Purpose : allocate array use for the ice sheet coupling 180 178 !! 181 179 !!---------------------------------------------------------------------- … … 202 200 END SUBROUTINE isf_alloc_cpl 203 201 202 SUBROUTINE isf_dealloc_cpl() 203 !!--------------------------------------------------------------------- 204 !! *** ROUTINE isf_dealloc_cpl *** 205 !! 206 !! ** Purpose : de-allocate useless public 3d array used for ice sheet coupling 207 !! 208 !!---------------------------------------------------------------------- 209 INTEGER :: ierr, ialloc 210 !!---------------------------------------------------------------------- 211 ierr = 0 212 ! 213 DEALLOCATE( risfcpl_ssh, risfcpl_tsc, risfcpl_vol, STAT=ialloc ) 214 ierr = ierr + ialloc 215 ! 216 CALL mpp_sum ( 'isf', ierr ) 217 IF( ierr /= 0 ) CALL ctl_stop('STOP','isfcpl: failed to deallocate arrays.') 218 ! 219 END SUBROUTINE isf_dealloc_cpl 220 204 221 SUBROUTINE isf_alloc() 205 222 !!--------------------------------------------------------------------- 206 223 !! *** ROUTINE isf_alloc *** 207 224 !! 208 !! ** Purpose : 209 !! 210 !! ** Method : 225 !! ** Purpose : allocate array used for the ice shelf cavity (cav and par) 211 226 !! 212 227 !!---------------------------------------------------------------------- … … 247 262 END SUBROUTINE isf_alloc 248 263 249 END MODULE isf 264 END MODULE isf_oce -
NEMO/branches/2019/ENHANCE-02_ISF_nemo/src/OCE/ISF/isfcav.F90
r11931 r11987 13 13 !! isf_cav : update ice shelf melting under ice shelf 14 14 !!---------------------------------------------------------------------- 15 USE isf 15 USE isf_oce ! ice shelf public variables 16 16 ! 17 17 USE isfrst , ONLY: isfrst_write, isfrst_read ! ice shelf restart read/write subroutine … … 163 163 INTEGER :: ierr 164 164 !!--------------------------------------------------------------------- 165 PRINT *, cn_isfcav_mlt 165 166 ! 166 167 !============== -
NEMO/branches/2019/ENHANCE-02_ISF_nemo/src/OCE/ISF/isfcavgam.F90
r11931 r11987 10 10 !! isfcav_gammats : compute exchange coeficient gamma 11 11 !!---------------------------------------------------------------------- 12 USE isf 12 USE isf_oce 13 13 USE isfutils, ONLY: debug 14 14 USE isftbl , ONLY: isf_tbl … … 184 184 ! 185 185 ! compute ustar 186 zustar(:,:) = SQRT( pCd * ( putbl(:,:) * putbl(:,:) + pvtbl(:,:) * pvtbl(:,:) + r_ke0_top) )186 zustar(:,:) = SQRT( pCd * ( putbl(:,:) * putbl(:,:) + pvtbl(:,:) * pvtbl(:,:) + pke2 ) ) 187 187 ! 188 188 ! output ustar -
NEMO/branches/2019/ENHANCE-02_ISF_nemo/src/OCE/ISF/isfcavmlt.F90
r11931 r11987 12 12 !!---------------------------------------------------------------------- 13 13 14 USE isf 14 USE isf_oce ! ice shelf 15 15 USE isftbl , ONLY: isf_tbl ! ice shelf depth average 16 16 USE isfutils,ONLY: debug ! debug subroutine -
NEMO/branches/2019/ENHANCE-02_ISF_nemo/src/OCE/ISF/isfcpl.F90
r11931 r11987 12 12 !! isfrst : read/write iceshelf variables in/from restart 13 13 !!---------------------------------------------------------------------- 14 USE isf 14 USE isf_oce ! ice shelf variable 15 15 USE isfutils, ONLY : debug 16 16 USE lib_mpp , ONLY: mpp_sum, mpp_max ! mpp routine -
NEMO/branches/2019/ENHANCE-02_ISF_nemo/src/OCE/ISF/isfdiags.F90
r11931 r11987 16 16 USE in_out_manager ! I/O manager 17 17 USE dom_oce 18 USE isf ! ice shelf variable 19 USE isfutils 18 USE isf_oce ! ice shelf variable 20 19 USE iom ! 21 20 -
NEMO/branches/2019/ENHANCE-02_ISF_nemo/src/OCE/ISF/isfdynnxt.F90
r11931 r11987 11 11 !!------------------------------------------------------------------------- 12 12 13 USE isf 13 USE isf_oce 14 14 15 15 USE phycst , ONLY: r1_rau0 ! physical constant -
NEMO/branches/2019/ENHANCE-02_ISF_nemo/src/OCE/ISF/isfhdiv.F90
r11931 r11987 1 1 MODULE isfhdiv 2 !!====================================================================== 3 !! *** MODULE isfhdiv *** 4 !! ice shelf horizontal divergence module : update the horizontal divergence 5 !! with the ice shelf melt and coupling correction 6 !!====================================================================== 7 !! History : 4.0 ! 2019-09 (P. Mathiot) Original code 8 !!---------------------------------------------------------------------- 2 9 3 USE isf ! ice shelf 4 USE isfutils 10 !!---------------------------------------------------------------------- 11 !! isf_hdiv : update the horizontal divergence with the ice shelf 12 !! melt and coupling correction 13 !!---------------------------------------------------------------------- 14 15 USE isf_oce ! ice shelf 16 5 17 USE dom_oce ! time and space domain 6 18 USE phycst , ONLY: r1_rau0 ! physical constant -
NEMO/branches/2019/ENHANCE-02_ISF_nemo/src/OCE/ISF/isfload.F90
r11852 r11987 11 11 !!---------------------------------------------------------------------- 12 12 13 USE isf , ONLY: cn_isfload! ice shelf variables13 USE isf_oce, ONLY: cn_isfload ! ice shelf variables 14 14 15 15 USE dom_oce, ONLY: e3w_n, gdept_n, risfdep, mikt ! vertical scale factor 16 16 USE eosbn2 , ONLY: eos ! eos routine 17 17 18 USE lib_mpp, ONLY: ctl_stop ! ctl_stop routine19 USE in_out_manager !18 USE lib_mpp, ONLY: ctl_stop ! ctl_stop routine 19 USE in_out_manager ! 20 20 21 21 IMPLICIT NONE -
NEMO/branches/2019/ENHANCE-02_ISF_nemo/src/OCE/ISF/isfpar.F90
r11931 r11987 14 14 !! isfpar : compute ice shelf melt using a prametrisation of ice shelf cavities 15 15 !!---------------------------------------------------------------------- 16 USE isf 16 USE isf_oce ! ice shelf 17 17 ! 18 18 USE isfrst , ONLY: isfrst_write, isfrst_read ! ice shelf restart read/write subroutine 19 19 USE isftbl , ONLY: isf_tbl_ktop, isf_tbl_lvl ! ice shelf top boundary layer properties subroutine 20 USE isfparmlt, ONLY: isfpar_mlt ! ice shelf melt formulation subroutine 21 USE isfdiags , ONLY: isf_diags_flx ! ice shelf diags subroutine 20 22 USE isfutils , ONLY: debug, read_2dcstdta ! ice shelf debug subroutine 21 USE isfparmlt, ONLY: isfpar_mlt ! ice shelf melt formulation subroutine22 USE isfdiags , ONLY: isf_diags_flx ! ice shelf diags subroutine23 23 ! 24 24 USE dom_oce , ONLY: bathy ! ocean space and time domain -
NEMO/branches/2019/ENHANCE-02_ISF_nemo/src/OCE/ISF/isfparmlt.F90
r11931 r11987 8 8 !!---------------------------------------------------------------------- 9 9 10 USE isf ! ice shelf10 USE isf_oce ! ice shelf 11 11 USE isftbl , ONLY: isf_tbl ! ice shelf depth average 12 12 -
NEMO/branches/2019/ENHANCE-02_ISF_nemo/src/OCE/ISF/isfstp.F90
r11931 r11987 14 14 !!---------------------------------------------------------------------- 15 15 ! 16 USE isf ! isf variables16 USE isf_oce ! isf variables 17 17 USE isfload, ONLY: isf_load ! ice shelf load 18 18 USE isftbl , ONLY: isf_tbl_lvl ! ice shelf boundary layer … … 158 158 !--------------------------------------------------------------------------------------------------------------------- 159 159 ! initialisation ice sheet coupling 160 IF ( ln_isfcpl ) CALL isfcpl_init()160 IF ( ln_isfcpl ) CALL isfcpl_init() 161 161 ! 162 162 END IF … … 185 185 WRITE(numout,*) ' melt inside the cavity ln_isfcav_mlt = ', ln_isfcav_mlt 186 186 IF ( ln_isfcav_mlt) THEN 187 WRITE(numout,*) ' melt formulation cn_isfcav_mlt= ', TRIM(cn_isfcav_mlt)188 WRITE(numout,*) ' thickness of the top boundary layer rn_htbl= ', rn_htbl189 WRITE(numout,*) ' gamma formulation cn_gammablk= ', TRIM(cn_gammablk)187 WRITE(numout,*) ' melt formulation cn_isfcav_mlt= ', TRIM(cn_isfcav_mlt) 188 WRITE(numout,*) ' thickness of the top boundary layer rn_htbl = ', rn_htbl 189 WRITE(numout,*) ' gamma formulation cn_gammablk = ', TRIM(cn_gammablk) 190 190 IF ( TRIM(cn_gammablk) .NE. 'spe' ) THEN 191 WRITE(numout,*) ' gammat coefficient rn_gammat0 = ', rn_gammat0192 WRITE(numout,*) ' gammas coefficient rn_gammas0 = ', rn_gammas0193 WRITE(numout,*) ' top drag coef. used (from namdrg_top) rn_Cd0 = ', r_Cdmin_top194 WRITE(numout,*) ' top background ke used (from namdrg_top) rn_ke0 = ', r_ke0_top191 WRITE(numout,*) ' gammat coefficient rn_gammat0 = ', rn_gammat0 192 WRITE(numout,*) ' gammas coefficient rn_gammas0 = ', rn_gammas0 193 WRITE(numout,*) ' top background ke used (from namdrg_top) rn_ke0 = ', r_ke0_top 194 WRITE(numout,*) ' top drag coef. used (from namdrg_top) rn_Cd0 = ', r_Cdmin_top 195 195 END IF 196 196 END IF … … 222 222 IF (ln_isfcav) WRITE(numout,*) ' Ice shelf load method cn_isfload = ', TRIM(cn_isfload) 223 223 WRITE(numout,*) '' 224 FLUSH(numout) 224 225 225 226 END IF … … 243 244 IF ( l_isfoasis .AND. ln_isf ) THEN 244 245 ! 245 CALL ctl_stop( ' OASISand ice shelf not tested' )246 CALL ctl_stop( ' ln_ctl and ice shelf not tested' ) 246 247 ! 247 248 ! NEMO coupled to ATMO model with isf cavity need oasis method for melt computation -
NEMO/branches/2019/ENHANCE-02_ISF_nemo/src/OCE/ISF/isftbl.F90
r11931 r11987 14 14 !!---------------------------------------------------------------------- 15 15 16 USE isf 16 USE isf_oce ! ice shelf variables 17 17 18 18 USE dom_oce ! vertical scale factor and depth -
NEMO/branches/2019/ENHANCE-02_ISF_nemo/src/OCE/ISF/isfutils.F90
r11931 r11987 54 54 !! *** ROUTINE isf_debug2d *** 55 55 !! 56 !! ** Purpose : add debug print 56 !! ** Purpose : add debug print for 2d variables 57 57 !! 58 58 !!-------------------------- IN ------------------------------------- … … 77 77 !! *** ROUTINE isf_debug3d *** 78 78 !! 79 !! ** Purpose : add debug print 79 !! ** Purpose : add debug print for 3d variables 80 80 !! 81 81 !!-------------------------- IN ------------------------------------- -
NEMO/branches/2019/ENHANCE-02_ISF_nemo/src/OCE/LDF/ldfslp.F90
r11395 r11987 21 21 !!---------------------------------------------------------------------- 22 22 USE oce ! ocean dynamics and tracers 23 USE isf 23 USE isf_oce ! ice shelf 24 24 USE dom_oce ! ocean space and time domain 25 25 ! USE ldfdyn ! lateral diffusion: eddy viscosity coef. -
NEMO/branches/2019/ENHANCE-02_ISF_nemo/src/OCE/LDF/ldftra.F90
r10425 r11987 662 662 ! eddies using the isopycnal slopes calculated in ldfslp.F : 663 663 ! 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) 665 665 zah(ji,jj) = zah(ji,jj) + zn2 * wslp2(ji,jj,jk) * ze3w 666 666 zhw(ji,jj) = zhw(ji,jj) + ze3w … … 680 680 ! eddies using the isopycnal slopes calculated in ldfslp.F : 681 681 ! 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) 683 683 zah(ji,jj) = zah(ji,jj) + zn2 * ( wslpi(ji,jj,jk) * wslpi(ji,jj,jk) & 684 684 & + wslpj(ji,jj,jk) * wslpj(ji,jj,jk) ) * ze3w -
NEMO/branches/2019/ENHANCE-02_ISF_nemo/src/OCE/SBC/sbccpl.F90
r11553 r11987 27 27 USE sbcwave ! surface boundary condition: waves 28 28 USE phycst ! physical constants 29 USE isf_oce , ONLY : l_isfoasis, fwfisf_oasis ! ice shelf boundary condition 29 30 #if defined key_si3 30 31 USE ice ! ice variables … … 36 37 USE eosbn2 ! 37 38 USE sbcrnf , ONLY : l_rnfcpl 38 USE isf , ONLY : ln_isf, l_isfoasis, fwfisf_oasis39 39 #if defined key_cice 40 40 USE ice_domain_size, only: ncat -
NEMO/branches/2019/ENHANCE-02_ISF_nemo/src/OCE/SBC/sbcfwb.F90
r11395 r11987 17 17 USE dom_oce ! ocean space and time domain 18 18 USE sbc_oce ! surface ocean boundary condition 19 USE isf_oce , ONLY : fwfisf_cav, fwfisf_par ! ice shelf melting contribution 19 20 USE sbc_ice , ONLY : snwice_mass, snwice_mass_b, snwice_fmass 20 21 USE phycst ! physical constants 21 22 USE sbcrnf ! ocean runoffs 22 USE isf ! ice shelf melting contribution23 23 USE sbcssr ! Sea-Surface damping terms 24 24 ! -
NEMO/branches/2019/ENHANCE-02_ISF_nemo/src/OCE/SBC/sbcrnf.F90
r11395 r11987 19 19 USE phycst ! physical constants 20 20 USE sbc_oce ! surface boundary condition variables 21 USE isf ! ice shelf22 21 USE eosbn2 ! Equation Of State 23 22 USE closea ! closed seas … … 127 126 rnf_tsc(:,:,jp_tem) = sst_m(:,:) * rnf(:,:) * r1_rau0 128 127 END WHERE 129 WHERE( sf_t_rnf(1)%fnow(:,:,1) == -222._wp ) ! where fwf comes from melting of ice shelves or iceberg130 rnf_tsc(:,:,jp_tem) = ztfrz(:,:) * rnf(:,:) * r1_rau0 - rnf(:,:) * rLfusisf * r1_rau0_rcp131 END WHERE132 128 ELSE ! use SST as runoffs temperature 133 129 !CEOD River is fresh water so must at least be 0 unless we consider ice -
NEMO/branches/2019/ENHANCE-02_ISF_nemo/src/OCE/SBC/sbcssm.F90
r10425 r11987 60 60 ! 61 61 ! !* 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) 68 64 ! 69 65 IF( nn_fsbc == 1 ) THEN ! Instantaneous surface fields ! -
NEMO/branches/2019/ENHANCE-02_ISF_nemo/src/OCE/TRA/traisf.F90
r11931 r11987 12 12 USE oce ! ocean dynamics and active tracers 13 13 USE dom_oce ! ocean space domain variables 14 USE isf_oce ! Ice shelf variable 14 15 USE phycst ! physical constant 15 16 USE eosbn2 ! Equation Of State 16 USE isf ! Ice shelf variable17 17 USE isfutils ! 18 18 ! -
NEMO/branches/2019/ENHANCE-02_ISF_nemo/src/OCE/TRA/tranxt.F90
r11931 r11987 28 28 USE sbc_oce ! surface boundary condition: ocean 29 29 USE sbcrnf ! river runoffs 30 USE isf 30 USE isf_oce ! ice shelf melting 31 31 USE zdf_oce ! ocean vertical mixing 32 32 USE domvvl ! variable volume -
NEMO/branches/2019/ENHANCE-02_ISF_nemo/src/OCE/ZDF/zdfmxl.F90
r11395 r11987 12 12 !!---------------------------------------------------------------------- 13 13 USE oce ! ocean dynamics and tracers variables 14 USE isf 14 USE isf_oce ! ice shelf 15 15 USE dom_oce ! ocean space and time domain variables 16 16 USE trc_oce , ONLY: l_offline ! ocean space and time domain variables -
NEMO/branches/2019/ENHANCE-02_ISF_nemo/src/OCE/step_oce.F90
r11895 r11987 22 22 USE sbcwave ! Wave intialisation 23 23 24 USE isf 24 USE isf_oce ! ice shelf boundary condition 25 25 USE isfstp ! ice shelf boundary condition (isf_stp routine) 26 26 -
NEMO/branches/2019/ENHANCE-02_ISF_nemo/tests/ISOMIP+/MY_SRC/isfcavgam.F90
r11889 r11987 10 10 !! isfcav_gammats : compute exchange coeficient gamma 11 11 !!---------------------------------------------------------------------- 12 USE isf 12 USE isf_oce 13 13 USE isfutils, ONLY: debug 14 14 USE isftbl , ONLY: isf_tbl … … 57 57 !!--------------------------------------------------------------------- 58 58 ! 59 ! compute velocity in the tbl if needed 59 !========================================== 60 ! 1.: compute velocity in the tbl if needed 61 !========================================== 62 ! 60 63 SELECT CASE ( cn_gammablk ) 61 64 CASE ( 'spe' ) … … 78 81 END SELECT 79 82 ! 80 ! compute gamma 83 !========================================== 84 ! 2.: compute gamma 85 !========================================== 86 ! 81 87 SELECT CASE ( cn_gammablk ) 82 88 CASE ( 'spe' ) ! gamma is constant (specified in namelist) … … 86 92 CALL gammats_AD15 ( zutbl, zvtbl, rCd0_top, rn_vtide**2, pgt, pgs ) 87 93 CASE ( 'hj99' ) ! gamma depends of stability of boundary layer and u* 88 CALL gammats_HJ99 (pttbl, pstbl, zutbl, zvtbl, rCd0_top, r_ke0_top 94 CALL gammats_HJ99 (pttbl, pstbl, zutbl, zvtbl, rCd0_top, r_ke0_top, pqoce, pqfwf, pgt, pgs ) 89 95 CASE DEFAULT 90 96 CALL ctl_stop('STOP','method to compute gamma (cn_gammablk) is unknown (should not see this)') 91 97 END SELECT 92 98 ! 93 ! ouput exchange coeficient and tbl velocity 99 !========================================== 100 ! 3.: output and debug 101 !========================================== 102 ! 94 103 CALL iom_put('isfgammat', pgt(:,:)) 95 104 CALL iom_put('isfgammas', pgs(:,:)) -
NEMO/branches/2019/ENHANCE-02_ISF_nemo/tests/ISOMIP+/MY_SRC/isfstp.F90
r11931 r11987 14 14 !!---------------------------------------------------------------------- 15 15 ! 16 USE isf ! isf variables16 USE isf_oce ! isf variables 17 17 USE isfload, ONLY: isf_load ! ice shelf load 18 18 USE isftbl , ONLY: isf_tbl_lvl ! ice shelf boundary layer … … 26 26 ! 27 27 USE lib_mpp, ONLY: ctl_stop, ctl_nam 28 USE fldread, ONLY: FLD, FLD_N 28 29 USE in_out_manager ! I/O manager 29 30 USE timing … … 62 63 IF( ln_timing ) CALL timing_start('isf') 63 64 ! 65 !======================================================================= 66 ! 1.: compute melt and associated heat fluxes in the ice shelf cavities 67 !======================================================================= 68 ! 64 69 IF ( ln_isfcav_mlt ) THEN 65 70 ! 66 ! before time step71 ! 1.1: before time step 67 72 IF ( kt /= nit000 ) THEN 68 73 risf_cav_tsc_b (:,:,:) = risf_cav_tsc (:,:,:) … … 70 75 END IF 71 76 ! 72 ! compute misfkb, rhisf_tbl, rfrac (deepest level, thickness, fraction of deepest cell affected by tbl)77 ! 1.2: compute misfkb, rhisf_tbl, rfrac (deepest level, thickness, fraction of deepest cell affected by tbl) 73 78 rhisf_tbl_cav(:,:) = rn_htbl * mskisf_cav(:,:) 74 79 CALL isf_tbl_lvl(ht_n, e3t_n, misfkt_cav, misfkb_cav, rhisf_tbl_cav, rfrac_tbl_cav) 75 80 ! 76 ! compute ice shelf melt81 ! 1.3: compute ice shelf melt 77 82 CALL isf_cav( kt, risf_cav_tsc, fwfisf_cav) 78 83 ! 79 84 END IF 80 85 ! 86 !================================================================================= 87 ! 2.: compute melt and associated heat fluxes for not resolved ice shelf cavities 88 !================================================================================= 89 ! 81 90 IF ( ln_isfpar_mlt ) THEN 82 91 ! 83 ! before time step92 ! 2.1: before time step 84 93 IF ( kt /= nit000 ) THEN 85 94 risf_par_tsc_b(:,:,:) = risf_par_tsc(:,:,:) … … 87 96 END IF 88 97 ! 89 ! compute misfkb, rhisf_tbl, rfrac (deepest level, thickness, fraction of deepest cell affected by tbl)90 ! by simplicity, we assume the top level where param applied do not change with time 98 ! 2.2: compute misfkb, rhisf_tbl, rfrac (deepest level, thickness, fraction of deepest cell affected by tbl) 99 ! by simplicity, we assume the top level where param applied do not change with time (done in init part) 91 100 rhisf_tbl_par(:,:) = rhisf0_tbl_par(:,:) 92 101 CALL isf_tbl_lvl(ht_n, e3t_n, misfkt_par, misfkb_par, rhisf_tbl_par, rfrac_tbl_par) 93 102 ! 94 ! compute ice shelf melt103 ! 2.3: compute ice shelf melt 95 104 CALL isf_par( kt, risf_par_tsc, fwfisf_par) 96 105 ! 97 106 END IF 98 107 ! 99 IF ( ln_isfcpl ) THEN 100 ! after step nit000 + 2 we do not need anymore the risfcpl_ arrays 101 IF ( kt == nit000 + 2 ) CALL isf_dealloc_cpl() 102 103 IF ( lrst_oce ) CALL isfcpl_rst_write(kt) 104 END IF 108 !================================================================================== 109 ! 3.: output specific restart variable in case of coupling with an ice sheet model 110 !================================================================================== 111 ! 112 IF ( ln_isfcpl .AND. lrst_oce ) CALL isfcpl_rst_write(kt) 105 113 ! 106 114 IF( ln_timing ) CALL timing_stop('isf') … … 177 185 WRITE(numout,*) ' melt inside the cavity ln_isfcav_mlt = ', ln_isfcav_mlt 178 186 IF ( ln_isfcav_mlt) THEN 179 WRITE(numout,*) ' melt formulation cn_isfcav_mlt= ', TRIM(cn_isfcav_mlt)180 WRITE(numout,*) ' thickness of the top boundary layer rn_htbl= ', rn_htbl181 WRITE(numout,*) ' gamma formulation cn_gammablk= ', TRIM(cn_gammablk)187 WRITE(numout,*) ' melt formulation cn_isfcav_mlt= ', TRIM(cn_isfcav_mlt) 188 WRITE(numout,*) ' thickness of the top boundary layer rn_htbl = ', rn_htbl 189 WRITE(numout,*) ' gamma formulation cn_gammablk = ', TRIM(cn_gammablk) 182 190 IF ( TRIM(cn_gammablk) .NE. 'spe' ) THEN 183 WRITE(numout,*) ' gammat coefficient rn_gammat0 = ', rn_gammat0184 WRITE(numout,*) ' gammas coefficient rn_gammas0 = ', rn_gammas0185 WRITE(numout,*) ' top background ke used (from namdrg_top) rn_vtide**2 = ', rn_vtide**2186 WRITE(numout,*) ' top drag coef. used (from namdrg_top) rn_Cd0 = ', r_Cdmin_top191 WRITE(numout,*) ' gammat coefficient rn_gammat0 = ', rn_gammat0 192 WRITE(numout,*) ' gammas coefficient rn_gammas0 = ', rn_gammas0 193 WRITE(numout,*) ' top background ke used (from namdrg_top) rn_vtide**2 = ', rn_vtide**2 194 WRITE(numout,*) ' top drag coef. used (from namdrg_top) rn_Cd0 = ', r_Cdmin_top 187 195 END IF 188 196 END IF … … 214 222 IF (ln_isfcav) WRITE(numout,*) ' Ice shelf load method cn_isfload = ', TRIM(cn_isfload) 215 223 WRITE(numout,*) '' 224 FLUSH(numout) 216 225 217 226 END IF -
NEMO/branches/2019/ENHANCE-02_ISF_nemo/tests/ISOMIP+/MY_SRC/sbcfwb.F90
r11931 r11987 17 17 USE dom_oce ! ocean space and time domain 18 18 USE sbc_oce ! surface ocean boundary condition 19 USE isf_oce ! ice shelf melting contribution 19 20 USE sbc_ice , ONLY : snwice_mass, snwice_mass_b, snwice_fmass 20 21 USE phycst ! physical constants 21 22 USE sbcrnf ! ocean runoffs 22 USE isf ! ice shelf melting contribution23 23 USE sbcssr ! Sea-Surface damping terms 24 USE tradmp !25 24 ! 26 25 USE in_out_manager ! I/O manager -
NEMO/branches/2019/ENHANCE-02_ISF_nemo/tests/demo_cfgs.txt
r10516 r11987 1 1 CANAL OCE 2 2 ISOMIP OCE 3 ISOMIP+ OCE 3 4 LOCK_EXCHANGE OCE 4 5 OVERFLOW OCE
Note: See TracChangeset
for help on using the changeset viewer.