File indexing completed on 2018-03-02 18:41:40 UTC
view on githubraw file Latest commit add29e06 on 2018-01-31 20:35:05 UTC
e88bb90518 Ed H*0001 #include "LAND_OPTIONS.h"
0002
0003
0004
0005
0006
0007
0008 SUBROUTINE LAND_MNC_INIT(
0009 I sNx,sNy, OLx,OLy, nSx,nSy, nPx,nPy, Nland_lev,
0010 I myThid )
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037 implicit none
0038 #ifdef ALLOW_MNC
51f3863fef Mart*0039 #include "MNC_COMMON.h"
e88bb90518 Ed H*0040 #endif /* ALLOW_MNC */
0041 #include "EEPARAMS.h"
0042
0043
0044 integer myThid
0045 integer sNx,sNy, OLx,OLy, nSx,nSy, nPx,nPy
0046 integer Nland_lev
0047
0048
0049 #ifdef ALLOW_MNC
0050
0051
0052 integer CW_MAX_LOC
0053 parameter ( CW_MAX_LOC = 5 )
0054 integer i, ihorz,ihsub,ivert,itime,ihalo, is,ih, n,ntot
0055 integer ndim, ncomb, nvch
0056 character*(MNC_MAX_CHAR) name
0057 character*(MNC_MAX_CHAR) dn(CW_MAX_LOC)
0058 character*(5) horz_dat(CW_MAX_LOC), hsub_dat(CW_MAX_LOC),
0059 & vert_dat(CW_MAX_LOC), time_dat(CW_MAX_LOC),
0060 & halo_dat(CW_MAX_LOC)
0061 integer dim(CW_MAX_LOC), ib(CW_MAX_LOC), ie(CW_MAX_LOC)
0062
0063
0064 integer ILNBLNK
0065 external ILNBLNK
0066
0067
0068 data horz_dat /
0069 & '- ', 'U ', 'V ', 'Cen ', 'Cor ' /
0070 data hsub_dat /
0071 & 'xy ', 'x ', 'y ', '- ', ' ' /
0072 data halo_dat /
0073 & 'Hn ', 'Hy ', '-- ', ' ', ' ' /
0074 data vert_dat /
0075 & 'Zland', ' ', ' ', ' ', ' ' /
0076 data time_dat /
0077 & '- ', 't ', ' ', ' ', ' ' /
0078
0079
0080 ncomb = 0
0081 DO ihorz = 1,5
0082 DO is = 1,3
0083 DO ih = 1,2
0084
0085
0086 ihsub = is
0087 ihalo = ih
0088 IF (ihorz .EQ. 1) THEN
0089 IF ((is .EQ. 1) .AND. (ih .EQ. 1)) THEN
0090 ihsub = 4
0091 ihalo = 3
0092 ELSE
0093 GOTO 10
0094 ENDIF
0095 ENDIF
0096
0097 DO ivert = 1,1
0098 DO itime = 1,2
0099
0100
0101 name(1:MNC_MAX_CHAR) = mnc_blank_name(1:MNC_MAX_CHAR)
0102 n = ILNBLNK(horz_dat(ihorz))
0103 name(1:n) = horz_dat(ihorz)(1:n)
0104 ntot = n + 1
0105 name(ntot:ntot) = '_'
0106 n = ILNBLNK(hsub_dat(ihsub))
0107 name((ntot+1):(ntot+n)) = hsub_dat(ihsub)(1:n)
0108 ntot = ntot + n
0109
0110
0111 write(name((ntot+1):(ntot+5)), '(a1,2a2)')
0112 & '_', halo_dat(ihalo)(1:2), '__'
0113 nvch = ILNBLNK(vert_dat(ivert))
0114 n = ntot+6+nvch-1
0115 name((ntot+6):(n)) = vert_dat(ivert)(1:nvch)
0116 write(name((n+1):(n+3)), '(a2,a1)')
0117 & '__', time_dat(itime)(1:1)
0118
0119 ndim = 0
0120 DO i = 1,CW_MAX_LOC
0121 dn(i)(1:MNC_MAX_CHAR)=mnc_blank_name(1:MNC_MAX_CHAR)
0122 dim(i) = 0
0123 ib(i) = 0
0124 ie(i) = 0
0125 ENDDO
0126
0127
0128 IF (halo_dat(ihalo)(1:5) .EQ. 'Hn ') THEN
0129
0130 IF (hsub_dat(ihsub)(1:1) .EQ. 'x') THEN
0131 ndim = ndim + 1
0132 IF ( (horz_dat(ihorz)(1:3) .EQ. 'Cen')
0133 & .OR. (horz_dat(ihorz)(1:1) .EQ. 'V') ) THEN
0134 dn(ndim)(1:1) = 'X'
0135 dim(ndim) = sNx + 2*OLx
0136 ib(ndim) = OLx + 1
0137 ie(ndim) = OLx + sNx
0138 ENDIF
0139 IF ( (horz_dat(ihorz)(1:3) .EQ. 'Cor')
0140 & .OR. (horz_dat(ihorz)(1:1) .EQ. 'U') ) THEN
0141 dn(ndim)(1:3) = 'Xp1'
0142 dim(ndim) = sNx + 2*OLx
0143 ib(ndim) = OLx + 1
0144 ie(ndim) = OLx + sNx + 1
0145 ENDIF
0146 ENDIF
0147 IF ((hsub_dat(ihsub)(1:1) .EQ. 'y')
0148 & .OR. (hsub_dat(ihsub)(2:2) .EQ. 'y')) THEN
0149 ndim = ndim + 1
0150 IF ( (horz_dat(ihorz)(1:3) .EQ. 'Cen')
0151 & .OR. (horz_dat(ihorz)(1:1) .EQ. 'U') ) THEN
0152 dn(ndim)(1:1) = 'Y'
0153 dim(ndim) = sNy + 2*OLy
0154 ib(ndim) = OLy + 1
0155 ie(ndim) = OLy + sNy
0156 ENDIF
0157 IF ( (horz_dat(ihorz)(1:3) .EQ. 'Cor')
0158 & .OR. (horz_dat(ihorz)(1:1) .EQ. 'V') ) THEN
0159 dn(ndim)(1:3) = 'Yp1'
0160 dim(ndim) = sNy + 2*OLy
0161 ib(ndim) = OLy + 1
0162 ie(ndim) = OLy + sNy + 1
0163 ENDIF
0164 ENDIF
0165
0166 ELSEIF (halo_dat(ihalo)(1:5) .EQ. 'Hy ') THEN
0167
0168 IF (hsub_dat(ihsub)(1:1) .EQ. 'x') THEN
0169 ndim = ndim + 1
0170 dn(ndim)(1:3) = 'Xwh'
0171 dim(ndim) = sNx + 2*OLx
0172 ib(ndim) = 1
0173 ie(ndim) = sNx + 2*OLx
0174 ENDIF
0175 IF ((hsub_dat(ihsub)(1:1) .EQ. 'y')
0176 & .OR. (hsub_dat(ihsub)(2:2) .EQ. 'y')) THEN
0177 ndim = ndim + 1
0178 dn(ndim)(1:3) = 'Ywh'
0179 dim(ndim) = sNy + 2*OLy
0180 ib(ndim) = 1
0181 ie(ndim) = sNy + 2*OLy
0182 ENDIF
0183
0184 ENDIF
0185
0186
0187 IF (vert_dat(ivert)(1:5) .EQ. 'Zland') THEN
0188 ndim = ndim + 1
0189 dn(ndim)(1:5) = 'Zland'
0190 dim(ndim) = Nland_lev
0191 ib(ndim) = 1
0192 ie(ndim) = Nland_lev
0193 ENDIF
0194
0195
0196 IF ( (time_dat(itime)(1:1) .EQ. 't')
0197 & .and. (ndim .ne. 0) ) THEN
0198 ndim = ndim + 1
0199 dn(ndim)(1:1) = 'T'
0200 dim(ndim) = -1
0201 ib(ndim) = 1
0202 ie(ndim) = 1
0203 ENDIF
0204
0205 IF (ndim .GT. 0) THEN
0206
0207 CALL MNC_CW_ADD_GNAME(name, ndim,
0208 & dim, dn, ib, ie, myThid)
0209
0210 ENDIF
0211
0212 ENDDO
0213 ENDDO
0214
0215 10 CONTINUE
0216 ENDDO
0217 ENDDO
0218 ENDDO
0219
cf701ea57b Ed H*0220
0221 CALL MNC_CW_ADD_VNAME(
0222 & 'land_groundT','Cen_xy_Hn__Zland__t',4,5,myThid)
0223 CALL MNC_CW_ADD_VATTR_TEXT('land_groundT','units','---',myThid)
0224
0225 CALL MNC_CW_ADD_VNAME(
0226 & 'land_enthalp','Cen_xy_Hn__Zland__t',4,5,myThid)
0227 CALL MNC_CW_ADD_VATTR_TEXT('land_enthalp','units','---',myThid)
0228
0229 CALL MNC_CW_ADD_VNAME(
0230 & 'land_groundW','Cen_xy_Hn__Zland__t',4,5,myThid)
0231 CALL MNC_CW_ADD_VATTR_TEXT('land_groundW','units','---',myThid)
0232
0233 CALL MNC_CW_ADD_VNAME('land_skinT','Cen_xy_Hn__-__t',3,4,myThid)
0234 CALL MNC_CW_ADD_VATTR_TEXT('land_skinT','units','---',myThid)
0235 CALL MNC_CW_ADD_VNAME('land_hSnow','Cen_xy_Hn__-__t',3,4,myThid)
0236 CALL MNC_CW_ADD_VATTR_TEXT('land_hSnow','units','---',myThid)
0237 CALL MNC_CW_ADD_VNAME('land_snAge','Cen_xy_Hn__-__t',3,4,myThid)
0238 CALL MNC_CW_ADD_VATTR_TEXT('land_snAge','units','---',myThid)
0239 CALL MNC_CW_ADD_VNAME('land_RunOff','Cen_xy_Hn__-__t',3,4,myThid)
0240 CALL MNC_CW_ADD_VATTR_TEXT('land_RunOff','units','---',myThid)
0241 CALL MNC_CW_ADD_VNAME('land_enRnOf','Cen_xy_Hn__-__t',3,4,myThid)
0242 CALL MNC_CW_ADD_VATTR_TEXT('land_enRnOf','units','---',myThid)
0243
0244 CALL MNC_CW_ADD_VNAME('land_HeatFx','Cen_xy_Hn__-__t',3,4,myThid)
0245 CALL MNC_CW_ADD_VATTR_TEXT('land_HeatFx','units','---',myThid)
0246 CALL MNC_CW_ADD_VNAME('land_frWaFx','Cen_xy_Hn__-__t',3,4,myThid)
0247 CALL MNC_CW_ADD_VATTR_TEXT('land_frWaFx','units','---',myThid)
0248 CALL MNC_CW_ADD_VNAME('land_EnWaFx','Cen_xy_Hn__-__t',3,4,myThid)
0249 CALL MNC_CW_ADD_VATTR_TEXT('land_EnWaFx','units','---',myThid)
0250
e88bb90518 Ed H*0251 #endif /* ALLOW_MNC */
0252
0253 RETURN
0254 END
0255
0256