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 93 for trunk/NEMO/OPA_SRC/istate.F90 – NEMO

Ignore:
Timestamp:
2004-06-25T08:33:00+02:00 (20 years ago)
Author:
opalod
Message:

CT : UPDATE060 : A new configuration, named GYRE, has been added.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMO/OPA_SRC/istate.F90

    r79 r93  
    1010   !!   istate_sal    : analytical profile for initial Salinity 
    1111   !!   istate_eel    : initial state setting of EEL R5 configuration 
     12   !!   istate_gyre   : initial state setting of GYRE configuration 
    1213   !!   istate_uvg    : initial velocity in geostropic balance 
    1314   !!---------------------------------------------------------------------- 
     
    9899         adatrj = 0._wp 
    99100         IF( cp_cfg == 'eel' ) THEN 
    100             CALL istate_eel                      ! EEL configuration : start from pre-defined 
    101             !                                    !                     velocity and thermohaline fields 
     101            CALL istate_eel                      ! EEL   configuration : start from pre-defined 
     102            !                                    !                       velocity and thermohaline fields 
     103         ELSEIF(  cp_cfg == 'gyre') THEN          
     104            CALL istate_gyre                     ! GYRE  configuration : start from pre-defined temperature 
     105            !                                    !                       and salinity fields  
    102106         ELSE 
    103          !                                       ! Initial temperature and salinity fields 
     107         !                                       ! Other configurations: Initial temperature and salinity fields 
    104108#if defined key_dtatem 
    105109            CALL dta_tem( nit000 )                  ! read 3D temperature data 
     
    375379 
    376380 
     381   SUBROUTINE istate_gyre 
     382      !!---------------------------------------------------------------------- 
     383      !!                   ***  ROUTINE istate_gyre  *** 
     384      !!  
     385      !! ** Purpose :   Initialization of the dynamics and tracers for GYRE 
     386      !!      configuration (double gyre with rotated domain) 
     387      !! 
     388      !! ** Method  : - set temprature field 
     389      !!              - set salinity field 
     390      !! 
     391      !! ** History :                                      
     392      !!      9.0  !  04-05  (A. Koch-Larrouy)  Original code  
     393      !!---------------------------------------------------------------------- 
     394      !! * Local variables 
     395      INTEGER :: ji, jj, jk     ! dummy loop indices 
     396      !!---------------------------------------------------------------------- 
     397 
     398      IF(lwp) WRITE(numout,*) 
     399      IF(lwp) WRITE(numout,*) 'istate_gyre : initial analytical T and S profil deduced from LEVITUS ' 
     400      IF(lwp) WRITE(numout,*) '~~~~~~~~~~~' 
     401 
     402      DO jk = 1, jpk 
     403         DO jj = 1, jpj 
     404            DO ji = 1, jpi 
     405               tn(ji,jj,jk) = (  16. - 12. * TANH( (fsdept(ji,jj,jk) - 400) / 700 )         )   & 
     406                    &           * (-TANH( (500-fsdept(ji,jj,jk)) / 150 ) + 1) / 2               & 
     407                    &       + (      15. * ( 1. - TANH( (fsdept(ji,jj,jk)-50.) / 1500.) )       & 
     408                    &                - 1.4 * TANH((fsdept(ji,jj,jk)-100.) / 100.)               &     
     409                    &                + 7.  * (1500. - fsdept(ji,jj,jk)) / 1500.             )   &  
     410                    &           * (-TANH( (fsdept(ji,jj,jk) - 500) / 150) + 1) / 2 
     411               tn(ji,jj,jk) = tn(ji,jj,jk) * tmask(ji,jj,jk) 
     412               tb(ji,jj,jk) = tn(ji,jj,jk) 
     413 
     414               sn(ji,jj,jk) =  (  36.25 - 1.13 * TANH( (fsdept(ji,jj,jk) - 305) / 460 )  )  & 
     415                  &              * (-TANH((500 - fsdept(ji,jj,jk)) / 150) + 1) / 2          & 
     416                  &          + (  35.55 + 1.25 * (5000. - fsdept(ji,jj,jk)) / 5000.         & 
     417                  &                - 1.62 * TANH( (fsdept(ji,jj,jk) - 60.  ) / 650. )       & 
     418                  &                + 0.2  * TANH( (fsdept(ji,jj,jk) - 35.  ) / 100. )       & 
     419                  &                + 0.2  * TANH( (fsdept(ji,jj,jk) - 1000.) / 5000.)    )  & 
     420                  &              * (-TANH((fsdept(ji,jj,jk) - 500) / 150) + 1) / 2  
     421               sn(ji,jj,jk) = sn(ji,jj,jk) * tmask(ji,jj,jk) 
     422               sb(ji,jj,jk) = sn(ji,jj,jk) 
     423            END DO 
     424         END DO 
     425      END DO 
     426 
     427      IF(lwp) THEN 
     428         WRITE(numout,*) 
     429         WRITE(numout,*) '              Initial temperature and salinity profiles:' 
     430         WRITE(numout, "(9x,' level   gdept   temperature   salinity   ')" ) 
     431         WRITE(numout, "(10x, i4, 3f10.2)" ) ( jk, gdept(jk), tn(2,2,jk), sn(2,2,jk), jk = 1, jpk ) 
     432      ENDIF 
     433 
     434      
     435   END SUBROUTINE istate_gyre 
     436 
     437 
     438 
    377439   SUBROUTINE istate_uvg 
    378440      !!---------------------------------------------------------------------- 
Note: See TracChangeset for help on using the changeset viewer.