Changeset 7919


Ignore:
Timestamp:
2017-04-18T12:43:06+02:00 (3 years ago)
Author:
davestorkey
Message:

Commit changes to UKMO branch to implement updated scheme for freshwater input from icesheets for coupled models.

Location:
branches/UKMO/dev_r5518_GO6_package_landice_fw_input_option2/NEMOGCM/NEMO/OPA_SRC
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • branches/UKMO/dev_r5518_GO6_package_landice_fw_input_option2/NEMOGCM/NEMO/OPA_SRC/ICB/icbclv.F90

    r6488 r7919  
    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_landice_fw_input_option2/NEMOGCM/NEMO/OPA_SRC/IOM/restart.F90

    r6755 r7919  
    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_landice_fw_input_option2/NEMOGCM/NEMO/OPA_SRC/SBC/sbc_oce.F90

    r7540 r7919  
    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_input    ! 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_input   ! 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_landice_fw_input_option2/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90

    r7540 r7919  
    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_input, rn_greenland_calving_fraction, & 
     244         &                  rn_antarctica_total_fw_input, 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_input         = ', rn_greenland_total_fw_input 
     316         WRITE(numout,*)'  rn_antarctica_total_fw_input        = ', rn_antarctica_total_fw_input 
    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_input 
    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_input 
    14121418      ENDIF 
    14131419 
  • branches/UKMO/dev_r5518_GO6_package_landice_fw_input_option2/NEMOGCM/NEMO/OPA_SRC/SBC/sbcisf.F90

    r7179 r7919  
    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.