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 11507 for NEMO/branches/2019/dev_r10984_HPC-13_IRRMANN_BDY_optimization/src/OCE/BDY/bdyice.F90 – NEMO

Ignore:
Timestamp:
2019-09-06T17:19:33+02:00 (5 years ago)
Author:
clem
Message:

add a new functionality for bdy ice by allowing the user to have input files for ice/snw temperature and salinity instead of setting a constant value. Also, input files can have any number of categories

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2019/dev_r10984_HPC-13_IRRMANN_BDY_optimization/src/OCE/BDY/bdyice.F90

    r11501 r11507  
    154154            zwgt  = idx%nbw(i_bdy,jgrd) 
    155155            zwgt1 = 1.e0 - idx%nbw(i_bdy,jgrd) 
    156             a_i(ji,jj,jl) = ( a_i(ji,jj,jl) * zwgt1 + dta%a_i(i_bdy,jl) * zwgt ) * tmask(ji,jj,1)  ! Leads fraction  
    157             h_i(ji,jj,jl) = ( h_i(ji,jj,jl) * zwgt1 + dta%h_i(i_bdy,jl) * zwgt ) * tmask(ji,jj,1)  ! Ice depth  
    158             h_s(ji,jj,jl) = ( h_s(ji,jj,jl) * zwgt1 + dta%h_s(i_bdy,jl) * zwgt ) * tmask(ji,jj,1)  ! Snow depth 
    159  
     156            a_i (ji,jj,  jl) = ( a_i (ji,jj,  jl) * zwgt1 + dta%a_i(i_bdy,jl) * zwgt ) * tmask(ji,jj,1)  ! Ice  concentration  
     157            h_i (ji,jj,  jl) = ( h_i (ji,jj,  jl) * zwgt1 + dta%h_i(i_bdy,jl) * zwgt ) * tmask(ji,jj,1)  ! Ice  depth  
     158            h_s (ji,jj,  jl) = ( h_s (ji,jj,  jl) * zwgt1 + dta%h_s(i_bdy,jl) * zwgt ) * tmask(ji,jj,1)  ! Snow depth 
     159            t_i (ji,jj,:,jl) = ( t_i (ji,jj,:,jl) * zwgt1 + dta%t_i(i_bdy,jl) * zwgt ) * tmask(ji,jj,1)  ! Ice  temperature 
     160            t_s (ji,jj,:,jl) = ( t_s (ji,jj,:,jl) * zwgt1 + dta%t_s(i_bdy,jl) * zwgt ) * tmask(ji,jj,1)  ! Snow temperature 
     161            t_su(ji,jj,  jl) = ( t_su(ji,jj,  jl) * zwgt1 + dta%tsu(i_bdy,jl) * zwgt ) * tmask(ji,jj,1)  ! Surf temperature 
     162            s_i (ji,jj,  jl) = ( s_i (ji,jj,  jl) * zwgt1 + dta%s_i(i_bdy,jl) * zwgt ) * tmask(ji,jj,1)  ! Ice  salinity 
     163            sz_i(ji,jj,:,jl) =   s_i (ji,jj,  jl) 
     164            ! 
    160165            ! ----------------- 
    161166            ! Pathological case 
     
    208213            IF( a_i(ib,jb,jl) > 0._wp ) THEN   ! there is ice at the boundary 
    209214               ! 
    210                a_i(ji,jj,jl) = a_i(ib,jb,jl) ! concentration 
    211                h_i(ji,jj,jl) = h_i(ib,jb,jl) ! thickness ice 
    212                h_s(ji,jj,jl) = h_s(ib,jb,jl) ! thickness snw 
     215               a_i (ji,jj,  jl) = a_i (ib,jb,  jl) 
     216               h_i (ji,jj,  jl) = h_i (ib,jb,  jl) 
     217               h_s (ji,jj,  jl) = h_s (ib,jb,  jl) 
     218               t_i (ji,jj,:,jl) = t_i (ib,jb,:,jl) 
     219               t_s (ji,jj,:,jl) = t_s (ib,jb,:,jl) 
     220               t_su(ji,jj,  jl) = t_su(ib,jb,  jl) 
     221               s_i (ji,jj,  jl) = s_i (ib,jb,  jl) 
     222               sz_i(ji,jj,:,jl) = sz_i(ib,jb,:,jl) 
    213223               ! 
    214224               SELECT CASE( jpbound ) 
    215225                  ! 
    216226               CASE( 0 )   ! velocity is inward 
    217                   ! 
    218                   oa_i(ji,jj,  jl) = rn_ice_age(jbdy) * a_i(ji,jj,jl) ! age 
    219                   a_ip(ji,jj,  jl) = 0._wp                            ! pond concentration 
    220                   v_ip(ji,jj,  jl) = 0._wp                            ! pond volume 
    221                   t_su(ji,jj,  jl) = rn_ice_tem(jbdy)                 ! temperature surface 
    222                   t_s (ji,jj,:,jl) = rn_ice_tem(jbdy)                 ! temperature snw 
    223                   t_i (ji,jj,:,jl) = rn_ice_tem(jbdy)                 ! temperature ice 
    224                   s_i (ji,jj,  jl) = rn_ice_sal(jbdy)                 ! salinity 
    225                   sz_i(ji,jj,:,jl) = rn_ice_sal(jbdy)                 ! salinity profile 
    226                   ! 
     227                  oa_i(ji,jj,jl) = rice_age(jbdy) * a_i(ji,jj,jl)   ! age 
     228                  a_ip(ji,jj,jl) = 0._wp                            ! pond concentration 
     229                  v_ip(ji,jj,jl) = 0._wp                            ! pond volume 
    227230               CASE( 1 )   ! velocity is outward 
    228                   ! 
    229                   oa_i(ji,jj,  jl) = oa_i(ib,jb,  jl) ! age 
    230                   a_ip(ji,jj,  jl) = a_ip(ib,jb,  jl) ! pond concentration 
    231                   v_ip(ji,jj,  jl) = v_ip(ib,jb,  jl) ! pond volume 
    232                   t_su(ji,jj,  jl) = t_su(ib,jb,  jl) ! temperature surface 
    233                   t_s (ji,jj,:,jl) = t_s (ib,jb,:,jl) ! temperature snw 
    234                   t_i (ji,jj,:,jl) = t_i (ib,jb,:,jl) ! temperature ice 
    235                   s_i (ji,jj,  jl) = s_i (ib,jb,  jl) ! salinity 
    236                   sz_i(ji,jj,:,jl) = sz_i(ib,jb,:,jl) ! salinity profile 
    237                   ! 
     231                  oa_i(ji,jj,jl) = oa_i(ib,jb,jl) ! age 
     232                  a_ip(ji,jj,jl) = a_ip(ib,jb,jl) ! pond concentration 
     233                  v_ip(ji,jj,jl) = v_ip(ib,jb,jl) ! pond volume 
    238234               END SELECT 
    239235               ! 
     
    374370                     jj    = idx_bdy(jbdy)%nbj(i_bdy,jgrd) 
    375371                     zflag = idx_bdy(jbdy)%flagv(i_bdy,jgrd) 
    376                      !    ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨     !  ¨¨¨¨ïce¨¨¨(jj+1)¨¨     ! ¨¨¨¨¨¨ö¨¨¨¨(jj+1)        
     372                     !                         !      ice   (jj+1)       !       o    (jj+1) 
    377373                     !       ^    (jj  )       !       ^    (jj  )       !       ^    (jj  )        
    378374                     !      ice   (jj  )       !       o    (jj  )       !       o    (jj  )        
Note: See TracChangeset for help on using the changeset viewer.