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 6004 for branches/2015/dev_r5836_NOC3_vvl_by_default/NEMOGCM/NEMO/LIM_SRC_3/limsbc.F90 – NEMO

Ignore:
Timestamp:
2015-12-04T17:05:58+01:00 (8 years ago)
Author:
gm
Message:

#1613: vvl by default, step III: Merge with the trunk (free surface simplification) (see wiki)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2015/dev_r5836_NOC3_vvl_by_default/NEMOGCM/NEMO/LIM_SRC_3/limsbc.F90

    r5866 r6004  
    2323   !!   lim_sbc_tau   : update i- and j-stresses, and its modulus at the ocean surface 
    2424   !!---------------------------------------------------------------------- 
    25    USE par_oce          ! ocean parameters 
    26    USE phycst           ! physical constants 
    27    USE dom_oce          ! ocean domain 
    28    USE ice              ! LIM sea-ice variables 
    29    USE sbc_ice          ! Surface boundary condition: sea-ice fields 
    30    USE sbc_oce          ! Surface boundary condition: ocean fields 
    31    USE sbccpl 
    32    USE oce       , ONLY : sshn, sshb, snwice_mass, snwice_mass_b, snwice_fmass 
    33    USE albedo           ! albedo parameters 
    34    USE lbclnk           ! ocean lateral boundary condition - MPP exchanges 
    35    USE lib_mpp          ! MPP library 
    36    USE wrk_nemo         ! work arrays 
    37    USE in_out_manager   ! I/O manager 
    38    USE prtctl           ! Print control 
    39    USE lib_fortran      ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined)   
    40    USE traqsr           ! add penetration of solar flux in the calculation of heat budget 
    41    USE iom 
    42    USE domvvl           ! Variable volume 
    43    USE limctl 
    44    USE limcons 
     25   USE par_oce        ! ocean parameters 
     26   USE oce     , ONLY : sshn, sshb, snwice_mass, snwice_mass_b, snwice_fmass 
     27   USE phycst         ! physical constants 
     28   USE dom_oce        ! ocean domain 
     29   USE ice            ! LIM sea-ice variables 
     30   USE sbc_ice        ! Surface boundary condition: sea-ice fields 
     31   USE sbc_oce        ! Surface boundary condition: ocean fields 
     32   USE sbccpl         ! Surface boundary condition: coupled interface 
     33   USE albedo         ! albedo parameters 
     34   USE traqsr         ! add penetration of solar flux in the calculation of heat budget 
     35   USE domvvl         ! Variable volume 
     36   USE limctl         !  
     37   USE limcons        !  
     38   ! 
     39   USE in_out_manager ! I/O manager 
     40   USE iom            ! xIO server 
     41   USE lbclnk         ! ocean lateral boundary condition - MPP exchanges 
     42   USE lib_mpp        ! MPP library 
     43   USE wrk_nemo       ! work arrays 
     44   USE prtctl         ! Print control 
     45   USE lib_fortran    ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined)   
    4546 
    4647   IMPLICIT NONE 
    4748   PRIVATE 
    4849 
    49    PUBLIC   lim_sbc_init   ! called by sbc_lim_init 
     50   PUBLIC   lim_sbc_init   ! called by sbcice_lim 
    5051   PUBLIC   lim_sbc_flx    ! called by sbc_ice_lim 
    5152   PUBLIC   lim_sbc_tau    ! called by sbc_ice_lim 
     
    100101      !!              The ref should be Rousset et al., 2015 
    101102      !!--------------------------------------------------------------------- 
    102       INTEGER, INTENT(in) ::   kt                                  ! number of iteration 
    103       INTEGER  ::   ji, jj, jl, jk                                 ! dummy loop indices 
    104       REAL(wp) ::   zqmass                                         ! Heat flux associated with mass exchange ice->ocean (W.m-2) 
    105       REAL(wp) ::   zqsr                                           ! New solar flux received by the ocean 
    106       ! 
    107       REAL(wp), POINTER, DIMENSION(:,:,:) ::   zalb_cs, zalb_os     ! 2D/3D workspace 
     103      INTEGER, INTENT(in) ::   kt   ! number of iteration 
     104      ! 
     105      INTEGER  ::   ji, jj, jl, jk   ! dummy loop indices 
     106      REAL(wp) ::   zqmass           ! Heat flux associated with mass exchange ice->ocean (W.m-2) 
     107      REAL(wp) ::   zqsr             ! New solar flux received by the ocean 
     108      REAL(wp), POINTER, DIMENSION(:,:,:) ::   zalb_cs, zalb_os     ! 3D workspace 
    108109      !!--------------------------------------------------------------------- 
    109  
     110      ! 
    110111      ! make calls for heat fluxes before it is modified 
    111112      IF( iom_use('qsr_oce') )   CALL iom_put( "qsr_oce" , qsr_oce(:,:) * pfrld(:,:) )                                   !     solar flux at ocean surface 
     
    197198      !    Snow/ice albedo (only if sent to coupler, useless in forced mode)   ! 
    198199      !------------------------------------------------------------------------! 
    199       CALL wrk_alloc( jpi, jpj, jpl, zalb_cs, zalb_os )     
     200      CALL wrk_alloc( jpi,jpj,jpl,  zalb_cs, zalb_os )     
    200201      CALL albedo_ice( t_su, ht_i, ht_s, zalb_cs, zalb_os )  ! cloud-sky and overcast-sky ice albedos 
    201202      alb_ice(:,:,:) = ( 1. - cldf_ice ) * zalb_cs(:,:,:) + cldf_ice * zalb_os(:,:,:) 
    202       CALL wrk_dealloc( jpi, jpj, jpl, zalb_cs, zalb_os ) 
     203      CALL wrk_dealloc( jpi,jpj,jpl,  zalb_cs, zalb_os ) 
    203204 
    204205      ! conservation test 
    205       IF( ln_limdiahsb ) CALL lim_cons_final( 'limsbc' ) 
     206      IF( ln_limdiahsb )   CALL lim_cons_final( 'limsbc' ) 
    206207 
    207208      ! control prints 
    208209      IF( ln_icectl )   CALL lim_prt( kt, iiceprt, jiceprt, 3, ' - Final state lim_sbc - ' ) 
    209  
     210      ! 
    210211      IF(ln_ctl) THEN 
    211212         CALL prt_ctl( tab2d_1=qsr   , clinfo1=' lim_sbc: qsr    : ', tab2d_2=qns , clinfo2=' qns     : ' ) 
     
    214215         CALL prt_ctl( tab3d_1=tn_ice, clinfo1=' lim_sbc: tn_ice : ', kdim=jpl ) 
    215216      ENDIF 
    216  
     217      ! 
    217218   END SUBROUTINE lim_sbc_flx 
    218219 
     
    245246      INTEGER ,                     INTENT(in) ::   kt               ! ocean time-step index 
    246247      REAL(wp), DIMENSION(jpi,jpj), INTENT(in) ::   pu_oce, pv_oce   ! surface ocean currents 
    247       !! 
     248      ! 
    248249      INTEGER  ::   ji, jj   ! dummy loop indices 
    249250      REAL(wp) ::   zat_u, zutau_ice, zu_t, zmodt   ! local scalar 
     
    302303      !! ** input   : Namelist namicedia 
    303304      !!------------------------------------------------------------------- 
    304       INTEGER  ::   ji, jj, jk                       ! dummy loop indices 
    305       REAL(wp) ::   zcoefu, zcoefv, zcoeff          ! local scalar 
     305      INTEGER  ::   ji, jj, jk               ! dummy loop indices 
     306      REAL(wp) ::   zcoefu, zcoefv, zcoeff   ! local scalar 
     307      !!------------------------------------------------------------------- 
     308      ! 
    306309      IF(lwp) WRITE(numout,*) 
    307310      IF(lwp) WRITE(numout,*) 'lim_sbc_init : LIM-3 sea-ice - surface boundary condition' 
Note: See TracChangeset for help on using the changeset viewer.