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 6736 for branches/NERC/dev_r3874_FASTNEt/NEMOGCM/NEMO/LIM_SRC_2/limrhg_2.F90 – NEMO

Ignore:
Timestamp:
2016-06-24T09:50:27+02:00 (8 years ago)
Author:
jamesharle
Message:

FASTNEt code modifications

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/NERC/dev_r3874_FASTNEt/NEMOGCM/NEMO/LIM_SRC_2/limrhg_2.F90

    r3680 r6736  
    3030   USE in_out_manager ! I/O manager 
    3131   USE prtctl         ! Print control 
    32    USE oce     , ONLY : snwice_mass, snwice_mass_b 
    33    USE lib_fortran    ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined)   
    34 #if defined key_agrif 
    35    USE agrif_lim2_interp ! nesting 
    36 #endif 
     32   USE lib_fortran    ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 
    3733 
    3834   IMPLICIT NONE 
     
    8581      REAL(wp) ::   zs21_11, zs21_12, zs21_21, zs21_22 
    8682      REAL(wp) ::   zs22_11, zs22_12, zs22_21, zs22_22 
    87       REAL(wp) ::   zintb, zintn 
    8883      REAL(wp), POINTER, DIMENSION(:,:) ::   zfrld, zmass, zcorl 
    8984      REAL(wp), POINTER, DIMENSION(:,:) ::   za1ct, za2ct, zresr 
    9085      REAL(wp), POINTER, DIMENSION(:,:) ::   zc1u, zc1v, zc2u, zc2v 
    91       REAL(wp), POINTER, DIMENSION(:,:) ::   zsang, zpice 
     86      REAL(wp), POINTER, DIMENSION(:,:) ::   zsang 
    9287      REAL(wp), POINTER, DIMENSION(:,:) ::   zu0, zv0 
    9388      REAL(wp), POINTER, DIMENSION(:,:) ::   zu_n, zv_n 
     
    9994       
    10095      CALL wrk_alloc( jpi,jpj, zfrld, zmass, zcorl, za1ct, za2ct, zresr ) 
    101       CALL wrk_alloc( jpi,jpj, zc1u , zc1v , zc2u , zc2v , zsang, zpice ) 
     96      CALL wrk_alloc( jpi,jpj, zc1u , zc1v , zc2u , zc2v , zsang ) 
    10297      CALL wrk_alloc( jpi,jpj+2, zu0, zv0, zu_n, zv_n, zu_a, zv_a, zviszeta, zviseta, kjstart = 0 ) 
    10398      CALL wrk_alloc( jpi,jpj+2, zzfrld, zztms, zi1, zi2, zmasst, zpresh, kjstart = 0 ) 
     
    135130!i    zviszeta(:,jpj+1) = 0._wp    ;    zviseta(:,jpj+1) = 0._wp 
    136131 
    137       IF( nn_ice_embd == 2 ) THEN             !== embedded sea ice: compute representative ice top surface ==! 
    138           ! 
    139           ! average interpolation coeff as used in dynspg = (1/nn_fsbc) * {SUM[n/nn_fsbc], n=0,nn_fsbc-1} 
    140           !                                               = (1/nn_fsbc)^2 * {SUM[n], n=0,nn_fsbc-1} 
    141          zintn = REAL( nn_fsbc - 1 ) / REAL( nn_fsbc ) * 0.5_wp 
    142           ! 
    143           ! average interpolation coeff as used in dynspg = (1/nn_fsbc) * {SUM[1-n/nn_fsbc], n=0,nn_fsbc-1} 
    144           !                                               = (1/nn_fsbc)^2 * (nn_fsbc^2 - {SUM[n], n=0,nn_fsbc-1}) 
    145          zintb = REAL( nn_fsbc + 1 ) / REAL( nn_fsbc ) * 0.5_wp 
    146           ! 
    147          zpice(:,:) = ssh_m(:,:) + (  zintn * snwice_mass(:,:) +  zintb * snwice_mass_b(:,:)  ) * r1_rau0 
    148           ! 
    149          ! 
    150       ELSE                                    !== non-embedded sea ice: use ocean surface for slope calculation ==! 
    151          zpice(:,:) = ssh_m(:,:) 
    152       ENDIF 
    153 #if defined key_agrif 
    154       ! load the boundary value of velocity in special array zuive and zvice 
    155       CALL agrif_rhg_lim2_load 
    156 #endif 
    157132 
    158133      ! Ice mass, ice strength, and wind stress at the center            | 
     
    222197 
    223198            ! Gradient of the sea surface height 
    224             zgsshx =  (   (zpice(ji  ,jj  ) - zpice(ji-1,jj  ))/e1u(ji-1,jj  )   & 
    225                &       +  (zpice(ji  ,jj-1) - zpice(ji-1,jj-1))/e1u(ji-1,jj-1)   ) * 0.5_wp 
    226             zgsshy =  (   (zpice(ji  ,jj  ) - zpice(ji  ,jj-1))/e2v(ji  ,jj-1)   & 
    227                &       +  (zpice(ji-1,jj  ) - zpice(ji-1,jj-1))/e2v(ji-1,jj-1)   ) * 0.5_wp 
     199            zgsshx =  (   (ssh_m(ji  ,jj  ) - ssh_m(ji-1,jj  ))/e1u(ji-1,jj  )   & 
     200               &       +  (ssh_m(ji  ,jj-1) - ssh_m(ji-1,jj-1))/e1u(ji-1,jj-1)   ) * 0.5_wp 
     201            zgsshy =  (   (ssh_m(ji  ,jj  ) - ssh_m(ji  ,jj-1))/e2v(ji  ,jj-1)   & 
     202               &       +  (ssh_m(ji-1,jj  ) - ssh_m(ji-1,jj-1))/e2v(ji-1,jj-1)   ) * 0.5_wp 
    228203 
    229204            ! Computation of the velocity field taking into account the ice-ice interaction.                                  
     
    559534            CALL lbc_lnk( zv_n(:,1:jpj), 'I', -1. ) 
    560535 
    561 #if defined key_agrif 
    562             ! copy the boundary value from u_ice_nst and v_ice_nst to u_ice and v_ice 
    563             ! before next interations 
    564             CALL agrif_rhg_lim2(zu_n,zv_n) 
    565 #endif 
    566  
    567536            ! Test of Convergence 
    568537            DO jj = k_j1+1 , k_jpj-1 
     
    607576 
    608577      CALL wrk_dealloc( jpi,jpj, zfrld, zmass, zcorl, za1ct, za2ct, zresr ) 
    609       CALL wrk_dealloc( jpi,jpj, zc1u , zc1v , zc2u , zc2v , zsang, zpice ) 
     578      CALL wrk_dealloc( jpi,jpj, zc1u , zc1v , zc2u , zc2v , zsang ) 
    610579      CALL wrk_dealloc( jpi,jpj+2, zu0, zv0, zu_n, zv_n, zu_a, zv_a, zviszeta, zviseta, kjstart = 0 ) 
    611580      CALL wrk_dealloc( jpi,jpj+2, zzfrld, zztms, zi1, zi2, zmasst, zpresh, kjstart = 0 ) 
Note: See TracChangeset for help on using the changeset viewer.