/[MITgcm]/MITgcm/pkg/icefront/icefront_init_fixed.F
ViewVC logotype

Contents of /MITgcm/pkg/icefront/icefront_init_fixed.F

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


Revision 1.9 - (show annotations) (download)
Wed Jan 10 11:00:58 2018 UTC (6 years, 3 months ago) by mlosch
Branch: MAIN
CVS Tags: checkpoint66o, checkpoint66n, HEAD
Changes since 1.8: +4 -1 lines
declare msgBuf so that file compiles with ALLOW_EXF defined

1 C $Header: /u/gcmpack/MITgcm/pkg/icefront/icefront_init_fixed.F,v 1.8 2017/02/07 00:18:59 jmc Exp $
2 C $Name: $
3
4 #include "ICEFRONT_OPTIONS.h"
5 #ifdef ALLOW_EXF
6 # include "EXF_OPTIONS.h"
7 #endif /* ALLOW_EXF */
8 #undef ALLOW_ICEFRONT_DEBUG
9
10 SUBROUTINE ICEFRONT_INIT_FIXED( myThid )
11 C *============================================================*
12 C | SUBROUTINE ICEFRONT_INIT_FIXED
13 C | o Routine to initialize ICEFRONT parameters and variables.
14 C *============================================================*
15 C | Initialize ICEFRONT parameters and variables.
16 C *============================================================*
17 IMPLICIT NONE
18
19 C === Global variables ===
20 #include "SIZE.h"
21 #include "EEPARAMS.h"
22 #include "PARAMS.h"
23 #include "GRID.h"
24 #include "ICEFRONT.h"
25 #ifdef ALLOW_EXF
26 # include "EXF_PARAM.h"
27 #endif /* ALLOW_EXF */
28
29 C === Routine arguments ===
30 C myThid :: my Thread Id Number
31 INTEGER myThid
32
33 #ifdef ALLOW_ICEFRONT
34 C === Local variables ===
35 C I,J,K,bi,bj :: Loop counters
36 C errCount :: error counter
37 INTEGER I, J, K, bi, bj
38 INTEGER errCount
39 #ifdef ALLOW_ICEFRONT_DEBUG
40 INTEGER ISinterface
41 #endif
42 #ifdef ALLOW_EXF
43 CHARACTER*(MAX_LEN_MBUF) msgBuf
44 #endif /* ALLOW_EXF */
45
46 #ifdef ALLOW_EXF
47 IF ( useEXF .AND. SGRunOffFile .NE. ' ' ) THEN
48 _BEGIN_MASTER( myThid )
49 errCount = 0
50 # ifdef ALLOW_DEBUG
51 IF (debugMode) CALL DEBUG_CALL('GETFIELD_START SGRunOff',myThid)
52 # endif
53 CALL EXF_GETFFIELD_START( useExfYearlyFields,
54 I 'icefront', 'SGRunOff', SGRunOffperiod,
55 I SGRunOffstartdate1, SGRunOffstartdate2,
56 U SGRunOffStartTime, errCount,
57 I myThid )
58 IF ( errCount.GE.1 ) THEN
59 WRITE(msgBuf,'(A,I3,A)')
60 & 'ICEFRONT_INIT_FIXED: detected', errCount,' fatal error(s)'
61 CALL PRINT_ERROR( msgBuf, myThid )
62 CALL ALL_PROC_DIE( 0 )
63 STOP 'ABNORMAL END: S/R ICEFRONT_INIT_FIXED'
64 ENDIF
65 _END_MASTER( myThid )
66 _BARRIER
67 ENDIF
68 #endif /* ALLOW_EXF */
69
70 IF ( ICEFRONTlengthFile .NE. ' ' ) THEN
71 CALL READ_FLD_XY_RS( ICEFRONTlengthFile, ' ',
72 & icefrontlength, 0, myThid )
73 _EXCH_XY_RS( icefrontlength, myThid )
74 ENDIF
75
76 IF ( ICEFRONTdepthFile .NE. ' ' ) THEN
77 CALL READ_FLD_XY_RS( ICEFRONTdepthFile, ' ',
78 & R_icefront, 0, myThid )
79 _EXCH_XY_RS( R_icefront, myThid )
80 ENDIF
81
82 C Make sure that R_icefront is positive
83 DO bj = myByLo(myThid), myByHi(myThid)
84 DO bi = myBxLo(myThid), myBxHi(myThid)
85 DO J = 1-OLy, sNy+OLy
86 DO I = 1-OLx, sNx+OLx
87 R_icefront(I,J,bi,bj) = ABS(R_icefront(I,J,bi,bj))
88 ENDDO
89 ENDDO
90 ENDDO
91 ENDDO
92
93 DO bj = myByLo(myThid), myByHi(myThid)
94 DO bi = myBxLo(myThid), myBxHi(myThid)
95 DO J = 1-OLy, sNy+OLy
96 DO I = 1-OLx, sNx+OLx
97 K_icefront(i,j,bi,bj) = 0
98 DO K = 1 , Nr
99 IF ( R_icefront(I,J,bi,bj) .GT. ABS(rF(K)))
100 & K_icefront(I,J,bi,bj) = K
101 ENDDO
102 ENDDO
103 ENDDO
104 ENDDO
105 ENDDO
106
107 #ifdef ALLOW_ICEFRONT_DEBUG
108 DO bj = myByLo(myThid), myByHi(myThid)
109 DO bi = myBxLo(myThid), myBxHi(myThid)
110 DO J = 1, sNy
111 DO I = 1, sNx
112 C IsInterface=0
113 IF (ICEFRONTlength(I,J,bi,bj) .GT. 0. _d 0) THEN
114 C print*, 'IsInterface=', '2' , ',xuyun'
115 IsInterface=Isinterface + K_icefront(I,J,bi,bj)
116 ENDIF
117 ENDDO
118 ENDDO
119 ENDDO
120 ENDDO
121 print*, 'Interface # =', IsInterface
122 #endif /* ALLOW_ICEFRONT_DEBUG */
123
124 #ifdef ALLOW_DIAGNOSTICS
125 IF ( useDiagnostics ) THEN
126 CALL ICEFRONT_DIAGNOSTICS_INIT( myThid )
127 ENDIF
128 #endif /* ALLOW_DIAGNOSTICS */
129
130 #endif /* ALLOW_ICEFRONT */
131
132 RETURN
133 END

  ViewVC Help
Powered by ViewVC 1.1.22