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 NEMO/branches/2018/dev_r9759_HPC09_ESIWACE/tests/BENCH_025/MY_SRC – NEMO

source: NEMO/branches/2018/dev_r9759_HPC09_ESIWACE/tests/BENCH_025/MY_SRC/usrdef_istate.F90 @ 10136

Last change on this file since 10136 was 10136, checked in by dguibert, 6 years ago

bull: async/datatype

Experimental changes to enable/study/bench various mpi "optimisations":

  • BULL_ASYNC
  • BULL_DATATYPE_VECTOR/SUBARRAY

this has been applied to the nonosc subroutine (only for now).

File size: 3.0 KB
Line 
1MODULE usrdef_istate
2   !!======================================================================
3   !!                     ***  MODULE usrdef_istate   ***
4   !!
5   !!                      ===  BENCH configuration  ===
6   !!
7   !! User defined : set the initial state of a user configuration
8   !!======================================================================
9   !! History :  NEMO !
10   !!----------------------------------------------------------------------
11
12   !!----------------------------------------------------------------------
13   !!  usr_def_istate : initial state in Temperature and salinity
14   !!----------------------------------------------------------------------
15   USE par_oce        ! ocean space and time domain
16   USE dom_oce       
17   USE phycst         ! physical constants
18   !
19   USE in_out_manager ! I/O manager
20   USE lib_mpp        ! MPP library
21   !   
22   USE usrdef_nam
23   
24   IMPLICIT NONE
25   PRIVATE
26
27   PUBLIC   usr_def_istate   ! called by istate.F90
28
29   !!----------------------------------------------------------------------
30   !! NEMO/OPA 4.0 , NEMO Consortium (2016)
31   !! $Id$
32   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt)
33   !!----------------------------------------------------------------------
34CONTAINS
35 
36   SUBROUTINE usr_def_istate( pdept, ptmask, pts, pu, pv, pssh )
37      !!----------------------------------------------------------------------
38      !!                   ***  ROUTINE usr_def_istate  ***
39      !!
40      !! ** Purpose :   Initialization of the dynamics and tracers
41      !!                Here BENCH configuration
42      !!
43      !! ** Method  :   Set a gaussian anomaly of pressure and associated
44      !!                geostrophic velocities
45      !!----------------------------------------------------------------------
46      REAL(wp), DIMENSION(jpi,jpj,jpk)     , INTENT(in   ) ::   pdept   ! depth of t-point               [m]
47      REAL(wp), DIMENSION(jpi,jpj,jpk)     , INTENT(in   ) ::   ptmask  ! t-point ocean mask             [m]
48      REAL(wp), DIMENSION(jpi,jpj,jpk,jpts), INTENT(  out) ::   pts     ! T & S fields      [Celsius ; g/kg]
49      REAL(wp), DIMENSION(jpi,jpj,jpk)     , INTENT(  out) ::   pu      ! i-component of the velocity  [m/s]
50      REAL(wp), DIMENSION(jpi,jpj,jpk)     , INTENT(  out) ::   pv      ! j-component of the velocity  [m/s]
51      REAL(wp), DIMENSION(jpi,jpj)         , INTENT(  out) ::   pssh    ! sea-surface height
52      !!----------------------------------------------------------------------
53      !
54      IF(lwp) WRITE(numout,*)
55      IF(lwp) WRITE(numout,*) 'usr_def_istate : BENCH configuration, analytical definition of initial state'
56      IF(lwp) WRITE(numout,*) '~~~~~~~~~~~~~~   '
57      !
58      ! sea level:
59      pssh(:,:) = 0.
60      ! temperature:
61      pts(:,:,:,jp_tem) = 10._wp
62      ! salinity: 
63      pts(:,:,:,jp_sal) = 35._wp
64      ! velocities:
65      pu(:,:,:) = 0.
66      pv(:,:,:) = 0.
67      !
68
69   END SUBROUTINE usr_def_istate
70
71   !!======================================================================
72END MODULE usrdef_istate
Note: See TracBrowser for help on using the repository browser.