- Timestamp:
- 2021-03-22T05:00:21+01:00 (3 years ago)
- Location:
- branches/UKMO/jonnywilliams-u-br854/NEMOGCM
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/jonnywilliams-u-br854/NEMOGCM/CONFIG/SHARED/namelist_ref
r8447 r14627 405 405 rn_antarctica_calving_fraction = 0.5 ! Set fraction of total freshwater flux for iceberg calving - remainder goes to iceshelf melting. 406 406 rn_iceshelf_fluxes_tolerance = 1e-6 ! Fractional threshold for detecting differences in icesheet masses (must be positive definite). 407 rn_antarctica_total_fw_flux_roc = 1.0 ! Rate of change for freshwater flux from ice sheet->ocean (% of orig flux after 1 yr) (if nn_coupled_iceshelf_fluxes=3). 408 rn_greenland_total_fw_flux_roc = 1.0 ! Rate of change for freshwater flux from ice sheet->ocean (% of orig flux after 1 yr) (if nn_coupled_iceshelf_fluxes=3). 407 409 / 408 410 !----------------------------------------------------------------------- -
branches/UKMO/jonnywilliams-u-br854/NEMOGCM/NEMO/OPA_SRC/SBC/sbc_oce.F90
r8046 r14627 153 153 ! sbccpl namelist parameters associated with icesheet freshwater input code. Included here rather than in sbccpl.F90 to 154 154 ! avoid circular dependencies. 155 ! SM 24.05.2018 - added defn for rn_antarctica_total_fw_flux_roc, and comment for option for nn_coupled_iceshelf_fluxes to =3 155 156 INTEGER, PUBLIC :: nn_coupled_iceshelf_fluxes ! =0 : total freshwater input from iceberg calving and ice shelf basal melting 156 157 ! taken from climatologies used (no action in coupling routines). … … 159 160 ! =2 : specify constant freshwater inputs in this namelist to set the combined 160 161 ! magnitude of iceberg calving and iceshelf melting freshwater fluxes. 161 LOGICAL, PUBLIC :: ln_iceshelf_init_atmos ! If true force ocean to initialise iceshelf masses from atmospheric values rather 162 ! than values in ocean restart (applicable if nn_coupled_iceshelf_fluxes=1). 163 REAL(wp), PUBLIC :: rn_greenland_total_fw_flux ! Constant total rate of freshwater input (kg/s) for Greenland (if nn_coupled_iceshelf_fluxes=2) 164 REAL(wp), PUBLIC :: rn_greenland_calving_fraction ! Set fraction of total freshwater flux for iceberg calving - remainder goes to iceshelf melting. 165 REAL(wp), PUBLIC :: rn_antarctica_total_fw_flux ! Constant total rate of freshwater input (kg/s) for Antarctica (if nn_coupled_iceshelf_fluxes=2) 166 REAL(wp), PUBLIC :: rn_antarctica_calving_fraction ! Set fraction of total freshwater flux for iceberg calving - remainder goes to iceshelf melting. 167 REAL(wp), PUBLIC :: rn_iceshelf_fluxes_tolerance ! Absolute tolerance for detecting differences in icesheet masses. 162 ! =3 : as for =2, but with a rate of change also specified in the namelist 163 LOGICAL, PUBLIC :: ln_iceshelf_init_atmos ! If true force ocean to initialise iceshelf masses from atmospheric values rather 164 ! than values in ocean restart (applicable if nn_coupled_iceshelf_fluxes=1). 165 REAL(wp), PUBLIC :: rn_greenland_total_fw_flux ! Constant total rate of freshwater input (kg/s) for Greenland 166 ! (if nn_coupled_iceshelf_fluxes=2), or starting rate if nn_coupled_iceshelf_fluxes=3 167 REAL(wp), PUBLIC :: rn_greenland_calving_fraction ! Set fraction of total freshwater flux for iceberg calving - remainder goes to iceshelf melting. 168 REAL(wp), PUBLIC :: rn_greenland_total_fw_flux_roc ! As rn_antarctica_total_fw_flux_roc but for Greenland Ice Sheet 169 REAL(wp), PUBLIC :: rn_antarctica_total_fw_flux ! Constant total rate of freshwater input (kg/s) for Antarctica if 170 ! nn_coupled_iceshelf_fluxes=2, or starting rate if nn_coupled_iceshelf_fluxes=3 171 REAL(wp), PUBLIC :: rn_antarctica_calving_fraction ! Set fraction of total freshwater flux for iceberg calving - remainder goes to iceshelf melting. 172 REAL(wp), PUBLIC :: rn_iceshelf_fluxes_tolerance ! Absolute tolerance for detecting differences in icesheet masses. 173 REAL(wp), PUBLIC :: rn_antarctica_total_fw_flux_roc ! Rate of change for ice sheet->ocean freshwater flux (% of orig flux after 1 yr, 174 ! so 1.1 is 10% inc/yr, 1.0 is no change, -1.1 is a 10% decr/yr) if nn_coupled_iceshelf_fluxes=3 168 175 169 176 !! * Substitutions -
branches/UKMO/jonnywilliams-u-br854/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90
r8427 r14627 8 8 !! 3.1 ! 2009_02 (G. Madec, S. Masson, E. Maisonave, A. Caubel) generic coupled interface 9 9 !! 3.4 ! 2011_11 (C. Harris) more flexibility + multi-category fields 10 !! 3.5 ! 2019_05 SM - some changes for FW from Ant Ice Sheet to be allowed to vary 10 11 !!---------------------------------------------------------------------- 11 12 !!---------------------------------------------------------------------- … … 239 240 INTEGER :: inum 240 241 REAL(wp), POINTER, DIMENSION(:,:) :: zacs, zaos 241 !! 242 !! SM 28.5.2018 added rn_antarctica_total_fw_flux_roc and rn_greenland_total_fw_flux_roc tbr from namelist 242 243 NAMELIST/namsbc_cpl/ sn_snd_temp, sn_snd_alb , sn_snd_thick , sn_snd_crt , sn_snd_co2, & 243 244 & sn_snd_cond, sn_snd_mpnd , sn_snd_sstfrz, sn_snd_thick1, & … … 247 248 & ln_usecplmask, nn_coupled_iceshelf_fluxes, ln_iceshelf_init_atmos, & 248 249 & rn_greenland_total_fw_flux, rn_greenland_calving_fraction, & 249 & rn_antarctica_total_fw_flux, rn_antarctica_calving_fraction, rn_iceshelf_fluxes_tolerance 250 & rn_antarctica_total_fw_flux, rn_antarctica_calving_fraction, rn_iceshelf_fluxes_tolerance, & 251 & rn_antarctica_total_fw_flux_roc, rn_greenland_total_fw_flux_roc 250 252 !!--------------------------------------------------------------------- 251 253 … … 322 324 WRITE(numout,*)' rn_antarctica_total_fw_flux = ', rn_antarctica_total_fw_flux 323 325 WRITE(numout,*)' rn_greenland_calving_fraction = ', rn_greenland_calving_fraction 326 WRITE(numout,*)' rn_greenland_total_fw_flux_roc = ', rn_greenland_total_fw_flux_roc ! SM added 28.05.2018 324 327 WRITE(numout,*)' rn_antarctica_calving_fraction = ', rn_antarctica_calving_fraction 325 328 WRITE(numout,*)' rn_iceshelf_fluxes_tolerance = ', rn_iceshelf_fluxes_tolerance 329 WRITE(numout,*)' rn_antarctica_total_fw_flux_roc = ', rn_antarctica_total_fw_flux_roc ! SM added 28.05.2018 326 330 ENDIF 327 331 … … 996 1000 997 1001 998 SUBROUTINE sbc_cpl_rcv( kt, k_fsbc, k_ice ) 1002 SUBROUTINE sbc_cpl_rcv( kt, k_fsbc, k_ice ) 999 1003 !!---------------------------------------------------------------------- 1000 1004 !! *** ROUTINE sbc_cpl_rcv *** … … 1403 1407 IF( zgreenland_icesheet_mass_b /= 0.0 ) & 1404 1408 & greenland_icesheet_mass_rate_of_change = ( greenland_icesheet_mass - zgreenland_icesheet_mass_b ) / greenland_icesheet_timelapsed 1405 greenland_icesheet_timelapsed = 0.0_wp1406 ENDIF1409 greenland_icesheet_timelapsed = 0.0_wp 1410 ENDIF 1407 1411 IF(lwp) WRITE(numout,*) 'Greenland icesheet mass (kg) read in is ', zgreenland_icesheet_mass_in 1408 1412 IF(lwp) WRITE(numout,*) 'Greenland icesheet mass (kg) used is ', greenland_icesheet_mass … … 1411 1415 ELSE IF ( nn_coupled_iceshelf_fluxes == 2 ) THEN 1412 1416 greenland_icesheet_mass_rate_of_change = rn_greenland_total_fw_flux 1417 ! SM - added 24.05.2018 1418 ! 3rd option to allow for a variable rate of fw flux from antarctic ice sheet to ocean 1419 ! A 10% increase per year is equivalent to an increase 1420 ! after n sec by a factor of 1.1**(n/31104000) where there are 31104000 secs in 1 model yr 1421 ! namelist value for rn_greenland_total_fw_flux_roc is 1.1 for 10% inc/yr, 1.0 for no inc, -1.1 for 10% decr/yr 1422 ELSE IF ( nn_coupled_iceshelf_fluxes ==3 ) THEN 1423 IF( ln_iceshelf_init_atmos .AND. kt == 1 ) THEN 1424 ! On the first timestep (of an NRUN) force the ocean to ignore the icesheet masses in the ocean restart 1425 ! and take them from the atmosphere to avoid problems with using inconsistent ocean and atmosphere restarts. 1426 zgreenland_icesheet_mass_b = zgreenland_icesheet_mass_in 1427 greenland_icesheet_mass = zgreenland_icesheet_mass_in 1428 ENDIF 1429 1430 greenland_icesheet_mass_rate_of_change = rn_greenland_total_fw_flux*(rn_greenland_total_fw_flux_roc**(kt*rdt/31104000.0)) 1413 1431 ENDIF 1414 1432 … … 1448 1466 ELSE IF ( nn_coupled_iceshelf_fluxes == 2 ) THEN 1449 1467 antarctica_icesheet_mass_rate_of_change = rn_antarctica_total_fw_flux 1468 ! SM - added 24.05.2018 1469 ! 3rd option to allow for a variable rate of fw flux from antarctic ice sheet to ocean 1470 ! A 10% increase per year is equivalent to an increase 1471 ! after n sec by a factor of 1.1**(n/31104000) where there are 31104000 secs in 1 model yr 1472 ! namelist value forrn_antarctica_total_fw_flux_roc is 1.1 for 10% inc/yr, 1.0 for no inc, -1.1 for 10% decr/yr 1473 ELSE IF ( nn_coupled_iceshelf_fluxes ==3 ) THEN 1474 IF( ln_iceshelf_init_atmos .AND. kt == 1 ) THEN 1475 ! On the first timestep (of an NRUN) force the ocean to ignore the icesheet masses in the ocean restart 1476 ! and take them from the atmosphere to avoid problems with using inconsistent ocean and atmosphere restarts. 1477 zantarctica_icesheet_mass_b = zantarctica_icesheet_mass_in 1478 antarctica_icesheet_mass = zantarctica_icesheet_mass_in 1479 ENDIF 1480 1481 antarctica_icesheet_mass_rate_of_change = rn_antarctica_total_fw_flux*(rn_antarctica_total_fw_flux_roc**(kt*rdt/31104000.0)) 1450 1482 ENDIF 1451 1483 … … 1987 2019 1988 2020 #else 2021 1989 2022 ! clem: this formulation is certainly wrong... but better than it was... 1990 2023 -
branches/UKMO/jonnywilliams-u-br854/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_cice.F90
r8400 r14627 38 38 USE ice_gather_scatter 39 39 USE ice_calendar, only: dt 40 # 40 #if defined key_cice4 41 41 USE ice_state, only: aice,aicen,uvel,vvel,vsno,vsnon,vice,vicen 42 42 USE ice_flux, only: strax,stray,strocnx,strocny,frain,fsnow, & … … 57 57 flatn_f,fsurfn_f,fcondtopn_f, & 58 58 #ifdef key_asminc 59 daice_da,fresh_da,fsalt_da, &59 daice_da,fresh_da,fsalt_da, & 60 60 #endif 61 61 uatm,vatm,wind,fsw,flw,Tair,potT,Qa,rhoa,zlvl, & … … 65 65 !! - at CICE5.0, hadax/r1015_GSI8_with_GSI7 66 66 !! - at CICE5.1.2, hadax/vn5.1.2_GSI8 67 keffn_top,Tn_top 67 keffn_top,Tn_top,a_to_ocn_htflux,tgrid_stressmag 68 68 69 69 USE ice_therm_shared, only: calc_Tsfc, heat_capacity … … 236 236 ENDDO 237 237 ENDIF 238 238 239 239 240 ! T point to U point … … 302 303 ENDIF 303 304 ENDIF 304 305 306 305 307 CALL wrk_dealloc( jpi,jpj, ztmp1, ztmp2 ) 306 308 … … 375 377 ENDDO 376 378 CALL nemo2cice(ztmp,stray,'F', -1. ) 379 380 ! share taum with CICE to use as surface stress for ice-free cells 381 ! (to determine whether new ice should form as grease or nilas) 382 CALL nemo2cice(taum,tgrid_stressmag,'T', 1. ) 383 377 384 378 385 … … 397 404 ztmpn(:,:,jl)=qla_ice(:,:,jl)*a_i(:,:,jl) 398 405 ENDDO 399 406 ELSE 400 407 !In coupled mode - qla_ice calculated in sbc_cpl for each category 401 408 ztmpn(:,:,1:ncat)=qla_ice(:,:,1:ncat) … … 422 429 ENDIF 423 430 CALL nemo2cice(ztmp,fsurfn_f(:,:,jl,:),'T', 1. ) 424 ENDDO 431 432 ENDDO 433 434 ! atmos->ocn heat flux needed by CICE for freeze/melt of grease 435 ! qns the sum of sensible, latent and long wave heat fluxes plus the heat content 436 ! of the mass exchange with the atmosphere and sea-ice (trend calc'd in trasbc.F90?) 437 ! qsr is the penetrative part of the heat flux (trend calc'd in traqsr.F90?) 438 ztmp(:,:) = qns_tot(:,:) + qsr_tot(:,:) 439 CALL nemo2cice(ztmp,a_to_ocn_htflux,'T',1.) 440 425 441 426 442 ELSE IF (ksbc == jp_core) THEN … … 626 642 taum(:,:)=(1.0-fr_i(:,:))*taum(:,:)+fr_i(:,:)*SQRT(ztmp1**2. + ztmp2**2.) 627 643 644 645 628 646 ! Freshwater fluxes 629 647 -
branches/UKMO/jonnywilliams-u-br854/NEMOGCM/TOOLS/COMPILE/tools.txt
r6487 r14627 1 SIREN1 REBUILD_NEMO
Note: See TracChangeset
for help on using the changeset viewer.