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 6710 for branches/2015 – NEMO

Changeset 6710 for branches/2015


Ignore:
Timestamp:
2016-06-14T15:22:27+02:00 (8 years ago)
Author:
clem
Message:

correct a bug in coupled mode in case calving is activated

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90

    r6399 r6710  
    14301430      CALL lim_thd_snwblow( p_frld, zsnw ) 
    14311431       
    1432       ! --- evaporation (kg/m2/s) --- ! 
     1432      ! --- evaporation (used later in sbccpl) --- ! 
     1433      zevap(:,:) = zemp_tot(:,:) + ztprecip(:,:) 
     1434 
     1435      ! --- evaporation over ice (kg/m2/s) --- ! 
    14331436      zevap_ice(:,:) = frcv(jpr_ievp)%z3(:,:,1) 
    14341437      ! since the sensitivity of evap to temperature (devap/dT) is not prescribed by the atmosphere, we set it to 0 
     
    14381441      ! --- evaporation minus precipitation corrected for the effect of wind blowing on snow --- ! 
    14391442      zemp_oce(:,:) = zemp_tot(:,:) - zemp_ice(:,:) - zsprecip * (1._wp - zsnw) 
    1440       zemp_ice(:,:) = zemp_ice(:,:) + zsprecip * (1._wp - zsnw)           
    1441  
    1442       ! Sublimation over sea-ice (cell average) 
    1443       IF( iom_use('subl_ai_cea') )  CALL iom_put( 'subl_ai_cea', zevap_ice(:,:) * zicefr(:,:) ) 
    1444       ! runoffs and calving (put in emp_tot) 
     1443      zemp_ice(:,:) = zemp_ice(:,:) + zsprecip * (1._wp - zsnw) 
     1444 
     1445      ! --- runoffs (included in emp later on) --- ! 
    14451446      IF( srcv(jpr_rnf)%laction )   rnf(:,:) = frcv(jpr_rnf)%z3(:,:,1) 
     1447 
     1448      ! --- calving (put in emp_tot and emp_oce) --- ! 
    14461449      IF( srcv(jpr_cal)%laction ) THEN  
    14471450         zemp_tot(:,:) = zemp_tot(:,:) - frcv(jpr_cal)%z3(:,:,1) 
     1451         zemp_oce(:,:) = zemp_oce(:,:) - frcv(jpr_cal)%z3(:,:,1) 
    14481452         CALL iom_put( 'calving_cea', frcv(jpr_cal)%z3(:,:,1) ) 
    14491453      ENDIF 
     
    14711475      ENDIF 
    14721476 
     1477      IF( iom_use('subl_ai_cea') )   CALL iom_put( 'subl_ai_cea', zevap_ice(:,:) * zicefr(:,:)    )  ! Sublimation over sea-ice (cell average) 
    14731478                                     CALL iom_put( 'snowpre'    , sprecip                         )  ! Snow 
    14741479      IF( iom_use('snow_ao_cea') )   CALL iom_put( 'snow_ao_cea', sprecip(:,:) * ( 1._wp - zsnw ) )  ! Snow over ice-free ocean  (cell average) 
     
    15581563 
    15591564#if defined key_lim3       
    1560       ! --- evaporation --- ! 
    1561       zevap(:,:) = zemp_tot(:,:) + ztprecip(:,:) ! evaporation over ocean 
    1562  
    15631565      ! --- non solar flux over ocean --- ! 
    15641566      !         note: p_frld cannot be = 0 since we limit the ice concentration to amax 
     
    15671569 
    15681570      ! --- heat flux associated with emp (W/m2) --- ! 
    1569       zqemp_oce(:,:) = -      zevap(:,:)                   * p_frld(:,:)      *   zcptn(:,:)   &      ! evap 
    1570          &             + ( ztprecip(:,:) - zsprecip(:,:) )                    *   zcptn(:,:)   &      ! liquid precip 
    1571          &             +   zsprecip(:,:)                   * ( 1._wp - zsnw ) * ( zcptn(:,:) - lfus ) ! solid precip over ocean 
     1571      zqemp_oce(:,:) = -      zevap(:,:)                   * p_frld(:,:)      *   zcptn(:,:)   &       ! evap 
     1572         &             + ( ztprecip(:,:) - zsprecip(:,:) )                    *   zcptn(:,:)   &       ! liquid precip 
     1573         &             +   zsprecip(:,:)                   * ( 1._wp - zsnw ) * ( zcptn(:,:) - lfus )  ! solid precip over ocean + snow melting 
    15721574!      zqemp_ice(:,:) = -   frcv(jpr_ievp)%z3(:,:,1)        * zicefr(:,:)      *   zcptn(:,:)   &      ! ice evap 
    15731575!         &             +   zsprecip(:,:)                   * zsnw             * ( zcptn(:,:) - lfus ) ! solid precip over ice 
    15741576      zqemp_ice(:,:) =      zsprecip(:,:)                   * zsnw             * ( zcptn(:,:) - lfus ) ! solid precip over ice (only) 
    1575                                                                                                        ! qevap_ice=0 since we consider Tice=0°C 
     1577                                                                                                       ! qevap_ice=0 since we consider Tice=0degC 
    15761578       
    1577       ! --- heat content of precip over ice in J/m3 (to be used in 1D-thermo) --- ! 
     1579      ! --- enthalpy of snow precip over ice in J/m3 (to be used in 1D-thermo) --- ! 
    15781580      zqprec_ice(:,:) = rhosn * ( zcptn(:,:) - lfus ) 
    15791581 
    15801582      ! --- heat content of evap over ice in W/m2 (to be used in 1D-thermo) --- ! 
    15811583      DO jl = 1, jpl 
    1582          zqevap_ice(:,:,jl) = 0._wp ! should be -evap * ( ( Tice - rt0 ) * cpic ) but we do not have Tice, so we consider Tice=0°C 
     1584         zqevap_ice(:,:,jl) = 0._wp ! should be -evap * ( ( Tice - rt0 ) * cpic ) but we do not have Tice, so we consider Tice=0degC 
    15831585      END DO 
    15841586 
Note: See TracChangeset for help on using the changeset viewer.