/[MITgcm]/MITgcm/model/src/ini_salt.F
ViewVC logotype

Annotation of /MITgcm/model/src/ini_salt.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.25 - (hide annotations) (download)
Tue Apr 4 23:22:38 2017 UTC (7 years, 1 month ago) by jmc
Branch: MAIN
CVS Tags: checkpoint66g, checkpoint66f, checkpoint66o, checkpoint66n, checkpoint66m, checkpoint66l, checkpoint66k, checkpoint66j, checkpoint66i, checkpoint66h, HEAD
Changes since 1.24: +6 -6 lines
- add specific run-time param to select level of printed plot-field-maps,
  set by default to debugLevel.

1 jmc 1.25 C $Header: /u/gcmpack/MITgcm/model/src/ini_salt.F,v 1.24 2011/06/08 01:27:59 jmc Exp $
2 adcroft 1.13 C $Name: $
3 cnh 1.1
4 jmc 1.21 #include "PACKAGES_CONFIG.h"
5 cnh 1.7 #include "CPP_OPTIONS.h"
6 cnh 1.1
7 cnh 1.14 CBOP
8     C !ROUTINE: INI_SALT
9     C !INTERFACE:
10 jmc 1.23 SUBROUTINE INI_SALT( myThid )
11 jmc 1.24
12 cnh 1.14 C !DESCRIPTION: \bv
13     C *==========================================================*
14 jmc 1.21 C | SUBROUTINE INI_SALT
15     C | o Set model initial salinity field.
16 cnh 1.14 C *==========================================================*
17 jmc 1.21 C | There are several options for setting the initial
18     C | temperature file
19     C | 1. Inline code
20     C | 2. Vertical profile ( uniform S in X and Y )
21     C | 3. Three-dimensional data from a file. For example from
22     C | Levitus or from a checkpoint file from a previous
23     C | integration.
24     C | In addition to setting the salinity field we also
25     C | set the initial salinity tendency term here.
26 cnh 1.14 C *==========================================================*
27     C \ev
28    
29     C !USES:
30 adcroft 1.9 IMPLICIT NONE
31 cnh 1.1 C === Global variables ===
32     #include "SIZE.h"
33     #include "EEPARAMS.h"
34     #include "PARAMS.h"
35     #include "GRID.h"
36     #include "DYNVARS.h"
37 edhill 1.18 #ifdef ALLOW_MNC
38     #include "MNC_PARAMS.h"
39     #endif
40 cnh 1.1
41 cnh 1.14 C !INPUT/OUTPUT PARAMETERS:
42 cnh 1.1 C == Routine arguments ==
43 jmc 1.21 C myThid :: Number of this instance of INI_SALT
44 cnh 1.1 INTEGER myThid
45    
46 cnh 1.14 C !LOCAL VARIABLES:
47 cnh 1.1 C == Local variables ==
48 jmc 1.21 C bi,bj :: Tile indices
49 jmc 1.22 C i,j,k :: Loop counters
50 cnh 1.1 INTEGER bi, bj
51 jmc 1.22 INTEGER i, j, k, localWarnings
52 adcroft 1.13 CHARACTER*(MAX_LEN_MBUF) msgBuf
53 cnh 1.14 CEOP
54 cnh 1.1
55 adcroft 1.13 C-- Initialise salinity field to the vertical reference profile
56     DO bj = myByLo(myThid), myByHi(myThid)
57     DO bi = myBxLo(myThid), myBxHi(myThid)
58 jmc 1.22 DO k=1,Nr
59 jmc 1.25 DO j=1-OLy,sNy+OLy
60     DO i=1-OLx,sNx+OLx
61 jmc 1.22 salt(i,j,k,bi,bj) = sRef(k)
62 cnh 1.1 ENDDO
63     ENDDO
64     ENDDO
65     ENDDO
66 adcroft 1.13 ENDDO
67    
68     IF ( hydrogSaltFile .NE. ' ' ) THEN
69 edhill 1.18 #ifdef ALLOW_MNC
70 jmc 1.21 IF ( useMNC.AND.mnc_read_salt ) THEN
71 edhill 1.18 CALL MNC_FILE_CLOSE_ALL_MATCHING(hydrogSaltFile, myThid)
72     CALL MNC_CW_SET_UDIM(hydrogSaltFile, 1, myThid)
73     CALL MNC_CW_SET_CITER(hydrogSaltFile, 2, -1, -1, -1, myThid)
74     CALL MNC_CW_SET_UDIM(hydrogSaltFile, 1, myThid)
75     CALL MNC_CW_RL_R('D',hydrogSaltFile,0,0,'S',salt, myThid)
76     CALL MNC_FILE_CLOSE_ALL_MATCHING(hydrogSaltFile, myThid)
77     ELSE
78     #endif /* ALLOW_MNC */
79 jmc 1.23 CALL READ_FLD_XYZ_RL( hydrogSaltFile, ' ', salt, 0, myThid )
80 edhill 1.18 #ifdef ALLOW_MNC
81     ENDIF
82     #endif /* ALLOW_MNC */
83 jmc 1.23 _EXCH_XYZ_RL( salt, myThid )
84 cnh 1.3 ENDIF
85 adcroft 1.13
86 jmc 1.23 C-- Apply mask and test consistency
87 adcroft 1.13 localWarnings=0
88 cnh 1.1 DO bj = myByLo(myThid), myByHi(myThid)
89     DO bi = myBxLo(myThid), myBxHi(myThid)
90 jmc 1.22 DO k=1,Nr
91     IF ( maskIniSalt ) THEN
92 jmc 1.25 DO j=1-OLy,sNy+OLy
93     DO i=1-OLx,sNx+OLx
94 jmc 1.22 IF (maskC(i,j,k,bi,bj).EQ.0.) salt(i,j,k,bi,bj) = 0.
95     ENDDO
96 jmc 1.15 ENDDO
97 jmc 1.22 ENDIF
98 jmc 1.15 IF ( sRef(k).NE.0. ) THEN
99 jmc 1.22 DO j=1,sNy
100     DO i=1,sNx
101     IF ( maskC(i,j,k,bi,bj).NE.0.
102     & .AND. salt(i,j,k,bi,bj).EQ.0. ) THEN
103 jmc 1.15 localWarnings=localWarnings+1
104 adcroft 1.13 ENDIF
105 jmc 1.15 ENDDO
106 cnh 1.1 ENDDO
107 jmc 1.15 ENDIF
108 cnh 1.1 ENDDO
109     ENDDO
110     ENDDO
111 jmc 1.22 IF ( localWarnings.NE.0 ) THEN
112     IF ( checkIniSalt ) THEN
113     WRITE(msgBuf,'(A,I10,A)')
114     & ' INI_SALT: found', localWarnings,
115     & ' wet grid-pts with salt=0 identically.'
116     CALL PRINT_ERROR( msgBuf , myThid)
117     WRITE(msgBuf,'(A,A)')
118     & ' If this is intentional, you need to',
119     & ' set checkIniSalt=.false. in "data", namelist PARM05'
120     CALL PRINT_ERROR( msgBuf , myThid)
121     STOP 'ABNORMAL END: S/R INI_SALT'
122     ELSE
123     WRITE(msgBuf,'(A,I10,A)')
124     & '** WARNINGS ** INI_SALT: found', localWarnings,
125     & ' wet grid-pts with salt=0 identically.'
126     CALL PRINT_MESSAGE( msgBuf, errorMessageUnit,
127     & SQUEEZE_RIGHT, myThid )
128     ENDIF
129 adcroft 1.13 ENDIF
130 cnh 1.5
131 jmc 1.25 IF ( plotLevel.GE.debLevC ) THEN
132 jmc 1.21 CALL PLOT_FIELD_XYZRL( salt, 'Initial Salinity',
133     & Nr, 1, myThid )
134     ENDIF
135 cnh 1.5
136 cnh 1.1 RETURN
137     END

  ViewVC Help
Powered by ViewVC 1.1.22