1 | MODULE iscplini |
---|
2 | !!====================================================================== |
---|
3 | !! *** MODULE sbciscpl*** |
---|
4 | !! Ocean forcing: river runoff |
---|
5 | !!===================================================================== |
---|
6 | !! History : NEMO ! 2015-01 P. Mathiot: original |
---|
7 | !!---------------------------------------------------------------------- |
---|
8 | |
---|
9 | !!---------------------------------------------------------------------- |
---|
10 | !! iscpl_rst : restart correction in case of coupling with ice sheet |
---|
11 | !! iscpl_rst_interpol : restart interpolation in case of coupling with ice sheet |
---|
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 | !!---------------------------------------------------------------------- |
---|
38 | CONTAINS |
---|
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) |
---|
62 | 901 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 ) |
---|
66 | 902 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 | |
---|
81 | END MODULE iscplini |
---|