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.
iscplini.F90 in branches/NERC/dev_r5589_is_oce_cpl/NEMOGCM/NEMO/OPA_SRC/DOM – NEMO

source: branches/NERC/dev_r5589_is_oce_cpl/NEMOGCM/NEMO/OPA_SRC/DOM/iscplini.F90 @ 5835

Last change on this file since 5835 was 5835, checked in by mathiot, 8 years ago

ice sheet coupling branche: cosmetic changes

File size: 3.9 KB
Line 
1MODULE iscplini
2   !!======================================================================
3   !!                       ***  MODULE  sbciscpl***
4   !! Ocean forcing:  river runoff
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 dom_oce         ! ocean space and time domain
14   USE oce             ! global tra/dyn variable
15   USE lib_mpp         ! MPP library
16   USE lib_fortran     ! MPP library
17   USE in_out_manager  ! I/O manager
18
19   IMPLICIT NONE
20   PRIVATE
21   
22   PUBLIC   iscpl_init     
23   PUBLIC   iscpl_alloc 
24   !!                                                     !!* namsbc_iscpl namelist *
25   LOGICAL , PUBLIC                                        ::   ln_hsb
26   REAL(wp), PUBLIC                                        ::   rn_fiscpl
27   REAL(wp), PUBLIC                                        ::   rdt_iscpl
28   !!                                                     !!* namsbc_iscpl namelist *
29   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:  ) ::   hdiv_iscpl
30   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) ::   htsc_iscpl
31   !! * Substitutions 
32#  include "domzgr_substitute.h90" 
33   !!----------------------------------------------------------------------
34   !! NEMO/OPA 3.3 , NEMO Consortium (2010)
35   !! $Id: sbcrnf.F90 4666 2014-06-11 12:52:23Z mathiot $
36   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt)
37   !!----------------------------------------------------------------------
38CONTAINS
39
40   INTEGER FUNCTION iscpl_alloc()
41      !!----------------------------------------------------------------------
42      !!                ***  ROUTINE sbc_iscpl_alloc  ***
43      !!----------------------------------------------------------------------
44      ALLOCATE( htsc_iscpl(jpi,jpj,jpk,jpts) , hdiv_iscpl(jpi,jpj,jpk) , STAT=iscpl_alloc )
45         !
46      IF( lk_mpp          )   CALL mpp_sum ( iscpl_alloc )
47      IF( iscpl_alloc > 0 )   CALL ctl_warn('iscpl_alloc: allocation of arrays failed')
48   END FUNCTION iscpl_alloc
49
50   SUBROUTINE iscpl_init()
51      INTEGER ::   ios           ! Local integer output status for namelist read
52      NAMELIST/namsbc_iscpl/rn_fiscpl,ln_hsb
53      !!----------------------------------------------------------------------
54      !                                   ! ============
55      !                                   !   Namelist
56      !                                   ! ============
57      !
58      rn_fiscpl = 2480.
59      ln_hsb    = .FALSE.
60      REWIND( numnam_ref )              ! Namelist namsbc_iscpl in reference namelist : Ice sheet coupling
61      READ  ( numnam_ref, namsbc_iscpl, IOSTAT = ios, ERR = 901)
62901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_iscpl in reference namelist', lwp )
63
64      REWIND( numnam_cfg )              ! Namelist namsbc_iscpl in configuration namelist : Ice Sheet coupling
65      READ  ( numnam_cfg, namsbc_iscpl, IOSTAT = ios, ERR = 902 )
66902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_iscpl in configuration namelist', lwp )
67      IF(lwm) WRITE ( numond, namsbc_iscpl )
68      !
69      rdt_iscpl=MAX(rn_fiscpl, nitend-nit000+1.0) ! the coupling period have to be less or egal than the total number of time step
70      !
71      IF (lwp) THEN
72         WRITE(numout,*) 'iscpl_rst:'
73         WRITE(numout,*) '~~~~~~~~~'
74         WRITE(numout,*) ' coupling     flag (ln_iscpl )  = ', ln_iscpl
75         WRITE(numout,*) ' conservation flag (ln_hsb   )  = ', ln_hsb
76         WRITE(numout,*) ' nb of stp for cons (rn_fiscpl) = ', rdt_iscpl
77      END IF
78
79   END SUBROUTINE iscpl_init
80
81END MODULE iscplini
Note: See TracBrowser for help on using the repository browser.