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 10115 for NEMO/branches/2018/dev_r5003_MERCATOR6_CRS/NEMOGCM/NEMO/OPA_SRC/SBC/sbcisf.F90 – NEMO

Ignore:
Timestamp:
2018-09-12T15:59:13+02:00 (6 years ago)
Author:
cbricaud
Message:

phase 3.6 coarsening branch with nemo_3.6_rev9192

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2018/dev_r5003_MERCATOR6_CRS/NEMOGCM/NEMO/OPA_SRC/SBC/sbcisf.F90

    r7806 r10115  
    168168          
    169169         ! salt effect already take into account in vertical advection 
    170          risf_tsc(:,:,jp_sal) = (1.0_wp-rdivisf) * fwfisf(:,:) * stbl(:,:) * r1_rau0 
    171  
    172          ! output 
    173          IF( iom_use('qlatisf' ) )   CALL iom_put('qlatisf', qisf) 
    174          IF( iom_use('fwfisf'  ) )   CALL iom_put('fwfisf' , fwfisf * stbl(:,:) / soce ) 
    175  
    176          ! if apply only on the trend and not as a volume flux (rdivisf = 0), fwfisf have to be set to 0 now 
    177          fwfisf(:,:) = rdivisf * fwfisf(:,:)          
    178   
     170         risf_tsc(:,:,jp_sal) = (1.0_wp-rdivisf) * fwfisf(:,:) * soce * r1_rau0 
     171 
    179172         ! lbclnk 
    180173         CALL lbc_lnk(risf_tsc(:,:,jp_tem),'T',1.) 
     
    182175         CALL lbc_lnk(fwfisf(:,:)   ,'T',1.) 
    183176         CALL lbc_lnk(qisf(:,:)     ,'T',1.) 
     177 
     178         ! output 
     179         IF( iom_use('iceshelf_cea') )   CALL iom_put( 'iceshelf_cea', -fwfisf(:,:)                      )   ! isf mass flux 
     180         IF( iom_use('hflx_isf_cea') )   CALL iom_put( 'hflx_isf_cea', risf_tsc(:,:,jp_tem) * rau0 * rcp )   ! isf sensible+latent heat (W/m2) 
     181         IF( iom_use('qlatisf' ) )       CALL iom_put( 'qlatisf'     , qisf(:,:)                         )   ! isf latent heat 
     182         IF( iom_use('fwfisf'  ) )       CALL iom_put( 'fwfisf'      , fwfisf(:,:)                       )   ! isf mass flux (opposite sign) 
    184183 
    185184         ! Diagnostics 
     
    192191            zqhcisf3d(:,:,:) = 0.0_wp                         ! 3d heat content flux (W/m2) 
    193192            zqlatisf3d(:,:,:)= 0.0_wp                         ! 3d ice shelf melting latent heat flux (W/m2) 
    194             zqhcisf2d(:,:)   = fwfisf(:,:) * zt_frz * rcp     ! 2d heat content flux (W/m2) 
     193            zqhcisf2d(:,:)   = rdivisf * fwfisf(:,:) * zt_frz * rcp     ! 2d heat content flux (W/m2) 
    195194            ! 
    196195            DO jj = 1,jpj 
     
    221220            ! 
    222221         END IF 
     222 
     223         ! if apply only on the trend and not as a volume flux (rdivisf = 0), fwfisf have to be set to 0 now 
     224         fwfisf(:,:) = rdivisf * fwfisf(:,:)          
     225  
    223226         !  
    224227      END IF 
     
    444447              
    445448             fwfisf(ji,jj) = qisf(ji,jj) / lfusisf          !fresh water flux kg/(m2s)                   
    446              fwfisf(ji,jj) = fwfisf(ji,jj) * ( soce / stbl(ji,jj) ) 
    447              !add to salinity trend 
     449 
    448450          ELSE 
    449451             qisf(ji,jj) = 0._wp ; fwfisf(ji,jj) = 0._wp 
     
    544546                  qisf(ji,jj) = - zhtflx 
    545547! For genuine ISOMIP protocol this should probably be something like 
    546                   fwfisf(ji,jj) = zfwflx  * ( soce / MAX(stbl(ji,jj),zeps)) 
     548                  fwfisf(ji,jj) = zfwflx 
    547549               ELSE 
    548550                  fwfisf(ji,jj) = 0._wp 
     
    582584! zfwflx is upward water flux 
    583585                     zfwflx= rau0 * zgammas * ( (zsfrz-stbl(ji,jj)) / zsfrz ) 
     586                     IF ( rdivisf==0 ) THEN  
    584587! zhtflx is upward heat flux (out of ocean) 
    585588! If non conservative we have zcfac=0.0 so zhtflx is as ISOMIP but with different zfrz value 
    586                      zhtflx = ( zgammat*rau0 - zcfac*zfwflx ) * rcp * (zti(ji,jj) - zfrz(ji,jj) )  
     589                        zhtflx = ( zgammat*rau0 - zcfac*zfwflx ) * rcp * (zti(ji,jj) - zfrz(ji,jj) )  
    587590! zwflx is upward water flux 
    588591! If non conservative we have zcfac=0.0 so what follows is then zfwflx*sss_m/zsfrz 
    589                      zfwflx = ( zgammas*rau0 - zcfac*zfwflx ) * (zsfrz - stbl(ji,jj)) / stbl(ji,jj) 
     592                        zfwflx = ( zgammas*rau0 - zcfac*zfwflx ) * (zsfrz - stbl(ji,jj)) / stbl(ji,jj) 
     593                     ELSE 
     594                        zhtflx = zgammat*rau0 * rcp * (zti(ji,jj) - zfrz(ji,jj) )                      
     595                        ! nothing to do for fwf 
     596                     END IF 
    590597! test convergence and compute gammat 
    591598                     IF (( zhtflx - zhtflx_b) .LE. 0.01 ) lit = .FALSE. 
Note: See TracChangeset for help on using the changeset viewer.