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.
usrdef_istate.F90 in branches/2016/dev_r6409_SIMPLIF_2_usrdef/NEMOGCM/CONFIG/OVERFLOW/MY_SRC – NEMO

source: branches/2016/dev_r6409_SIMPLIF_2_usrdef/NEMOGCM/CONFIG/OVERFLOW/MY_SRC/usrdef_istate.F90 @ 6895

Last change on this file since 6895 was 6895, checked in by flavoni, 8 years ago

commit usrdef routines for OVERFLOW

File size: 3.4 KB
Line 
1MODULE usrdef_istate
2   !!==============================================================================
3   !!                       ***  MODULE usrdef_istate   ***
4   !! User defined : set the initial state of a user configuration
5   !!==============================================================================
6   !! History :  NEMO ! 2016-03  (S. Flavoni) Original code
7   !!----------------------------------------------------------------------
8
9   !!----------------------------------------------------------------------
10   !!  usr_def_istate : initial state in Temperature and salinity
11   !!----------------------------------------------------------------------
12   USE par_oce        ! ocean space and time domain
13   USE phycst         ! physical constants
14   !
15   USE in_out_manager ! I/O manager
16   USE lib_mpp        ! MPP library
17   
18   IMPLICIT NONE
19   PRIVATE
20
21   PUBLIC   usr_def_istate   ! called in istate.F90  module
22
23   !!----------------------------------------------------------------------
24   !! NEMO/OPA 3.7 , NEMO Consortium (2014)
25   !! $Id:$
26   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt)
27   !!----------------------------------------------------------------------
28CONTAINS
29 
30   SUBROUTINE usr_def_istate( pdept, ptmask, pts, pu, pv, pssh )
31      !!----------------------------------------------------------------------
32      !!                   ***  ROUTINE usr_def_istate  ***
33      !!
34      !! ** Purpose :   Initialization of the dynamics and tracers
35      !!                Here OVERFLOW configuration example
36      !!
37      !! ** Method  : - set temprature field
38      !!              - set salinity   field
39      !!----------------------------------------------------------------------
40      REAL(wp), DIMENSION(jpi,jpj,jpk)     , INTENT(in   ) ::   pdept   ! depth of t-point               [m]
41      REAL(wp), DIMENSION(jpi,jpj,jpk)     , INTENT(in   ) ::   ptmask  ! t-point ocean mask             [m]
42      REAL(wp), DIMENSION(jpi,jpj,jpk,jpts), INTENT(  out) ::   pts     ! T & S fields      [Celcius ; g/kg]
43      REAL(wp), DIMENSION(jpi,jpj,jpk)     , INTENT(  out) ::   pu      ! i-component of the velocity  [m/s]
44      REAL(wp), DIMENSION(jpi,jpj,jpk)     , INTENT(  out) ::   pv      ! j-component of the velocity  [m/s]
45      REAL(wp), DIMENSION(jpi,jpj)         , INTENT(  out) ::   pssh    ! sea-surface height
46      !
47      INTEGER :: ji, jj, jk  ! dummy loop indices
48      INTEGRE :: dam         ! location of dam
49      !!----------------------------------------------------------------------
50      !
51      IF(lwp) WRITE(numout,*)
52      IF(lwp) WRITE(numout,*) 'usr_def_istate : analytical definition of initial state '
53      IF(lwp) WRITE(numout,*) '~~~~~~~~~~~~~~   Ocean at rest, with a dam on T profile, and uniform S profile'
54      !
55      pu  (:,:,:) = 0._wp        ! ocean at rest
56      pv  (:,:,:) = 0._wp
57      pssh(:,:)   = 0._wp
58      !
59      DO jk = 1, jpk            ! T & S profiles
60         DO jj = 1, jpj
61            DO ji = 1, jpi
62                IF( ji .LE. dam ) THEN
63                   pts(ji,jj,jk,jp_tem) = 10.  * tmask(ji,jj,jk)
64                ELSE
65                   pts(ji,jj,jk,jp_tem) = 20. * tmask(ji,jj,jk)
66                ENDIF
67          END DO
68        END DO
69      END DO
70      !
71      pts(:,:,:,jp_sal) = 35. * tmask(:,:,:)
72      !   
73   END SUBROUTINE usr_def_istate
74
75   !!======================================================================
76END MODULE usrdef_istate
Note: See TracBrowser for help on using the repository browser.