Changeset 6389 for branches/UKMO/dev_r5518_Surge_Modelling
- Timestamp:
- 2016-03-15T11:31:28+01:00 (8 years ago)
- Location:
- branches/UKMO/dev_r5518_Surge_Modelling/NEMOGCM
- Files:
-
- 1 added
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/dev_r5518_Surge_Modelling/NEMOGCM/CONFIG/AMM7_SURGE/EXP00/iodef.xml
r6270 r6389 115 115 <variable id="buffer_server_factor_size" type="integer">2</variable> 116 116 <variable id="info_level" type="integer">0</variable> 117 <variable id="using_server" type="boolean"> false</variable>117 <variable id="using_server" type="boolean">true</variable> 118 118 <variable id="using_oasis" type="boolean">false</variable> 119 119 <variable id="oasis_codes_id" type="string" >oceanx</variable> -
branches/UKMO/dev_r5518_Surge_Modelling/NEMOGCM/CONFIG/AMM7_SURGE/EXP00/namelist_cfg
r5811 r6389 74 74 &namsplit ! time splitting parameters ("key_dynspg_ts") 75 75 !----------------------------------------------------------------------- 76 ln_bt_nn_auto = . FALSE.! Set nn_baro automatically to be just below76 ln_bt_nn_auto = .true. ! Set nn_baro automatically to be just below 77 77 ! a user defined maximum courant number (rn_bt_cmax) 78 78 nn_baro = 30 ! Number of iterations of barotropic mode … … 94 94 nn_fsbc = 1 ! frequency of surface boundary condition computation 95 95 ! (also = the frequency of sea-ice model call) 96 ln_ ana= .true. ! flux formulation (T => fill namsbc_flx )96 ln_sbcsurge = .true. ! flux formulation (T => fill namsbc_flx ) 97 97 ln_blk_core = .false. ! CORE bulk formulation (T => fill namsbc_core) 98 98 nn_ice = 0 ! =0 no ice boundary condition , … … 131 131 ln_taudif = .false. ! HF tau contribution: use "mean of stress module - module of the mean stress" data 132 132 rn_pfac = 1. ! multiplicative factor for precipitation (total & snow) 133 ln_charnock = .true. ! logical flag for charnock wind stress in surge model(true) or not(false)134 133 / 135 134 !----------------------------------------------------------------------- 136 135 &namsbc_mfs ! namsbc_mfs MFS bulk formulae 137 136 !----------------------------------------------------------------------- 137 / 138 !----------------------------------------------------------------------- 139 &namsbc_surge ! namsbc_surge surge model fluxes 140 !----------------------------------------------------------------------- 141 ! ! file name ! frequency (hours) ! variable ! time interp. ! clim ! 'yearly'/ ! weights ! rotation ! 142 ! ! ! (if <0 months) ! name ! (logical) ! (T/F) ! 'monthly' ! filename ! pairing ! 143 sn_wndi = 'windspd_u_amm7' , 3 , 'U10' , .true. , .false. , 'daily' ,'' , '' 144 sn_wndj = 'windspd_v_amm7' , 3 , 'V10' , .true. , .false. , 'daily' ,'' , '' 145 cn_dir = './fluxes/' ! root directory for the location of the bulk files 146 rn_vfac = 1. ! multiplicative factor for precipitation (total & snow) 147 rn_charn_const = 0.0275 138 148 / 139 149 !----------------------------------------------------------------------- … … 251 261 nn_bfr = 2 ! type of bottom friction : = 0 : free slip, = 1 : linear friction 252 262 ! = 2 : nonlinear friction 253 rn_bfri2 = 2. 5e-3 ! bottom drag coefficient (non linear case)263 rn_bfri2 = 2.4e-3 ! bottom drag coefficient (non linear case) 254 264 rn_bfeb2 = 0.0e0 ! bottom turbulent kinetic energy background (m2/s2) 255 265 ln_loglayer = .false. ! loglayer bottom friction (only effect when nn_bfr = 2) -
branches/UKMO/dev_r5518_Surge_Modelling/NEMOGCM/CONFIG/AMM7_SURGE/EXP00/namelist_ref
r6269 r6389 298 298 299 299 cn_dir = './' ! root directory for the location of the flux files 300 ln_charnock = .true. ! logical flag for charnock wind stress in surge model(true) or not(false) 301 rn_charn_const=0.0275 ! Charnock coefficient 300 302 / 301 303 !----------------------------------------------------------------------- … … 338 340 ! in the calculation of the wind stress (0.=absolute winds or 1.=relative winds) 339 341 ln_charnock = .false. ! logical flag for charnock wind stress in surge model(true) or not(false) 342 rn_charn_const=0.0275 ! Charnock coefficient 340 343 / 341 344 !----------------------------------------------------------------------- … … 353 356 354 357 cn_dir = './ECMWF/' ! root directory for the location of the bulk files 358 / 359 !----------------------------------------------------------------------- 360 &namsbc_surge ! namsbc_surge surge model fluxes 361 !----------------------------------------------------------------------- 362 ! ! file name ! frequency (hours) ! variable ! time interp. ! clim ! 'yearly'/ ! weights ! rotation ! 363 ! ! ! (if <0 months) ! name ! (logical) ! (T/F) ! 'monthly' ! filename ! pairing ! 364 sn_wndi = 'windspd_u_amm7' , 3 , 'U10' , .true. , .false. , 'daily' ,'' , '' 365 sn_wndj = 'windspd_v_amm7' , 3 , 'V10' , .true. , .false. , 'daily' ,'' , '' 366 cn_dir = './fluxes/' ! root directory for the location of the bulk files 367 rn_vfac = 1. ! multiplicative factor for precipitation (total & snow) 368 rn_charn_const = 0.0275 355 369 / 356 370 !----------------------------------------------------------------------- -
branches/UKMO/dev_r5518_Surge_Modelling/NEMOGCM/NEMO/OPA_SRC/SBC/sbc_oce.F90
r5407 r6389 35 35 LOGICAL , PUBLIC :: ln_blk_core !: CORE bulk formulation 36 36 LOGICAL , PUBLIC :: ln_blk_mfs !: MFS bulk formulation 37 LOGICAL , PUBLIC :: ln_sbcsurge !: Surge model formulation 37 38 #if defined key_oasis3 38 39 LOGICAL , PUBLIC :: lk_oasis = .TRUE. !: OASIS used … … 80 81 INTEGER , PUBLIC, PARAMETER :: jp_mfs = 6 !: MFS bulk formulation 81 82 INTEGER , PUBLIC, PARAMETER :: jp_none = 7 !: for OPA when doing coupling via SAS module 83 INTEGER , PUBLIC, PARAMETER :: jp_sbcsurge= 8 !: for OPA when doing coupling via SAS module 82 84 INTEGER , PUBLIC, PARAMETER :: jp_esopa = -1 !: esopa test, ALL formulations 83 85 -
branches/UKMO/dev_r5518_Surge_Modelling/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_core.F90
r5954 r6389 91 91 REAL(wp) :: rn_zqt ! z(q,t) : height of humidity and temperature measurements 92 92 REAL(wp) :: rn_zu ! z(u) : height of wind measurements 93 LOGICAL :: ln_charnock ! logical flag for charnock wind stress in surge model(true) or not(false)94 93 95 94 !! * Substitutions … … 152 151 & sn_wndi, sn_wndj, sn_humi , sn_qsr , & 153 152 & sn_qlw , sn_tair, sn_prec , sn_snow, & 154 & sn_tdif, rn_zqt , rn_zu , ln_charnock153 & sn_tdif, rn_zqt , rn_zu 155 154 !!--------------------------------------------------------------------- 156 155 ! … … 248 247 INTEGER :: ji, jj ! dummy loop indices 249 248 REAL(wp) :: zcoef_qsatw, zztmp ! local variable 250 REAL(wp) :: z_z0, z_Cd1 ! local variable251 REAL(wp) :: i ! local variable252 REAL(wp) :: charn_const=0.0275 ! local variable253 249 REAL(wp), DIMENSION(:,:), POINTER :: zwnd_i, zwnd_j ! wind speed components at T-point 254 250 REAL(wp), DIMENSION(:,:), POINTER :: zqsatw ! specific humidity at pst … … 307 303 ! ocean albedo assumed to be constant + modify now Qsr to include the diurnal cycle ! Short Wave 308 304 zztmp = 1. - albo 309 #if defined key_surge310 qsr(:,:)=0._wp311 zqlw(:,:) = 0._wp312 #else313 305 IF( ln_dm2dc ) THEN ; qsr(:,:) = zztmp * sbc_dcy( sf(jp_qsr)%fnow(:,:,1) ) * tmask(:,:,1) 314 306 ELSE ; qsr(:,:) = zztmp * sf(jp_qsr)%fnow(:,:,1) * tmask(:,:,1) … … 316 308 317 309 zqlw(:,:) = ( sf(jp_qlw)%fnow(:,:,1) - Stef * zst(:,:)*zst(:,:)*zst(:,:)*zst(:,:) ) * tmask(:,:,1) ! Long Wave 318 #endif319 310 ! ----------------------------------------------------------------------------- ! 320 311 ! II Turbulent FLUXES ! 321 312 ! ----------------------------------------------------------------------------- ! 322 IF (ln_charnock) THEN 323 Cd(:,:)=0.0001_wp 324 DO jj = 1,jpj 325 DO ji = 1,jpi 326 z_Cd1=0._wp 327 i=1 328 !Iterate 329 DO WHILE((abs(Cd(ji,jj)-z_Cd1))>1E-6) 330 z_Cd1=Cd(ji,jj) 331 z_z0=charn_const*z_Cd1*wndm(ji,jj)**2/grav 332 Cd(ji,jj)=(0.41_wp/log(10._wp/z_z0))**2 333 i=i+1 334 ENDDO 335 ENDDO 336 ENDDO 337 ELSE 338 339 ! ... specific humidity at SST and IST 340 zqsatw(:,:) = zcoef_qsatw * EXP( -5107.4 / zst(:,:) ) 341 342 ! ... NCAR Bulk formulae, computation of Cd, Ch, Ce at T-point : 343 CALL turb_core_2z( rn_zqt, rn_zu, zst, sf(jp_tair)%fnow, zqsatw, sf(jp_humi)%fnow, wndm, & 344 & Cd, Ch, Ce, zt_zu, zq_zu ) 345 346 ENDIF 313 314 ! ... specific humidity at SST and IST 315 zqsatw(:,:) = zcoef_qsatw * EXP( -5107.4 / zst(:,:) ) 316 317 ! ... NCAR Bulk formulae, computation of Cd, Ch, Ce at T-point : 318 CALL turb_core_2z( rn_zqt, rn_zu, zst, sf(jp_tair)%fnow, zqsatw, sf(jp_humi)%fnow, wndm, & 319 & Cd, Ch, Ce, zt_zu, zq_zu ) 347 320 348 321 ! ... tau module, i and j component … … 379 352 ! Turbulent fluxes over ocean 380 353 ! ----------------------------- 381 #if ! defined key_surge382 354 IF( ABS( rn_zu - rn_zqt) < 0.01_wp ) THEN 383 355 !! q_air and t_air are (or "are almost") given at 10m (wind reference height) … … 391 363 ENDIF 392 364 zqla (:,:) = Lv * zevap(:,:) ! Latent Heat 393 #endif394 365 395 366 IF(ln_ctl) THEN … … 408 379 ! ----------------------------------------------------------------------------- ! 409 380 ! 410 #if defined key_surge411 emp (:,:) = 0._wp412 qns(:,:) = 0._wp413 #else414 381 emp (:,:) = ( zevap(:,:) & ! mass flux (evap. - precip.) 415 382 & - sf(jp_prec)%fnow(:,:,1) * rn_pfac ) * tmask(:,:,1) … … 422 389 & + sf(jp_snow)%fnow(:,:,1) * rn_pfac & ! add solid precip heat content at min(Tair,Tsnow) 423 390 & * ( MIN( sf(jp_tair)%fnow(:,:,1), rt0_snow ) - rt0 ) * cpic * tmask(:,:,1) 424 #endif425 391 ! 426 392 #if defined key_lim3 -
branches/UKMO/dev_r5518_Surge_Modelling/NEMOGCM/NEMO/OPA_SRC/SBC/sbcmod.F90
r5954 r6389 34 34 USE sbcblk_core ! surface boundary condition: bulk formulation : CORE 35 35 USE sbcblk_mfs ! surface boundary condition: bulk formulation : MFS 36 USE sbcsurge ! surface boundary condition: charnock forumaltion for surge model 36 37 USE sbcice_if ! surface boundary condition: ice-if sea-ice model 37 38 USE sbcice_lim ! surface boundary condition: LIM 3.0 sea-ice model … … 86 87 INTEGER :: icpt ! local integer 87 88 !! 88 NAMELIST/namsbc/ nn_fsbc , ln_ana , ln_flx, ln_blk_clio, ln_blk_core, ln_ mixcpl, &89 NAMELIST/namsbc/ nn_fsbc , ln_ana , ln_flx, ln_blk_clio, ln_blk_core, ln_sbcsurge, ln_mixcpl, & 89 90 & ln_blk_mfs, ln_apr_dyn, nn_ice, nn_ice_embd, ln_dm2dc , ln_rnf , & 90 91 & ln_ssr , nn_isf , nn_fwb, ln_cdgw , ln_wave , ln_sdw , & … … 130 131 WRITE(numout,*) ' CORE bulk formulation ln_blk_core = ', ln_blk_core 131 132 WRITE(numout,*) ' MFS bulk formulation ln_blk_mfs = ', ln_blk_mfs 133 WRITE(numout,*) ' surge formulation ln_sbcsurge = ', ln_sbcsurge 132 134 WRITE(numout,*) ' ocean-atmosphere coupled formulation ln_cpl = ', ln_cpl 133 135 WRITE(numout,*) ' forced-coupled mixed formulation ln_mixcpl = ', ln_mixcpl … … 174 176 IF( ln_mixcpl .AND. nn_components /= jp_iam_nemo ) & 175 177 & CALL ctl_stop( 'the forced-coupled mixed mode (ln_mixcpl) is not yet working with sas-opa coupling via oasis' ) 178 IF ( lk_surge .and. .not. ( ln_sbcsurge .or. ln_ana ) ) & 179 & CALL ctl_stop( ' surge model only compatible with analytical fluxes or surge formulae' ) 176 180 177 181 ! ! allocate sbc arrays … … 237 241 IF( ln_blk_core ) THEN ; nsbc = jp_core ; icpt = icpt + 1 ; ENDIF ! CORE bulk formulation 238 242 IF( ln_blk_mfs ) THEN ; nsbc = jp_mfs ; icpt = icpt + 1 ; ENDIF ! MFS bulk formulation 243 IF( ln_sbcsurge ) THEN ; nsbc = jp_sbcsurge; icpt = icpt + 1 ; ENDIF ! MFS bulk formulation 239 244 IF( ll_purecpl ) THEN ; nsbc = jp_purecpl ; icpt = icpt + 1 ; ENDIF ! Pure Coupled formulation 240 245 IF( cp_cfg == 'gyre') THEN ; nsbc = jp_gyre ; ENDIF ! GYRE analytical formulation … … 250 255 nstop = nstop + 1 251 256 ENDIF 252 IF ( lk_surge .and. .not. ( ln_blk_core .or. ln_ana ) ) &253 & CALL ctl_stop( ' surge model only compatible with analytical fluxes or core formulae' )254 257 IF(lwp) THEN 255 258 WRITE(numout,*) … … 262 265 IF( nsbc == jp_purecpl ) WRITE(numout,*) ' pure coupled formulation' 263 266 IF( nsbc == jp_mfs ) WRITE(numout,*) ' MFS Bulk formulation' 267 IF( nsbc == jp_sbcsurge) WRITE(numout,*) ' Surge formulation' 264 268 IF( nsbc == jp_none ) WRITE(numout,*) ' OPA coupled to SAS via oasis' 265 269 IF( ln_mixcpl ) WRITE(numout,*) ' + forced-coupled mixed formulation' … … 372 376 ! 373 377 CASE( jp_mfs ) ; CALL sbc_blk_mfs ( kt ) ! bulk formulation : MFS for the ocean 378 CASE( jp_sbcsurge ); CALL sbc_surge ( kt ) ! surge formulation 374 379 CASE( jp_none ) 375 380 IF( nn_components == jp_iam_opa ) &
Note: See TracChangeset
for help on using the changeset viewer.