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 15548 for NEMO/branches/2021/ticket2632_r14588_theta_sbcblk/src/OCE/ISF/isfcavmlt.F90 – NEMO

Ignore:
Timestamp:
2021-11-28T18:59:49+01:00 (3 years ago)
Author:
gsamson
Message:

update branch to the head of the trunk (r15547); ticket #2632

Location:
NEMO/branches/2021/ticket2632_r14588_theta_sbcblk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2021/ticket2632_r14588_theta_sbcblk

    • Property svn:externals
      •  

        old new  
        99 
        1010# SETTE 
        11 ^/utils/CI/sette@14244        sette 
         11^/utils/CI/sette@HEAD        sette 
         12 
  • NEMO/branches/2021/ticket2632_r14588_theta_sbcblk/src/OCE/ISF/isfcavmlt.F90

    r13472 r15548  
    99 
    1010   !!---------------------------------------------------------------------- 
    11    !!   isfcav_mlt    : compute or read ice shelf fwf/heat fluxes in the ice shelf cavity 
     11   !!   isfcav_mlt    : compute or read ice shelf fwf/heat fluxes from isf  
     12   !!                   to oce 
    1213   !!---------------------------------------------------------------------- 
    1314 
     
    7980      ! 
    8081      IF (ln_isfdebug) THEN 
     82         IF(lwp) WRITE(numout,*) '' 
    8183         CALL debug( 'isfcav_mlt qhc  :', pqhc (:,:) ) 
    8284         CALL debug( 'isfcav_mlt qoce :', pqoce(:,:) ) 
    8385         CALL debug( 'isfcav_mlt qfwf :', pqfwf(:,:) ) 
     86         IF(lwp) WRITE(numout,*) '' 
    8487      END IF 
    8588      ! 
     
    112115      CALL eos_fzp( pstbl(:,:), ztfrz(:,:), risfdep(:,:) ) 
    113116      ! 
    114       ! read input file 
     117      ! read input file of fwf (from isf to oce; ie melt) 
    115118      CALL fld_read ( kt, 1, sf_isfcav_fwf ) 
    116119      ! 
    117120      ! define fwf and qoce 
    118121      ! ocean heat flux is assume to be equal to the latent heat 
    119       pqfwf(:,:) = - sf_isfcav_fwf(1)%fnow(:,:,1)      ! fwf                ( >0 out) 
    120       pqoce(:,:) = - pqfwf(:,:) * rLfusisf             ! ocean heat flux    ( >0 out) 
    121       pqhc (:,:) =   pqfwf(:,:) * ztfrz(:,:) * rcp     ! heat content flux  ( >0 out) 
     122      pqfwf(:,:) =   sf_isfcav_fwf(1)%fnow(:,:,1)      ! fwf                ( > 0 from isf to oce) 
     123      pqoce(:,:) = - pqfwf(:,:) * rLfusisf             ! ocean heat flux    ( > 0 from isf to oce) 
     124      pqhc (:,:) =   pqfwf(:,:) * ztfrz(:,:) * rcp     ! heat content flux  ( > 0 from isf to oce) 
    122125      ! 
    123126      ! output freezing point at the interface 
    124       CALL iom_put('isftfrz_cav', ztfrz ) 
     127      CALL iom_put('isftfrz_cav', ztfrz(:,:) * mskisf_cav(:,:) ) 
    125128      ! 
    126129   END SUBROUTINE isfcav_mlt_spe 
     
    161164      ! 
    162165      ! compute ocean-ice heat flux and then derive fwf assuming that ocean heat flux equal latent heat 
    163       pqfwf(:,:) = - pgt(:,:) * rho0_rcp * zthd(:,:) / rLfusisf    ! fresh water flux  ( > 0 out ) 
    164       pqoce(:,:) = - pqfwf(:,:) * rLfusisf                         ! ocea-ice flux     ( > 0 out ) 
    165       pqhc (:,:) =   pqfwf(:,:) * ztfrz(:,:) * rcp                 ! heat content flux ( > 0 out ) 
     166      pqfwf(:,:) =   pgt(:,:) * rho0_rcp * zthd(:,:) / rLfusisf    ! fresh water flux  ( > 0 from isf to oce) 
     167      pqoce(:,:) = - pqfwf(:,:) * rLfusisf                         ! ocea-ice flux     ( > 0 from isf to oce) 
     168      pqhc (:,:) =   pqfwf(:,:) * ztfrz(:,:) * rcp                 ! heat content flux ( > 0 from isf to oce) 
    166169      ! 
    167170      ! output thermal driving and freezinpoint at the ice shelf interface 
    168171      CALL iom_put('isfthermald_cav', zthd ) 
    169       CALL iom_put('isftfrz_cav'    , ztfrz ) 
     172      CALL iom_put('isftfrz_cav'    , ztfrz(:,:) * mskisf_cav(:,:) ) 
    170173      ! 
    171174   END SUBROUTINE isfcav_mlt_2eq 
     
    210213      ! compute upward heat flux zhtflx and upward water flux zwflx 
    211214      ! Resolution of a 3d equation from equation 24, 25 and 26 (note conduction through the ice has been added to Eq 24) 
    212       DO_2D( 1, 1, 1, 1 ) 
     215      DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) 
    213216         ! 
    214217         ! compute coeficient to solve the 2nd order equation 
     
    238241         ! 
    239242         ! compute the upward water and heat flux (eq. 24 and eq. 26) 
    240          pqfwf(ji,jj) = rho0     * pgs(ji,jj) * ( zsfrz - pstbl(ji,jj) ) / MAX(zsfrz,zeps) ! fresh water flux    (> 0 out) 
    241          pqoce(ji,jj) = rho0_rcp * pgt(ji,jj) * zthd (ji,jj)                               ! ocean-ice heat flux (> 0 out) 
    242          pqhc (ji,jj) = rcp      * pqfwf(ji,jj) * ztfrz(ji,jj)                             ! heat content   flux (> 0 out) 
     243         pqfwf(ji,jj) = - rho0     * pgs(ji,jj) * ( zsfrz - pstbl(ji,jj) ) / MAX(zsfrz,zeps) ! fresh water flux    ( > 0 from isf to oce) 
     244         pqoce(ji,jj) = - rho0_rcp * pgt(ji,jj) * zthd (ji,jj)                               ! ocean-ice heat flux ( > 0 from isf to oce) 
     245         pqhc (ji,jj) =   rcp      * pqfwf(ji,jj) * ztfrz(ji,jj)                             ! heat content   flux ( > 0 from isf to oce) 
    243246         ! 
    244247         zqcon(ji,jj) = zeps3 * ( ztfrz(ji,jj) - rtsurf ) 
     
    281284      CALL eos_fzp( pstbl(:,:), ztfrz(:,:), risfdep(:,:) ) 
    282285      ! 
    283       ! read input file 
     286      ! read input file of fwf from isf to oce 
    284287      CALL fld_read ( kt, 1, sf_isfcav_fwf ) 
    285288      ! 
    286289      ! ice shelf 2d map 
    287       zfwf(:,:) = - sf_isfcav_fwf(1)%fnow(:,:,1) 
     290      zfwf(:,:) = sf_isfcav_fwf(1)%fnow(:,:,1) 
    288291      ! 
    289292      ! compute glob sum from input file 
     
    300303      ! define fwf and qoce 
    301304      ! ocean heat flux is assume to be equal to the latent heat 
    302       pqfwf(:,:) =   zfwf(:,:)                         ! fwf                ( >0 out) 
    303       pqoce(:,:) = - pqfwf(:,:) * rLfusisf             ! ocean heat flux    ( >0 out) 
    304       pqhc (:,:) =   pqfwf(:,:) * ztfrz(:,:) * rcp     ! heat content flux  ( >0 out) 
     305      pqfwf(:,:) =   zfwf(:,:)                         ! fwf                ( > 0 from isf to oce) 
     306      pqoce(:,:) = - pqfwf(:,:) * rLfusisf             ! ocean heat flux    ( > 0 from isf to oce) 
     307      pqhc (:,:) =   pqfwf(:,:) * ztfrz(:,:) * rcp     ! heat content flux  ( > 0 from isf to oce) 
    305308      ! 
    306309      CALL iom_put('isftfrz_cav', ztfrz * mskisf_cav(:,:) ) 
Note: See TracChangeset for help on using the changeset viewer.