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 8046 – NEMO

Changeset 8046


Ignore:
Timestamp:
2017-05-19T12:07:10+02:00 (7 years ago)
Author:
davestorkey
Message:

UKMO/dev_r5518_GO6_package branch: Add extra option for freshwater input from ice shelves in coupled models.

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

Legend:

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

    r7962 r8046  
    378378   ln_usecplmask = .false.   !  use a coupling mask file to merge data received from several models 
    379379                             !   -> file cplmask.nc with the float variable called cplmask (jpi,jpj,nn_cplmodel) 
    380    ln_coupled_iceshelf_fluxes = .false. ! If true use rate of change of mass of Greenland and Antarctic icesheets to set the  
    381                                         ! combined magnitude of the iceberg calving and iceshelf melting freshwater fluxes. 
     380   nn_coupled_iceshelf_fluxes = 0 ! =0 : total freshwater input from iceberg calving and ice shelf basal melting  
     381                                  ! taken from climatologies used (no action in coupling routines). 
     382                                  ! =1 :  use rate of change of mass of Greenland and Antarctic icesheets to set the  
     383                                  ! combined magnitude of the iceberg calving and iceshelf melting freshwater fluxes. 
     384                                  ! =2 :  specify constant freshwater inputs in this namelist to set the combined 
     385                                  ! magnitude of iceberg calving and iceshelf melting freshwater fluxes. 
    382386   ln_iceshelf_init_atmos     = .true.  ! If true force ocean to initialise icesheet masses from atmospheric values rather than 
    383387                                        ! from values in ocean restart file.  
     388   rn_greenland_total_fw_flux   = 0.0  ! Constant total rate of freshwater input (kg/s) for Greenland (if nn_coupled_iceshelf_fluxes=2)  
    384389   rn_greenland_calving_fraction = 0.5  ! Set fraction of total freshwater flux for iceberg calving - remainder goes to iceshelf melting. 
     390   rn_antarctica_total_fw_flux  = 0.0  ! Constant total rate of freshwater input (kg/s) for Antarctica (if nn_coupled_iceshelf_fluxes=2) 
    385391   rn_antarctica_calving_fraction = 0.5 ! Set fraction of total freshwater flux for iceberg calving - remainder goes to iceshelf melting. 
    386392   rn_iceshelf_fluxes_tolerance = 1e-6  ! Fractional threshold for detecting differences in icesheet masses (must be positive definite). 
  • branches/UKMO/dev_r5518_GO6_package/NEMOGCM/NEMO/OPA_SRC/ICB/icbclv.F90

    r6488 r8046  
    6666 
    6767      IF( lk_oasis) THEN 
    68       ! ln_coupled_iceshelf_fluxes uninitialised unless lk_oasis=true 
    69       IF( ln_coupled_iceshelf_fluxes ) THEN 
     68      ! nn_coupled_iceshelf_fluxes uninitialised unless lk_oasis=true 
     69      IF( nn_coupled_iceshelf_fluxes .gt. 0 ) THEN 
    7070 
    7171        ! Adjust total calving rates so that sum of iceberg calving and iceshelf melting in the northern 
  • branches/UKMO/dev_r5518_GO6_package/NEMOGCM/NEMO/OPA_SRC/IOM/restart.F90

    r6755 r8046  
    158158#endif 
    159159                     IF( lk_oasis) THEN 
    160                      ! ln_coupled_iceshelf_fluxes uninitialised unless lk_oasis=true 
    161                      IF( ln_coupled_iceshelf_fluxes ) THEN 
     160                     ! nn_coupled_iceshelf_fluxes uninitialised unless lk_oasis=true 
     161                     IF( nn_coupled_iceshelf_fluxes .eq. 1 ) THEN 
    162162                        CALL iom_rstput( kt, nitrst, numrow, 'greenland_icesheet_mass', greenland_icesheet_mass ) 
    163163                        CALL iom_rstput( kt, nitrst, numrow, 'greenland_icesheet_timelapsed', greenland_icesheet_timelapsed ) 
  • branches/UKMO/dev_r5518_GO6_package/NEMOGCM/NEMO/OPA_SRC/SBC/sbc_oce.F90

    r7540 r8046  
    153153   ! sbccpl namelist parameters associated with icesheet freshwater input code. Included here rather than in sbccpl.F90 to  
    154154   ! avoid circular dependencies. 
    155    LOGICAL, PUBLIC     ::   ln_coupled_iceshelf_fluxes     ! If true use rate of change of mass of Greenland and Antarctic icesheets to set the  
     155   INTEGER, PUBLIC     ::   nn_coupled_iceshelf_fluxes     ! =0 : total freshwater input from iceberg calving and ice shelf basal melting  
     156                                                           ! taken from climatologies used (no action in coupling routines). 
     157                                                           ! =1 :  use rate of change of mass of Greenland and Antarctic icesheets to set the  
    156158                                                           ! combined magnitude of the iceberg calving and iceshelf melting freshwater fluxes. 
     159                                                           ! =2 :  specify constant freshwater inputs in this namelist to set the combined 
     160                                                           ! magnitude of iceberg calving and iceshelf melting freshwater fluxes. 
    157161   LOGICAL, PUBLIC     ::   ln_iceshelf_init_atmos         ! If true force ocean to initialise iceshelf masses from atmospheric values rather 
    158                                                            ! than values in ocean restart. 
     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)  
    159164   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)  
    160166   REAL(wp), PUBLIC    ::   rn_antarctica_calving_fraction ! Set fraction of total freshwater flux for iceberg calving - remainder goes to iceshelf melting. 
    161167   REAL(wp), PUBLIC    ::   rn_iceshelf_fluxes_tolerance   ! Absolute tolerance for detecting differences in icesheet masses.  
  • branches/UKMO/dev_r5518_GO6_package/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90

    r7540 r8046  
    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, ln_iceshelf_init_atmos,        & 
    243          &                  rn_greenland_calving_fraction, & 
    244          &                  rn_antarctica_calving_fraction, rn_iceshelf_fluxes_tolerance 
     242         &                  ln_usecplmask, nn_coupled_iceshelf_fluxes, ln_iceshelf_init_atmos,        & 
     243         &                  rn_greenland_total_fw_flux, rn_greenland_calving_fraction, & 
     244         &                  rn_antarctica_total_fw_flux, rn_antarctica_calving_fraction, rn_iceshelf_fluxes_tolerance 
    245245      !!--------------------------------------------------------------------- 
    246246 
     
    311311         WRITE(numout,*)'  nn_cplmodel                         = ', nn_cplmodel 
    312312         WRITE(numout,*)'  ln_usecplmask                       = ', ln_usecplmask 
    313          WRITE(numout,*)'  ln_coupled_iceshelf_fluxes          = ', ln_coupled_iceshelf_fluxes 
     313         WRITE(numout,*)'  nn_coupled_iceshelf_fluxes          = ', nn_coupled_iceshelf_fluxes 
    314314         WRITE(numout,*)'  ln_iceshelf_init_atmos              = ', ln_iceshelf_init_atmos 
     315         WRITE(numout,*)'  rn_greenland_total_fw_flux         = ', rn_greenland_total_fw_flux 
     316         WRITE(numout,*)'  rn_antarctica_total_fw_flux        = ', rn_antarctica_total_fw_flux 
    315317         WRITE(numout,*)'  rn_greenland_calving_fraction       = ', rn_greenland_calving_fraction 
    316318         WRITE(numout,*)'  rn_antarctica_calving_fraction      = ', rn_antarctica_calving_fraction 
     
    950952      ncpl_qsr_freq = 86400 / ncpl_qsr_freq 
    951953 
    952       IF( ln_coupled_iceshelf_fluxes ) THEN 
     954      IF( nn_coupled_iceshelf_fluxes .gt. 0 ) THEN 
    953955          ! Crude masks to separate the Antarctic and Greenland icesheets. Obviously something 
    954956          ! more complicated could be done if required. 
     
    13431345      ENDIF 
    13441346 
    1345       IF( srcv(jpr_grnm)%laction ) THEN 
     1347      IF( srcv(jpr_grnm)%laction .AND. nn_coupled_iceshelf_fluxes == 1 ) THEN 
    13461348         greenland_icesheet_mass_array(:,:) = frcv(jpr_grnm)%z3(:,:,1) 
    13471349         ! take average over ocean points of input array to avoid cumulative error over time 
     
    13751377         IF(lwp) WRITE(numout,*) 'Greenland icesheet mass rate of change (kg/s) is ', greenland_icesheet_mass_rate_of_change 
    13761378         IF(lwp) WRITE(numout,*) 'Greenland icesheet seconds lapsed since last change is ', greenland_icesheet_timelapsed 
     1379      ELSE IF ( nn_coupled_iceshelf_fluxes == 2 ) THEN 
     1380         greenland_icesheet_mass_rate_of_change = rn_greenland_total_fw_flux 
    13771381      ENDIF 
    13781382 
    13791383      !                                                        ! land ice masses : Antarctica 
    1380       IF( srcv(jpr_antm)%laction ) THEN 
     1384      IF( srcv(jpr_antm)%laction .AND. nn_coupled_iceshelf_fluxes == 1 ) THEN 
    13811385         antarctica_icesheet_mass_array(:,:) = frcv(jpr_antm)%z3(:,:,1) 
    13821386         ! take average over ocean points of input array to avoid cumulative error from rounding errors over time 
     
    14101414         IF(lwp) WRITE(numout,*) 'Antarctica icesheet mass rate of change (kg/s) is ', antarctica_icesheet_mass_rate_of_change 
    14111415         IF(lwp) WRITE(numout,*) 'Antarctica icesheet seconds lapsed since last change is ', antarctica_icesheet_timelapsed 
     1416      ELSE IF ( nn_coupled_iceshelf_fluxes == 2 ) THEN 
     1417         antarctica_icesheet_mass_rate_of_change = rn_antarctica_total_fw_flux 
    14121418      ENDIF 
    14131419 
  • branches/UKMO/dev_r5518_GO6_package/NEMOGCM/NEMO/OPA_SRC/SBC/sbcisf.F90

    r7179 r8046  
    255255 
    256256            IF( lk_oasis) THEN 
    257             ! ln_coupled_iceshelf_fluxes uninitialised unless lk_oasis=true 
    258             IF( ln_coupled_iceshelf_fluxes ) THEN 
     257            ! nn_coupled_iceshelf_fluxes uninitialised unless lk_oasis=true 
     258            IF( nn_coupled_iceshelf_fluxes .gt. 0 ) THEN 
    259259 
    260260              ! Adjust total iceshelf melt rates so that sum of iceberg calving and iceshelf melting in the northern 
     
    304304 
    305305            IF( lk_oasis) THEN 
    306             ! ln_coupled_iceshelf_fluxes uninitialised unless lk_oasis=true 
    307             IF( ln_coupled_iceshelf_fluxes ) THEN 
     306            ! nn_coupled_iceshelf_fluxes uninitialised unless lk_oasis=true 
     307            IF( nn_coupled_iceshelf_fluxes .gt. 0 ) THEN 
    308308 
    309309              ! Adjust total iceshelf melt rates so that sum of iceberg calving and iceshelf melting in the northern 
Note: See TracChangeset for help on using the changeset viewer.