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 9923 for NEMO/branches/2018/dev_r9838_ENHANCE04_MLF/src/OCE/SBC/sbcisf.F90 – NEMO

Ignore:
Timestamp:
2018-07-11T10:24:17+02:00 (6 years ago)
Author:
gm
Message:

#1911 (ENHANCE-04): step I.2: dev_r9838_ENHANCE04_MLF

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2018/dev_r9838_ENHANCE04_MLF/src/OCE/SBC/sbcisf.F90

    r9728 r9923  
    5454   REAL(wp), PUBLIC, SAVE ::   rcpi     = 2000.0_wp     !: specific heat of ice shelf             [J/kg/K] 
    5555   REAL(wp), PUBLIC, SAVE ::   rkappa   = 1.54e-6_wp    !: heat diffusivity through the ice-shelf [m2/s] 
    56    REAL(wp), PUBLIC, SAVE ::   rhoisf   = 920.0_wp      !: volumic mass of ice shelf              [kg/m3] 
     56   REAL(wp), PUBLIC, SAVE ::   rho_isf  = 920.0_wp      !: volumic mass of ice shelf              [kg/m3] 
    5757   REAL(wp), PUBLIC, SAVE ::   tsurf    = -20.0_wp      !: air temperature on top of ice shelf    [C] 
    5858   REAL(wp), PUBLIC, SAVE ::   rlfusisf = 0.334e6_wp    !: latent heat of fusion of ice shelf     [J/kg] 
     
    144144         ! compute tsc due to isf 
    145145         ! isf melting implemented as a volume flux and we assume that melt water is at 0 PSU. 
    146          ! WARNING water add at temp = 0C, need to add a correction term (fwfisf * tfreez / rau0). 
     146         ! WARNING water add at temp = 0C, need to add a correction term (fwfisf * tfreez / rho0). 
    147147         ! compute freezing point beneath ice shelf (or top cell if nn_isf = 3) 
    148148         DO jj = 1,jpj 
     
    153153         CALL eos_fzp( stbl(:,:), zt_frz(:,:), zdep(:,:) ) 
    154154          
    155          risf_tsc(:,:,jp_tem) = qisf(:,:) * r1_rau0_rcp - fwfisf(:,:) * zt_frz(:,:) * r1_rau0 ! 
     155         risf_tsc(:,:,jp_tem) = qisf(:,:) * r1_rho0_rcp - fwfisf(:,:) * zt_frz(:,:) * r1_rho0 ! 
    156156         risf_tsc(:,:,jp_sal) = 0.0_wp 
    157157 
     
    160160         ! output 
    161161         IF( iom_use('iceshelf_cea') )   CALL iom_put( 'iceshelf_cea', -fwfisf(:,:)                      )   ! isf mass flux 
    162          IF( iom_use('hflx_isf_cea') )   CALL iom_put( 'hflx_isf_cea', risf_tsc(:,:,jp_tem) * rau0 * rcp )   ! isf sensible+latent heat (W/m2) 
     162         IF( iom_use('hflx_isf_cea') )   CALL iom_put( 'hflx_isf_cea', risf_tsc(:,:,jp_tem) * rho0 * rcp )   ! isf sensible+latent heat (W/m2) 
    163163         IF( iom_use('qlatisf' ) )       CALL iom_put( 'qlatisf'     , qisf(:,:)                         )   ! isf latent heat 
    164164         IF( iom_use('fwfisf'  ) )       CALL iom_put( 'fwfisf'      , fwfisf(:,:)                       )   ! isf mass flux (opposite sign) 
     
    452452               ! 2. ------------Net heat flux and fresh water flux due to the ice shelf 
    453453               ! For those corresponding to zonal boundary     
    454                qisf(ji,jj) = - rau0 * rcp * rn_gammat0 * risfLeff(ji,jj) * e1t(ji,jj) * zt_ave  & 
     454               qisf(ji,jj) = - rho0 * rcp * rn_gammat0 * risfLeff(ji,jj) * e1t(ji,jj) * zt_ave  & 
    455455                           & * r1_e1e2t(ji,jj) * tmask(ji,jj,jk) 
    456456              
     
    500500         zlamb1 =-0.0564_wp 
    501501         zlamb2 = 0.0773_wp 
    502          zlamb3 =-7.8633e-8 * grav * rau0 
     502         zlamb3 =-7.8633e-8 * grav * rho0 
    503503      ELSE                  ! linearisation from table 4 (Asay-Davis et al., 2015) 
    504504         zlamb1 =-0.0573_wp 
    505505         zlamb2 = 0.0832_wp 
    506          zlamb3 =-7.53e-8 * grav * rau0 
     506         zlamb3 =-7.53e-8 * grav * rho0 
    507507      ENDIF 
    508508      ! 
     
    526526            DO jj = 1, jpj 
    527527               DO ji = 1, jpi 
    528                   zhtflx(ji,jj) =   zgammat(ji,jj)*rcp*rau0*(ttbl(ji,jj)-zfrz(ji,jj)) 
     528                  zhtflx(ji,jj) =   zgammat(ji,jj)*rcp*rho0*(ttbl(ji,jj)-zfrz(ji,jj)) 
    529529                  zfwflx(ji,jj) = - zhtflx(ji,jj)/rlfusisf 
    530530               END DO 
     
    544544               DO ji = 1, jpi 
    545545                  ! compute coeficient to solve the 2nd order equation 
    546                   zeps1 = rcp*rau0*zgammat(ji,jj) 
    547                   zeps2 = rlfusisf*rau0*zgammas(ji,jj) 
    548                   zeps3 = rhoisf*rcpi*rkappa/MAX(risfdep(ji,jj),zeps) 
     546                  zeps1 = rcp*rho0*zgammat(ji,jj) 
     547                  zeps2 = rlfusisf*rho0*zgammas(ji,jj) 
     548                  zeps3 = rho_isf*rcpi*rkappa/MAX(risfdep(ji,jj),zeps) 
    549549                  zeps4 = zlamb2+zlamb3*risfdep(ji,jj) 
    550550                  zeps6 = zeps4-ttbl(ji,jj) 
     
    567567                  ! zhtflx is upward heat flux (out of ocean) 
    568568                  ! compute the upward water and heat flux (eq. 28 and eq. 29) 
    569                   zfwflx(ji,jj) = rau0 * zgammas(ji,jj) * (zsfrz-stbl(ji,jj)) / MAX(zsfrz,zeps) 
    570                   zhtflx(ji,jj) = zgammat(ji,jj) * rau0 * rcp * (ttbl(ji,jj) - zfrz(ji,jj) )  
     569                  zfwflx(ji,jj) = rho0 * zgammas(ji,jj) * (zsfrz-stbl(ji,jj)) / MAX(zsfrz,zeps) 
     570                  zhtflx(ji,jj) = zgammat(ji,jj) * rho0 * rcp * (ttbl(ji,jj) - zfrz(ji,jj) )  
    571571               END DO 
    572572            END DO 
     
    890890               DO jk = ikt, ikb - 1 
    891891                  phdivn(ji,jj,jk) = phdivn(ji,jj,jk) + ( fwfisf(ji,jj) + fwfisf_b(ji,jj) ) & 
    892                     &              * r1_hisf_tbl(ji,jj) * r1_rau0 * zfact 
     892                    &              * r1_hisf_tbl(ji,jj) * r1_rho0 * zfact 
    893893               END DO 
    894894               ! level partially include in ice shelf boundary layer  
    895895               phdivn(ji,jj,ikb) = phdivn(ji,jj,ikb) + ( fwfisf(ji,jj) & 
    896                     &            + fwfisf_b(ji,jj) ) * r1_hisf_tbl(ji,jj) * r1_rau0 * zfact * ralpha(ji,jj)  
     896                    &            + fwfisf_b(ji,jj) ) * r1_hisf_tbl(ji,jj) * r1_rho0 * zfact * ralpha(ji,jj)  
    897897         END DO 
    898898      END DO 
Note: See TracChangeset for help on using the changeset viewer.