New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 7540 for branches/UKMO/dev_r5518_GO6_package/NEMOGCM – NEMO

Ignore:
Timestamp:
2017-01-10T15:59:00+01:00 (7 years ago)
Author:
davestorkey
Message:

Add option to coupled model fix for freshwater input from frozen land masses to force
ocean to read ice sheet masses from atmosphere at the beginning of an integration.

Location:
branches/UKMO/dev_r5518_GO6_package/NEMOGCM
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/UKMO/dev_r5518_GO6_package/NEMOGCM/CONFIG/SHARED/namelist_ref

    r6804 r7540  
    380380   ln_coupled_iceshelf_fluxes = .false. ! If true use rate of change of mass of Greenland and Antarctic icesheets to set the  
    381381                                        ! combined magnitude of the iceberg calving and iceshelf melting freshwater fluxes. 
     382   ln_iceshelf_init_atmos     = .true.  ! If true force ocean to initialise icesheet masses from atmospheric values rather than 
     383                                        ! from values in ocean restart file.  
    382384   rn_greenland_calving_fraction = 0.5  ! Set fraction of total freshwater flux for iceberg calving - remainder goes to iceshelf melting. 
    383385   rn_antarctica_calving_fraction = 0.5 ! Set fraction of total freshwater flux for iceberg calving - remainder goes to iceshelf melting. 
  • branches/UKMO/dev_r5518_GO6_package/NEMOGCM/NEMO/OPA_SRC/SBC/sbc_oce.F90

    r6488 r7540  
    155155   LOGICAL, PUBLIC     ::   ln_coupled_iceshelf_fluxes     ! If true use rate of change of mass of Greenland and Antarctic icesheets to set the  
    156156                                                           ! combined magnitude of the iceberg calving and iceshelf melting freshwater fluxes. 
     157   LOGICAL, PUBLIC     ::   ln_iceshelf_init_atmos         ! If true force ocean to initialise iceshelf masses from atmospheric values rather 
     158                                                           ! than values in ocean restart. 
    157159   REAL(wp), PUBLIC    ::   rn_greenland_calving_fraction  ! Set fraction of total freshwater flux for iceberg calving - remainder goes to iceshelf melting. 
    158160   REAL(wp), PUBLIC    ::   rn_antarctica_calving_fraction ! Set fraction of total freshwater flux for iceberg calving - remainder goes to iceshelf melting. 
  • branches/UKMO/dev_r5518_GO6_package/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90

    r7179 r7540  
    240240         &                  sn_rcv_qns , sn_rcv_emp   , sn_rcv_rnf   , sn_rcv_cal   , sn_rcv_iceflx,  & 
    241241         &                  sn_rcv_co2 , sn_rcv_grnm  , sn_rcv_antm  , sn_rcv_ts_ice, nn_cplmodel  ,  & 
    242          &                  ln_usecplmask, ln_coupled_iceshelf_fluxes, rn_greenland_calving_fraction, & 
     242         &                  ln_usecplmask, ln_coupled_iceshelf_fluxes, ln_iceshelf_init_atmos,        & 
     243         &                  rn_greenland_calving_fraction, & 
    243244         &                  rn_antarctica_calving_fraction, rn_iceshelf_fluxes_tolerance 
    244245      !!--------------------------------------------------------------------- 
     
    311312         WRITE(numout,*)'  ln_usecplmask                       = ', ln_usecplmask 
    312313         WRITE(numout,*)'  ln_coupled_iceshelf_fluxes          = ', ln_coupled_iceshelf_fluxes 
     314         WRITE(numout,*)'  ln_iceshelf_init_atmos              = ', ln_iceshelf_init_atmos 
    313315         WRITE(numout,*)'  rn_greenland_calving_fraction       = ', rn_greenland_calving_fraction 
    314316         WRITE(numout,*)'  rn_antarctica_calving_fraction      = ', rn_antarctica_calving_fraction 
     
    13441346         greenland_icesheet_mass_array(:,:) = frcv(jpr_grnm)%z3(:,:,1) 
    13451347         ! take average over ocean points of input array to avoid cumulative error over time 
    1346  
    13471348         ! The following must be bit reproducible over different PE decompositions 
    13481349         zgreenland_icesheet_mass_in = glob_sum( greenland_icesheet_mass_array(:,:) * tmask(:,:,1) ) 
     
    13501351         zgreenland_icesheet_mass_in = zgreenland_icesheet_mass_in / zmask_sum 
    13511352         greenland_icesheet_timelapsed = greenland_icesheet_timelapsed + rdt          
     1353 
     1354         IF( ln_iceshelf_init_atmos .AND. kt == 1 ) THEN 
     1355            ! On the first timestep (of an NRUN) force the ocean to ignore the icesheet masses in the ocean restart 
     1356            ! and take them from the atmosphere to avoid problems with using inconsistent ocean and atmosphere restarts. 
     1357            zgreenland_icesheet_mass_b = zgreenland_icesheet_mass_in 
     1358            greenland_icesheet_mass = zgreenland_icesheet_mass_in 
     1359         ENDIF 
     1360 
    13521361         IF( ABS( zgreenland_icesheet_mass_in - greenland_icesheet_mass ) > zepsilon ) THEN 
    13531362            zgreenland_icesheet_mass_b = greenland_icesheet_mass 
    13541363             
    1355             ! Only update the mass if it has increased 
     1364            ! Only update the mass if it has increased. 
    13561365            IF ( (zgreenland_icesheet_mass_in - greenland_icesheet_mass) > 0.0 ) THEN 
    13571366               greenland_icesheet_mass = zgreenland_icesheet_mass_in 
     
    13771386         zantarctica_icesheet_mass_in = zantarctica_icesheet_mass_in / zmask_sum 
    13781387         antarctica_icesheet_timelapsed = antarctica_icesheet_timelapsed + rdt          
     1388 
     1389         IF( ln_iceshelf_init_atmos .AND. kt == 1 ) THEN 
     1390            ! On the first timestep (of an NRUN) force the ocean to ignore the icesheet masses in the ocean restart 
     1391            ! and take them from the atmosphere to avoid problems with using inconsistent ocean and atmosphere restarts. 
     1392            zantarctica_icesheet_mass_b = zantarctica_icesheet_mass_in 
     1393            antarctica_icesheet_mass = zantarctica_icesheet_mass_in 
     1394         ENDIF 
     1395 
    13791396         IF( ABS( zantarctica_icesheet_mass_in - antarctica_icesheet_mass ) > zepsilon ) THEN 
    13801397            zantarctica_icesheet_mass_b = antarctica_icesheet_mass 
    13811398             
    1382             ! Only update the mass if it has increased 
     1399            ! Only update the mass if it has increased. 
    13831400            IF ( (zantarctica_icesheet_mass_in - antarctica_icesheet_mass) > 0.0 ) THEN 
    13841401               antarctica_icesheet_mass = zantarctica_icesheet_mass_in 
Note: See TracChangeset for help on using the changeset viewer.