Changeset 12576 for NEMO/branches/UKMO/NEMO_4.0.1_icesheet_and_river_coupling/src/OCE/ICB/icbclv.F90
- Timestamp:
- 2020-03-20T12:39:37+01:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/UKMO/NEMO_4.0.1_icesheet_and_river_coupling/src/OCE/ICB/icbclv.F90
r11715 r12576 26 26 USE icb_oce ! iceberg parameters 27 27 28 USE sbc_oce ! for icesheet freshwater input variables 29 USE in_out_manager 30 USE iom 31 28 32 IMPLICIT NONE 29 33 PRIVATE … … 49 53 ! 50 54 REAL(wp) :: zcalving_used, zdist, zfact 55 REAL(wp) :: zgreenland_calving_sum, zantarctica_calving_sum 51 56 INTEGER :: jn, ji, jj ! loop counters 52 57 INTEGER :: imx ! temporary integer for max berg class … … 63 68 ! Heat in units of W/m2, and mask (just in case) 64 69 berg_grid%calving_hflx(:,:) = src_calving_hflx(:,:) * tmask_i(:,:) * tmask(:,:,1) 70 71 IF( lk_oasis) THEN 72 ! nn_coupled_iceshelf_fluxes uninitialised unless lk_oasis=true 73 IF( nn_coupled_iceshelf_fluxes .gt. 0 ) THEN 74 ll_write = ((MOD( kt, sn_cfctl%ptimincr ) == 0) .OR. ( kt == nitend )) .AND. lwp 75 ! Adjust total calving rates so that sum of iceberg calving and iceshelf melting in the northern 76 ! and southern hemispheres equals rate of increase of mass of greenland and antarctic ice sheets 77 ! to preserve total freshwater conservation in coupled models without an active ice sheet model. 78 79 zgreenland_calving_sum = SUM( berg_grid%calving(:,:) * greenland_icesheet_mask(:,:) ) 80 IF( lk_mpp ) CALL mpp_sum( zgreenland_calving_sum ) 81 WHERE( greenland_icesheet_mask(:,:) == 1.0 ) & 82 & berg_grid%calving(:,:) = berg_grid%calving(:,:) * greenland_icesheet_mass_rate_of_change * rn_greenland_calving_fraction & 83 & / ( zgreenland_calving_sum + 1.0e-10_wp ) 84 85 ! check 86 IF(ll_write) WRITE(numout, *) 'Greenland iceberg calving climatology (kg/s) : ',zgreenland_calving_sum 87 zgreenland_calving_sum = SUM( berg_grid%calving(:,:) * greenland_icesheet_mask(:,:) ) 88 IF( lk_mpp ) CALL mpp_sum( zgreenland_calving_sum ) 89 IF(ll_write) WRITE(numout, *) 'Greenland iceberg calving adjusted value (kg/s) : ',zgreenland_calving_sum 90 91 zantarctica_calving_sum = SUM( berg_grid%calving(:,:) * antarctica_icesheet_mask(:,:) ) 92 IF( lk_mpp ) CALL mpp_sum( zantarctica_calving_sum ) 93 WHERE( antarctica_icesheet_mask(:,:) == 1.0 ) & 94 berg_grid%calving(:,:) = berg_grid%calving(:,:) * antarctica_icesheet_mass_rate_of_change * rn_antarctica_calving_fraction & 95 & / ( zantarctica_calving_sum + 1.0e-10_wp ) 96 97 ! check 98 IF(ll_write) WRITE(numout, *) 'Antarctica iceberg calving climatology (kg/s) : ',zantarctica_calving_sum 99 zantarctica_calving_sum = SUM( berg_grid%calving(:,:) * antarctica_icesheet_mask(:,:) ) 100 IF( lk_mpp ) CALL mpp_sum( zantarctica_calving_sum ) 101 IF(ll_write) WRITE(numout, *) 'Antarctica iceberg calving adjusted value (kg/s) : ',zantarctica_calving_sum 102 103 ENDIF 104 ENDIF 105 106 CALL iom_put( 'berg_calve', berg_grid%calving(:,:) ) 107 65 108 66 109 IF( ll_first_call .AND. .NOT. l_restarted_bergs ) THEN ! This is a hack to simplify initialization
Note: See TracChangeset
for help on using the changeset viewer.