Changeset 10046


Ignore:
Timestamp:
2018-08-08T16:39:05+02:00 (2 years ago)
Author:
dancopsey
Message:

Re-enable 2D coupling of icesheet mass. To switch between 2D to 0D coupling of ice mass change sn_rcv_grnm%cldes from 'coupled' to 'coupled0d' (with a similar change to sn_rcv_antm).

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

Legend:

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

    r9280 r10046  
    405405   rn_antarctica_calving_fraction = 0.5 ! Set fraction of total freshwater flux for iceberg calving - remainder goes to iceshelf melting. 
    406406   rn_iceshelf_fluxes_tolerance = 1e-6  ! Fractional threshold for detecting differences in icesheet masses (must be positive definite). 
    407    nn_cpl_river = 0              ! Number of rivers to be dealt with in atmos-ocean coupling.  
    408407/ 
    409408!----------------------------------------------------------------------- 
  • branches/UKMO/dev_r5518_cleanup_1d_cpl/NEMOGCM/NEMO/OPA_SRC/SBC/cpl_oasis3.F90

    r10043 r10046  
    372372      ! End of definition phase 
    373373      !------------------------------------------------------------------ 
     374       
    374375      CALL oasis_enddef(nerror) 
    375376      IF( nerror /= OASIS_Ok )   CALL oasis_abort ( ncomp_id, 'cpl_define', 'Failure in oasis_enddef') 
  • branches/UKMO/dev_r5518_cleanup_1d_cpl/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90

    r10044 r10046  
    257257         &                  sn_rcv_atm_pco2, sn_rcv_atm_dust 
    258258 
    259       ! Add river coupling related field to namelist 
    260       NAMELIST/namsbc_cpl/ nn_cpl_river 
    261  
    262259 
    263260      !!--------------------------------------------------------------------- 
     
    331328         WRITE(numout,*)'  rn_antarctica_calving_fraction      = ', rn_antarctica_calving_fraction 
    332329         WRITE(numout,*)'  rn_iceshelf_fluxes_tolerance        = ', rn_iceshelf_fluxes_tolerance 
    333          WRITE(numout,*)'  nn_cpl_river                        = ', nn_cpl_river 
    334330 
    335331      ENDIF 
     
    483479      ! 
    484480      srcv(jpr_cal   )%clname = 'OCalving'    
    485       IF( TRIM( sn_rcv_cal%cldes ) == 'coupled' )   srcv(jpr_cal)%laction = .TRUE. 
    486       srcv(jpr_grnm  )%clname = 'OGrnmass'    
    487       srcv(jpr_grnm  )%dimensions = 0 ! Scalar field 
    488  
    489       IF( TRIM( sn_rcv_grnm%cldes ) == 'coupled' )   srcv(jpr_grnm)%laction = .TRUE. 
    490       srcv(jpr_antm  )%clname = 'OAntmass'    
    491       srcv(jpr_antm  )%dimensions = 0 ! Scalar field    
    492       IF( TRIM( sn_rcv_antm%cldes ) == 'coupled' )   srcv(jpr_antm)%laction = .TRUE. 
     481      IF( TRIM( sn_rcv_cal%cldes ) == 'coupled' )   srcv(jpr_cal)%laction = .TRUE.      
     482 
     483      srcv(jpr_grnm  )%clname = 'OGrnmass'  
     484      IF( TRIM( sn_rcv_grnm%cldes ) == 'coupled' .OR. TRIM( sn_rcv_grnm%cldes ) == 'coupled0d' ) srcv(jpr_grnm)%laction = .TRUE.         
     485      IF( TRIM( sn_rcv_grnm%cldes ) == 'coupled0d' ) srcv(jpr_grnm  )%dimensions = 0 ! Scalar field 
     486       
     487      srcv(jpr_antm  )%clname = 'OAntmass' 
     488      IF( TRIM( sn_rcv_antm%cldes ) == 'coupled' .OR. TRIM( sn_rcv_antm%cldes ) == 'coupled0d' )  srcv(jpr_antm)%laction = .TRUE. 
     489      IF( TRIM( sn_rcv_antm%cldes ) == 'coupled0d' ) srcv(jpr_antm  )%dimensions = 0 ! Scalar field    
     490       
    493491 
    494492 
     
    11141112         IF( srcv(jn)%laction ) THEN  
    11151113 
    1116             IF ( srcv(jn)%dimensions == 0 ) THEN 
     1114            IF ( srcv(jn)%dimensions <= 1 ) THEN 
    11171115               CALL cpl_rcv_1d( jn, isec, frcv(jn)%z3, SIZE(frcv(jn)%z3), nrcvinfo(jn) ) 
    11181116            ELSE 
     
    14241422 
    14251423      IF( srcv(jpr_grnm)%laction .AND. nn_coupled_iceshelf_fluxes == 1 ) THEN 
    1426          ! This is a zero dimensional, single value field.  
    1427          zgreenland_icesheet_mass_in =  frcv(jpr_grnm)%z3(1,1,1) 
     1424          
     1425         IF( srcv(jpr_grnm)%dimensions == 0 ) THEN 
     1426       
     1427           ! This is a zero dimensional, single value field.  
     1428           zgreenland_icesheet_mass_in =  frcv(jpr_grnm)%z3(1,1,1) 
     1429            
     1430         ELSE 
     1431          
     1432           greenland_icesheet_mass_array(:,:) = frcv(jpr_grnm)%z3(:,:,1)  
     1433           ! take average over ocean points of input array to avoid cumulative error over time  
     1434           ! The following must be bit reproducible over different PE decompositions  
     1435           zgreenland_icesheet_mass_in = glob_sum( greenland_icesheet_mass_array(:,:) * tmask(:,:,1) )   
     1436           zgreenland_icesheet_mass_in = zgreenland_icesheet_mass_in / zmask_sum  
     1437            
     1438         END IF 
    14281439 
    14291440         greenland_icesheet_timelapsed = greenland_icesheet_timelapsed + rdt          
     
    14581469      !                                                        ! land ice masses : Antarctica 
    14591470      IF( srcv(jpr_antm)%laction .AND. nn_coupled_iceshelf_fluxes == 1 ) THEN 
    1460          ! This is a zero dimensional, single value field.  
    1461          zantarctica_icesheet_mass_in = frcv(jpr_antm)%z3(1,1,1) 
     1471       
     1472         IF( srcv(jpr_antm)%dimensions == 0 ) THEN 
     1473          
     1474           ! This is a zero dimensional, single value field.  
     1475           zantarctica_icesheet_mass_in = frcv(jpr_antm)%z3(1,1,1) 
     1476            
     1477         ELSE 
     1478          
     1479           antarctica_icesheet_mass_array(:,:) = frcv(jpr_antm)%z3(:,:,1)  
     1480           ! take average over ocean points of input array to avoid cumulative error from rounding errors over time  
     1481           ! The following must be bit reproducible over different PE decompositions  
     1482           zantarctica_icesheet_mass_in = glob_sum( antarctica_icesheet_mass_array(:,:) * tmask(:,:,1) )   
     1483           zantarctica_icesheet_mass_in = zantarctica_icesheet_mass_in / zmask_sum  
     1484            
     1485         END IF 
    14621486 
    14631487         antarctica_icesheet_timelapsed = antarctica_icesheet_timelapsed + rdt          
Note: See TracChangeset for help on using the changeset viewer.