source: NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/DOM/iscplini.F90 @ 10402

Last change on this file since 10402 was 10402, checked in by smasson, 22 months ago

dev_r10164_HPC09_ESIWACE_PREP_MERGE: no more need of lk_mpp for mpp_sum/max/min, see #2133

  • Property svn:keywords set to Id
File size: 4.2 KB
Line 
1MODULE iscplini
2   !!======================================================================
3   !!                       ***  MODULE  sbciscpl  ***
4   !! Ocean forcing:  ?????
5   !!=====================================================================
6   !! History :  NEMO  ! 2015-01 P. Mathiot: original
7   !!----------------------------------------------------------------------
8
9   !!----------------------------------------------------------------------
10   !!   iscpl_init     : initialisation routine (namelist)
11   !!   iscpl_alloc    : allocation of correction variables
12   !!----------------------------------------------------------------------
13   USE oce             ! global tra/dyn variable
14   USE dom_oce         ! ocean space and time domain
15   !
16   USE lib_mpp         ! MPP library
17   USE lib_fortran     ! MPP library
18   USE in_out_manager  ! I/O manager
19
20   IMPLICIT NONE
21   PRIVATE
22   
23   PUBLIC   iscpl_init     
24   PUBLIC   iscpl_alloc 
25   
26   !                                 !!* namsbc_iscpl namelist *
27   LOGICAL , PUBLIC ::   ln_hsb       !:
28   INTEGER , PUBLIC ::   nn_fiscpl    !:
29   INTEGER , PUBLIC ::   nn_drown     !:
30   
31   INTEGER , PUBLIC ::   nstp_iscpl   !:
32   REAL(wp), PUBLIC ::   rdt_iscpl    !:
33   !
34   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:)   ::   hdiv_iscpl   !:
35   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) ::   htsc_iscpl   !:
36
37   !!----------------------------------------------------------------------
38   !! NEMO/OCE 4.0 , NEMO Consortium (2018)
39   !! $Id$
40   !! Software governed by the CeCILL license (see ./LICENSE)
41   !!----------------------------------------------------------------------
42CONTAINS
43
44   INTEGER FUNCTION iscpl_alloc()
45      !!----------------------------------------------------------------------
46      !!                ***  ROUTINE sbc_iscpl_alloc  ***
47      !!----------------------------------------------------------------------
48      ALLOCATE( htsc_iscpl(jpi,jpj,jpk,jpts) , hdiv_iscpl(jpi,jpj,jpk) , STAT=iscpl_alloc )
49         !
50      CALL mpp_sum ( 'iscplini', iscpl_alloc )
51      IF( iscpl_alloc > 0 )   CALL ctl_warn('iscpl_alloc: allocation of arrays failed')
52   END FUNCTION iscpl_alloc
53
54
55   SUBROUTINE iscpl_init()
56      !!----------------------------------------------------------------------
57      !!----------------------------------------------------------------------
58      INTEGER ::   ios           ! Local integer output status for namelist read
59      NAMELIST/namsbc_iscpl/ nn_fiscpl, ln_hsb, nn_drown
60      !!----------------------------------------------------------------------
61      !
62      nn_fiscpl = 0
63      ln_hsb    = .FALSE.
64      REWIND( numnam_ref )              ! Namelist namsbc_iscpl in reference namelist : Ice sheet coupling
65      READ  ( numnam_ref, namsbc_iscpl, IOSTAT = ios, ERR = 901)
66901   IF( ios /= 0 )   CALL ctl_nam ( ios , 'namsbc_iscpl in reference namelist', lwp )
67      REWIND( numnam_cfg )              ! Namelist namsbc_iscpl in configuration namelist : Ice Sheet coupling
68      READ  ( numnam_cfg, namsbc_iscpl, IOSTAT = ios, ERR = 902 )
69902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namsbc_iscpl in configuration namelist', lwp )
70      IF(lwm) WRITE ( numond, namsbc_iscpl )
71      !
72      nstp_iscpl=MIN( nn_fiscpl, nitend-nit000+1 ) ! the coupling period have to be less or egal than the total number of time step
73      rdt_iscpl = nstp_iscpl * rn_rdt
74      !
75      IF (lwp) THEN
76         WRITE(numout,*) 'iscpl_rst:'
77         WRITE(numout,*) '~~~~~~~~~'
78         WRITE(numout,*) ' coupling     flag (ln_iscpl )            = ', ln_iscpl
79         WRITE(numout,*) ' conservation flag (ln_hsb   )            = ', ln_hsb
80         WRITE(numout,*) ' nb of stp for cons (rn_fiscpl)           = ', nstp_iscpl
81         IF (nstp_iscpl .NE. nn_fiscpl) WRITE(numout,*) 'W A R N I N G: nb of stp for cons has been modified &
82            &                                           (larger than run length)'
83         WRITE(numout,*) ' coupling time step                       = ', rdt_iscpl
84         WRITE(numout,*) ' number of call of the extrapolation loop = ', nn_drown
85      ENDIF
86      !
87   END SUBROUTINE iscpl_init
88
89   !!======================================================================
90END MODULE iscplini
Note: See TracBrowser for help on using the repository browser.