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 13237 for NEMO/trunk/src/ICE/iceistate.F90 – NEMO

Ignore:
Timestamp:
2020-07-03T11:12:53+02:00 (4 years ago)
Author:
smasson
Message:

trunk: Mid-year merge, merge back KERNEL-06_techene_e3

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/trunk/src/ICE/iceistate.F90

    r13216 r13237  
    6666   INTEGER , PARAMETER ::   jp_hpd = 9           ! index of pnd depth        (m) 
    6767   TYPE(FLD), ALLOCATABLE, DIMENSION(:) ::   si  ! structure of input fields (file informations, fields read) 
    68    !    
     68 
    6969   !! * Substitutions 
    7070#  include "do_loop_substitute.h90" 
     
    108108      REAL(wp), DIMENSION(jpi,jpj)     ::   zt_su_ini, zht_s_ini, zsm_i_ini, ztm_i_ini !data from namelist or nc file 
    109109      REAL(wp), DIMENSION(jpi,jpj)     ::   zapnd_ini, zhpnd_ini                       !data from namelist or nc file 
    110       REAL(wp), DIMENSION(jpi,jpj,jpl) ::   zti_3d , zts_3d                            !temporary arrays 
     110      REAL(wp), DIMENSION(jpi,jpj,jpl) ::   zti_3d , zts_3d                            !locak arrays 
    111111      !! 
    112112      REAL(wp), DIMENSION(:,:), ALLOCATABLE ::   zhi_2d, zhs_2d, zai_2d, zti_2d, zts_2d, ztsu_2d, zsi_2d, zaip_2d, zhip_2d 
     
    427427         ssh(:,:,Kbb) = ssh(:,:,Kbb) - snwice_mass(:,:) * r1_rho0 
    428428         ! 
    429          IF( .NOT.ln_linssh ) THEN 
    430             ! 
    431             WHERE( ht_0(:,:) > 0 )   ;   z2d(:,:) = 1._wp + ssh(:,:,Kmm)*tmask(:,:,1) / ht_0(:,:) 
    432             ELSEWHERE                ;   z2d(:,:) = 1._wp   ;   END WHERE 
    433             ! 
    434             DO jk = 1,jpkm1                     ! adjust initial vertical scale factors                 
    435                e3t(:,:,jk,Kmm) = e3t_0(:,:,jk) * z2d(:,:) 
    436                e3t(:,:,jk,Kbb) = e3t(:,:,jk,Kmm) 
    437                e3t(:,:,jk,Kaa) = e3t(:,:,jk,Kmm) 
    438             END DO 
    439             ! 
    440             ! Reconstruction of all vertical scale factors at now and before time-steps 
    441             ! ========================================================================= 
    442             ! Horizontal scale factor interpolations 
    443             ! -------------------------------------- 
    444             CALL dom_vvl_interpol( e3t(:,:,:,Kbb), e3u(:,:,:,Kbb), 'U' ) 
    445             CALL dom_vvl_interpol( e3t(:,:,:,Kbb), e3v(:,:,:,Kbb), 'V' ) 
    446             CALL dom_vvl_interpol( e3t(:,:,:,Kmm), e3u(:,:,:,Kmm), 'U' ) 
    447             CALL dom_vvl_interpol( e3t(:,:,:,Kmm), e3v(:,:,:,Kmm), 'V' ) 
    448             CALL dom_vvl_interpol( e3u(:,:,:,Kmm), e3f(:,:,:), 'F' ) 
    449             ! Vertical scale factor interpolations 
    450             ! ------------------------------------ 
    451             CALL dom_vvl_interpol( e3t(:,:,:,Kmm), e3w (:,:,:,Kmm), 'W'  ) 
    452             CALL dom_vvl_interpol( e3u(:,:,:,Kmm), e3uw(:,:,:,Kmm), 'UW' ) 
    453             CALL dom_vvl_interpol( e3v(:,:,:,Kmm), e3vw(:,:,:,Kmm), 'VW' ) 
    454             CALL dom_vvl_interpol( e3u(:,:,:,Kbb), e3uw(:,:,:,Kbb), 'UW' ) 
    455             CALL dom_vvl_interpol( e3v(:,:,:,Kbb), e3vw(:,:,:,Kbb), 'VW' ) 
    456             ! t- and w- points depth 
    457             ! ---------------------- 
    458             !!gm not sure of that.... 
    459             gdept(:,:,1,Kmm) = 0.5_wp * e3w(:,:,1,Kmm) 
    460             gdepw(:,:,1,Kmm) = 0.0_wp 
    461             gde3w(:,:,1) = gdept(:,:,1,Kmm) - ssh(:,:,Kmm) 
    462             DO jk = 2, jpk 
    463                gdept(:,:,jk,Kmm) = gdept(:,:,jk-1,Kmm) + e3w(:,:,jk  ,Kmm) 
    464                gdepw(:,:,jk,Kmm) = gdepw(:,:,jk-1,Kmm) + e3t(:,:,jk-1,Kmm) 
    465                gde3w(:,:,jk) = gdept(:,:,jk  ,Kmm) - ssh (:,:,Kmm) 
    466             END DO 
    467          ENDIF 
     429         IF( .NOT.ln_linssh )   CALL dom_vvl_zgr( Kbb, Kmm, Kaa )   ! interpolation scale factor, depth and water column 
     430! !!st 
     431!          IF( .NOT.ln_linssh ) THEN 
     432!             ! 
     433!             WHERE( ht_0(:,:) > 0 )   ;   z2d(:,:) = 1._wp + ssh(:,:,Kmm)*tmask(:,:,1) / ht_0(:,:) 
     434!             ELSEWHERE                ;   z2d(:,:) = 1._wp   ;   END WHERE 
     435!             ! 
     436!             DO jk = 1,jpkm1                     ! adjust initial vertical scale factors 
     437!                e3t(:,:,jk,Kmm) = e3t_0(:,:,jk) * z2d(:,:) 
     438!                e3t(:,:,jk,Kbb) = e3t(:,:,jk,Kmm) 
     439!                e3t(:,:,jk,Kaa) = e3t(:,:,jk,Kmm) 
     440!             END DO 
     441!             ! 
     442!             ! Reconstruction of all vertical scale factors at now and before time-steps 
     443!             ! ========================================================================= 
     444!             ! Horizontal scale factor interpolations 
     445!             ! -------------------------------------- 
     446!             CALL dom_vvl_interpol( e3t(:,:,:,Kbb), e3u(:,:,:,Kbb), 'U' ) 
     447!             CALL dom_vvl_interpol( e3t(:,:,:,Kbb), e3v(:,:,:,Kbb), 'V' ) 
     448!             CALL dom_vvl_interpol( e3t(:,:,:,Kmm), e3u(:,:,:,Kmm), 'U' ) 
     449!             CALL dom_vvl_interpol( e3t(:,:,:,Kmm), e3v(:,:,:,Kmm), 'V' ) 
     450!             CALL dom_vvl_interpol( e3u(:,:,:,Kmm), e3f(:,:,:), 'F' ) 
     451!             ! Vertical scale factor interpolations 
     452!             ! ------------------------------------ 
     453!             CALL dom_vvl_interpol( e3t(:,:,:,Kmm), e3w (:,:,:,Kmm), 'W'  ) 
     454!             CALL dom_vvl_interpol( e3u(:,:,:,Kmm), e3uw(:,:,:,Kmm), 'UW' ) 
     455!             CALL dom_vvl_interpol( e3v(:,:,:,Kmm), e3vw(:,:,:,Kmm), 'VW' ) 
     456!             CALL dom_vvl_interpol( e3u(:,:,:,Kbb), e3uw(:,:,:,Kbb), 'UW' ) 
     457!             CALL dom_vvl_interpol( e3v(:,:,:,Kbb), e3vw(:,:,:,Kbb), 'VW' ) 
     458!             ! t- and w- points depth 
     459!             ! ---------------------- 
     460!             !!gm not sure of that.... 
     461!             gdept(:,:,1,Kmm) = 0.5_wp * e3w(:,:,1,Kmm) 
     462!             gdepw(:,:,1,Kmm) = 0.0_wp 
     463!             gde3w(:,:,1) = gdept(:,:,1,Kmm) - ssh(:,:,Kmm) 
     464!             DO jk = 2, jpk 
     465!                gdept(:,:,jk,Kmm) = gdept(:,:,jk-1,Kmm) + e3w(:,:,jk  ,Kmm) 
     466!                gdepw(:,:,jk,Kmm) = gdepw(:,:,jk-1,Kmm) + e3t(:,:,jk-1,Kmm) 
     467!                gde3w(:,:,jk) = gdept(:,:,jk  ,Kmm) - ssh (:,:,Kmm) 
     468!             END DO 
     469!          ENDIF 
    468470      ENDIF 
    469471       
     
    503505      !! 
    504506      !!----------------------------------------------------------------------------- 
    505       INTEGER ::   ios   ! Local integer output status for namelist read 
    506       INTEGER ::   ifpr, ierror 
     507      INTEGER ::   ios, ifpr, ierror   ! Local integers 
     508 
    507509      ! 
    508510      CHARACTER(len=256) ::  cn_dir          ! Root directory for location of ice files 
Note: See TracChangeset for help on using the changeset viewer.