Changeset 11987 for NEMO/branches/2019/ENHANCE-02_ISF_nemo/src/OCE/ISF
- Timestamp:
- 2019-11-27T15:50:29+01:00 (4 years ago)
- Location:
- NEMO/branches/2019/ENHANCE-02_ISF_nemo/src/OCE/ISF
- Files:
-
- 13 edited
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
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 -------------------------------------
Note: See TracChangeset
for help on using the changeset viewer.