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 7351 for branches/2016/dev_INGV_UKMO_2016/NEMOGCM/NEMO/OPA_SRC/DOM/istate.F90 – NEMO

Ignore:
Timestamp:
2016-11-28T17:04:10+01:00 (7 years ago)
Author:
emanuelaclementi
Message:

ticket #1805 step 3: /2016/dev_INGV_UKMO_2016 aligned to the trunk at revision 7161

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2016/dev_INGV_UKMO_2016/NEMOGCM/NEMO/OPA_SRC/DOM/istate.F90

    r5930 r7351  
    3535   USE dtauvd          ! data: U & V current             (dta_uvd routine) 
    3636   USE domvvl          ! varying vertical mesh 
     37   USE iscplrst        ! ice sheet coupling 
    3738   ! 
    3839   USE in_out_manager  ! I/O manager 
     
    4950 
    5051   !! * Substitutions 
    51 #  include "domzgr_substitute.h90" 
    5252#  include "vectopt_loop_substitute.h90" 
    5353   !!---------------------------------------------------------------------- 
     
    8585      IF( ln_rstart ) THEN                    ! Restart from a file 
    8686         !                                    ! ------------------- 
    87          CALL rst_read                           ! Read the restart file 
    88          CALL day_init                           ! model calendar (using both namelist and restart infos) 
     87         CALL rst_read                        ! Read the restart file 
     88         IF (ln_iscpl)       CALL iscpl_stp   ! extraloate restart to wet and dry 
     89         CALL day_init                        ! model calendar (using both namelist and restart infos) 
    8990      ELSE 
    9091         !                                    ! Start from rest 
     
    120121            ENDIF 
    121122         ENDIF 
    122          !    
    123          ! - ML - sshn could be modified by istate_eel, so that initialization of fse3t_b is done here 
    124          IF( lk_vvl ) THEN 
     123         ! 
     124!!gm This is to be changed !!!! 
     125         ! - ML - sshn could be modified by istate_eel, so that initialization of e3t_b is done here 
     126         IF( .NOT.ln_linssh ) THEN 
    125127            DO jk = 1, jpk 
    126                fse3t_b(:,:,jk) = fse3t_n(:,:,jk) 
     128               e3t_b(:,:,jk) = e3t_n(:,:,jk) 
    127129            END DO 
    128130         ENDIF 
     131!!gm  
    129132         !  
    130133      ENDIF 
    131       ! 
    132134      !  
    133135      ! Initialize "now" and "before" barotropic velocities: 
    134       ! Do it whatever the free surface method, these arrays 
    135       ! being eventually used 
    136       ! 
     136      ! Do it whatever the free surface method, these arrays being eventually used 
    137137      ! 
    138138      un_b(:,:) = 0._wp   ;   vn_b(:,:) = 0._wp 
    139139      ub_b(:,:) = 0._wp   ;   vb_b(:,:) = 0._wp 
    140140      ! 
     141!!gm  the use of umsak & vmask is not necessary belox as un, vn, ub, vb are always masked 
    141142      DO jk = 1, jpkm1 
    142143         DO jj = 1, jpj 
    143144            DO ji = 1, jpi 
    144                un_b(ji,jj) = un_b(ji,jj) + fse3u_n(ji,jj,jk) * un(ji,jj,jk) * umask(ji,jj,jk) 
    145                vn_b(ji,jj) = vn_b(ji,jj) + fse3v_n(ji,jj,jk) * vn(ji,jj,jk) * vmask(ji,jj,jk) 
     145               un_b(ji,jj) = un_b(ji,jj) + e3u_n(ji,jj,jk) * un(ji,jj,jk) * umask(ji,jj,jk) 
     146               vn_b(ji,jj) = vn_b(ji,jj) + e3v_n(ji,jj,jk) * vn(ji,jj,jk) * vmask(ji,jj,jk) 
    146147               ! 
    147                ub_b(ji,jj) = ub_b(ji,jj) + fse3u_b(ji,jj,jk) * ub(ji,jj,jk) * umask(ji,jj,jk) 
    148                vb_b(ji,jj) = vb_b(ji,jj) + fse3v_b(ji,jj,jk) * vb(ji,jj,jk) * vmask(ji,jj,jk) 
     148               ub_b(ji,jj) = ub_b(ji,jj) + e3u_b(ji,jj,jk) * ub(ji,jj,jk) * umask(ji,jj,jk) 
     149               vb_b(ji,jj) = vb_b(ji,jj) + e3v_b(ji,jj,jk) * vb(ji,jj,jk) * vmask(ji,jj,jk) 
    149150            END DO 
    150151         END DO 
    151152      END DO 
    152153      ! 
    153       un_b(:,:) = un_b(:,:) * hur  (:,:) 
    154       vn_b(:,:) = vn_b(:,:) * hvr  (:,:) 
    155       ! 
    156       ub_b(:,:) = ub_b(:,:) * hur_b(:,:) 
    157       vb_b(:,:) = vb_b(:,:) * hvr_b(:,:) 
    158       ! 
     154      un_b(:,:) = un_b(:,:) * r1_hu_n(:,:) 
     155      vn_b(:,:) = vn_b(:,:) * r1_hv_n(:,:) 
     156      ! 
     157      ub_b(:,:) = ub_b(:,:) * r1_hu_b(:,:) 
     158      vb_b(:,:) = vb_b(:,:) * r1_hv_b(:,:) 
    159159      ! 
    160160      IF( nn_timing == 1 )   CALL timing_stop('istate_init') 
     
    184184      ! 
    185185      DO jk = 1, jpk 
    186          tsn(:,:,jk,jp_tem) = (  ( ( 7.5 - 0. * ABS( gphit(:,:) )/30. ) * ( 1.-TANH((fsdept(:,:,jk)-80.)/30.) )   & 
    187             &                + 10. * ( 5000. - fsdept(:,:,jk) ) /5000.)  ) * tmask(:,:,jk) 
     186         tsn(:,:,jk,jp_tem) = (  ( ( 7.5 - 0. * ABS( gphit(:,:) )/30. ) * ( 1.-TANH((gdept_n(:,:,jk)-80.)/30.) )   & 
     187            &                + 10. * ( 5000. - gdept_n(:,:,jk) ) /5000.)  ) * tmask(:,:,jk) 
    188188         tsb(:,:,jk,jp_tem) = tsn(:,:,jk,jp_tem) 
    189189      END DO 
     
    238238            ! 
    239239            DO jk = 1, jpk 
    240                tsn(:,:,jk,jp_tem) = ( zt2 + zt1 * exp( - fsdept(:,:,jk) / 1000 ) ) * tmask(:,:,jk) 
     240               tsn(:,:,jk,jp_tem) = ( zt2 + zt1 * exp( - gdept_n(:,:,jk) / 1000 ) ) * tmask(:,:,jk) 
    241241               tsb(:,:,jk,jp_tem) = tsn(:,:,jk,jp_tem) 
    242242            END DO 
    243             ! 
    244             IF(lwp) CALL prizre( tsn(:,:,:,jp_tem), jpi   , jpj   , jpk   , jpj/2 ,   & 
    245                &                             1     , jpi   , 5     , 1     , jpk   ,   & 
    246                &                             1     , 1.    , numout                  ) 
    247243            ! 
    248244            ! set salinity field to a constant value 
     
    314310            tsn(:,:,:,jp_tem) = tsb(:,:,:,jp_tem)                            ! set nox temperature to tb 
    315311            ! 
    316             IF(lwp) CALL prizre( tsn(:,:,:,jp_tem), jpi   , jpj   , jpk   , jpj/2 ,   & 
    317                &                            1     , jpi   , 5     , 1     , jpk   ,   & 
    318                &                            1     , 1.    , numout                  ) 
    319             ! 
    320312            ! set salinity field to a constant value 
    321313            ! -------------------------------------- 
     
    363355            DO jj = 1, jpj 
    364356               DO ji = 1, jpi 
    365                   tsn(ji,jj,jk,jp_tem) = (  16. - 12. * TANH( (fsdept(ji,jj,jk) - 400) / 700 )         )   & 
    366                        &           * (-TANH( (500-fsdept(ji,jj,jk)) / 150 ) + 1) / 2               & 
    367                        &       + (      15. * ( 1. - TANH( (fsdept(ji,jj,jk)-50.) / 1500.) )       & 
    368                        &                - 1.4 * TANH((fsdept(ji,jj,jk)-100.) / 100.)               &     
    369                        &                + 7.  * (1500. - fsdept(ji,jj,jk)) / 1500.             )   &  
    370                        &           * (-TANH( (fsdept(ji,jj,jk) - 500) / 150) + 1) / 2 
     357                  tsn(ji,jj,jk,jp_tem) = (  16. - 12. * TANH( (gdept_n(ji,jj,jk) - 400) / 700 )         )   & 
     358                       &           * (-TANH( (500-gdept_n(ji,jj,jk)) / 150 ) + 1) / 2               & 
     359                       &       + (      15. * ( 1. - TANH( (gdept_n(ji,jj,jk)-50.) / 1500.) )       & 
     360                       &                - 1.4 * TANH((gdept_n(ji,jj,jk)-100.) / 100.)               &     
     361                       &                + 7.  * (1500. - gdept_n(ji,jj,jk)) / 1500.             )   &  
     362                       &           * (-TANH( (gdept_n(ji,jj,jk) - 500) / 150) + 1) / 2 
    371363                  tsn(ji,jj,jk,jp_tem) = tsn(ji,jj,jk,jp_tem) * tmask(ji,jj,jk) 
    372364                  tsb(ji,jj,jk,jp_tem) = tsn(ji,jj,jk,jp_tem) 
    373365 
    374                   tsn(ji,jj,jk,jp_sal) =  (  36.25 - 1.13 * TANH( (fsdept(ji,jj,jk) - 305) / 460 )  )  & 
    375                      &              * (-TANH((500 - fsdept(ji,jj,jk)) / 150) + 1) / 2          & 
    376                      &          + (  35.55 + 1.25 * (5000. - fsdept(ji,jj,jk)) / 5000.         & 
    377                      &                - 1.62 * TANH( (fsdept(ji,jj,jk) - 60.  ) / 650. )       & 
    378                      &                + 0.2  * TANH( (fsdept(ji,jj,jk) - 35.  ) / 100. )       & 
    379                      &                + 0.2  * TANH( (fsdept(ji,jj,jk) - 1000.) / 5000.)    )  & 
    380                      &              * (-TANH((fsdept(ji,jj,jk) - 500) / 150) + 1) / 2  
     366                  tsn(ji,jj,jk,jp_sal) =  (  36.25 - 1.13 * TANH( (gdept_n(ji,jj,jk) - 305) / 460 )  )  & 
     367                     &              * (-TANH((500 - gdept_n(ji,jj,jk)) / 150) + 1) / 2          & 
     368                     &          + (  35.55 + 1.25 * (5000. - gdept_n(ji,jj,jk)) / 5000.         & 
     369                     &                - 1.62 * TANH( (gdept_n(ji,jj,jk) - 60.  ) / 650. )       & 
     370                     &                + 0.2  * TANH( (gdept_n(ji,jj,jk) - 35.  ) / 100. )       & 
     371                     &                + 0.2  * TANH( (gdept_n(ji,jj,jk) - 1000.) / 5000.)    )  & 
     372                     &              * (-TANH((gdept_n(ji,jj,jk) - 500) / 150) + 1) / 2  
    381373                  tsn(ji,jj,jk,jp_sal) = tsn(ji,jj,jk,jp_sal) * tmask(ji,jj,jk) 
    382374                  tsb(ji,jj,jk,jp_sal) = tsn(ji,jj,jk,jp_sal) 
     
    451443      zalfg = 0.5 * grav * rau0 
    452444       
    453       zprn(:,:,1) = zalfg * fse3w(:,:,1) * ( 1 + rhd(:,:,1) )       ! Surface value 
     445      zprn(:,:,1) = zalfg * e3w_n(:,:,1) * ( 1 + rhd(:,:,1) )       ! Surface value 
    454446 
    455447      DO jk = 2, jpkm1                                              ! Vertical integration from the surface 
    456448         zprn(:,:,jk) = zprn(:,:,jk-1)   & 
    457             &         + zalfg * fse3w(:,:,jk) * ( 2. + rhd(:,:,jk) + rhd(:,:,jk-1) ) 
     449            &         + zalfg * e3w_n(:,:,jk) * ( 2. + rhd(:,:,jk) + rhd(:,:,jk-1) ) 
    458450      END DO   
    459451 
Note: See TracChangeset for help on using the changeset viewer.