C ***********************************************************
C Fortran file translated from WHIRL Thu Dec 11 13:18:18 2003
C ***********************************************************
C ***********************************************************

      SUBROUTINE box_forward(ILEV1)
      use w2f__types
      use active_module
      IMPLICIT NONE
C
C     **** Global Variables ****
C
      COMMON /pa_parameters_r/ HUNDRED, THOUSAND, DAY, YEAR, SV,
     >  DAYS_PER_50M_MIXED_LAYER, GAMMA_T, GAMMA_S, EPSILON_IC,
     >  NOISE_CORRELATION_TIME, INTEGRATION_TIME, EPSILON_REGULARIZE,
     >  FDEPS
      type(active) :: HUNDRED
      type(active) :: THOUSAND
      type(active) :: DAY
      type(active) :: YEAR
      type(active) :: SV
      type(active) :: DAYS_PER_50M_MIXED_LAYER
      type(active) :: GAMMA_T
      type(active) :: GAMMA_S
      type(active) :: EPSILON_IC
      type(active) :: NOISE_CORRELATION_TIME
      type(active) :: INTEGRATION_TIME
      type(active) :: EPSILON_REGULARIZE
      type(active) :: FDEPS
      COMMON /fi_forcing_params_r/ NULLFORCE, FW, TSTAR, SSTAR
      type(active) :: NULLFORCE(1 : 2)
      type(active) :: FW(1 : 2)
      type(active) :: TSTAR(1 : 2)
      type(active) :: SSTAR(1 : 2)
      COMMON /fi_density_r/ RHO
      type(active) :: RHO(1 : 3)
      COMMON /fi_state_r/ TOLD, TNOW, TNEW, SOLD, SNOW, SNEW
      type(active) :: TOLD(1 : 3)
      type(active) :: TNOW(1 : 3)
      type(active) :: TNEW(1 : 3)
      type(active) :: SOLD(1 : 3)
      type(active) :: SNOW(1 : 3)
      type(active) :: SNEW(1 : 3)
      COMMON /fi_velocity_r/ UVEL
      type(active) :: UVEL
C
C     **** Parameters and Result ****
C
      INTEGER(w2f__i4) ILEV1
      
C
C     **** Local Variables and functions ****
C
      EXTERNAL box_cycle_fields
      EXTERNAL box_density
      EXTERNAL box_robert_filter
      EXTERNAL box_timestep
      EXTERNAL box_transport
      INTEGER(w2f__i4) IKEY
      INTEGER(w2f__i4) ISBYTE
      PARAMETER ( ISBYTE = 8)
      INTEGER(w2f__i4) L
      INTEGER(w2f__i4) NDIM
      PARAMETER ( NDIM = 3)
      INTEGER(w2f__i4) NLEV1
      PARAMETER ( NLEV1 = 73)
      INTEGER(w2f__i4) NLEV2
      PARAMETER ( NLEV2 = 50)
C
C     **** statements ****
C
      IKEY = ILEV1
      CALL box_density(TNOW,SNOW,RHO)
      CALL box_transport(RHO,UVEL)
      CALL box_timestep(GAMMA_T,TSTAR,NULLFORCE,UVEL,TNOW,TOLD,TNEW)
      CALL box_timestep(GAMMA_S,SSTAR,FW,UVEL,SNOW,SOLD,SNEW)
      CALL box_robert_filter(TNOW,TOLD,TNEW)
      CALL box_robert_filter(SNOW,SOLD,SNEW)
      CALL box_cycle_fields()
      DO L = 1, 3, 1
        IF (TNOW(L)%v .LT. (-2.0D00)) THEN
          TNOW(L)%v = 2.0D00
          CALL zero_deriv(TNOW(L))
        ENDIF
      END DO
      RETURN
      END SUBROUTINE

      SUBROUTINE box_final_state()
      use w2f__types
      use active_module
      IMPLICIT NONE
C
C     **** Global Variables ****
C
      COMMON /fi_state_r/ TOLD, TNOW, TNEW, SOLD, SNOW, SNEW
      type(active) :: TOLD(1 : 3)
      type(active) :: TNOW(1 : 3)
      type(active) :: TNEW(1 : 3)
      type(active) :: SOLD(1 : 3)
      type(active) :: SNOW(1 : 3)
      type(active) :: SNEW(1 : 3)
      COMMON /fi_final_state_r/ TSVEC
      type(active) :: TSVEC(1 : 6)
C
C     **** Local Variables and functions ****
C
      INTEGER(w2f__i4) ISBYTE
      PARAMETER ( ISBYTE = 8)
      INTEGER(w2f__i4) L
      INTEGER(w2f__i4) NDIM
      PARAMETER ( NDIM = 3)
      INTEGER(w2f__i4) NLEV1
      PARAMETER ( NLEV1 = 73)
      INTEGER(w2f__i4) NLEV2
      PARAMETER ( NLEV2 = 50)
C
C     **** statements ****
C
      DO L = 1, 6, 1
        TSVEC(L)%v = 0.0D00
        CALL zero_deriv(TSVEC(L))
      END DO
      DO L = 1, 3, 1
        TSVEC(L)%v = TNOW(L)%v
        CALL setderiv(TSVEC(L),TNOW(L))
        TSVEC(L+3)%v = SNOW(L)%v
        CALL setderiv(TSVEC(L+3),SNOW(L))
      END DO
      RETURN
      END SUBROUTINE

      SUBROUTINE box_ini_fields()
      use w2f__types
      use active_module
      IMPLICIT NONE
C
C     **** Global Variables ****
C
      COMMON /pa_geometry_r/ BLENGTH, BHEIGHT, BWIDTH, AREA, VOL
      type(active) :: BLENGTH(1 : 3)
      type(active) :: BHEIGHT(1 : 3)
      type(active) :: BWIDTH
      type(active) :: AREA(1 : 3)
      type(active) :: VOL(1 : 3)
      COMMON /pa_parameters_r/ HUNDRED, THOUSAND, DAY, YEAR, SV,
     >  DAYS_PER_50M_MIXED_LAYER, GAMMA_T, GAMMA_S, EPSILON_IC,
     >  NOISE_CORRELATION_TIME, INTEGRATION_TIME, EPSILON_REGULARIZE,
     >  FDEPS
      type(active) :: HUNDRED
      type(active) :: THOUSAND
      type(active) :: DAY
      type(active) :: YEAR
      type(active) :: SV
      type(active) :: DAYS_PER_50M_MIXED_LAYER
      type(active) :: GAMMA_T
      type(active) :: GAMMA_S
      type(active) :: EPSILON_IC
      type(active) :: NOISE_CORRELATION_TIME
      type(active) :: INTEGRATION_TIME
      type(active) :: EPSILON_REGULARIZE
      type(active) :: FDEPS
      COMMON /fi_forcing_params_r/ NULLFORCE, FW, TSTAR, SSTAR
      type(active) :: NULLFORCE(1 : 2)
      type(active) :: FW(1 : 2)
      type(active) :: TSTAR(1 : 2)
      type(active) :: SSTAR(1 : 2)
      COMMON /fi_metric_r/ METRIC
      type(active) :: METRIC
      COMMON /fi_metric_aux_r/ METRIC1, METRIC2
      type(active) :: METRIC1
      type(active) :: METRIC2
      COMMON /fi_ini_r/ UBAR, T, S
      type(active) :: UBAR
      type(active) :: T(1 : 3)
      type(active) :: S(1 : 3)
      COMMON /fi_state_r/ TOLD, TNOW, TNEW, SOLD, SNOW, SNEW
      type(active) :: TOLD(1 : 3)
      type(active) :: TNOW(1 : 3)
      type(active) :: TNEW(1 : 3)
      type(active) :: SOLD(1 : 3)
      type(active) :: SNOW(1 : 3)
      type(active) :: SNEW(1 : 3)
      COMMON /fi_thc_r/ THC_TOT, THC_T, THC_S
      type(active) :: THC_TOT
      type(active) :: THC_T
      type(active) :: THC_S
      COMMON /fi_final_state_r/ TSVEC
      type(active) :: TSVEC(1 : 6)
      COMMON /fi_velocity_r/ UVEL
      type(active) :: UVEL
      COMMON /fi_controls_r/ XX
      type(active) :: XX(1 : 6)
      type(active) :: ADF90_Symbol_140
      type(active) :: ADF90_Symbol_141
      type(active) :: ADF90_Symbol_142
      type(active) :: ADF90_Symbol_138
      type(active) :: ADF90_Symbol_139
      type(active) :: ADF90_Symbol_144
      type(active) :: ADF90_Symbol_145
      type(active) :: ADF90_Symbol_150
      type(active) :: ADF90_Symbol_146
      type(active) :: ADF90_Symbol_151
      type(active) :: ADF90_Symbol_147
      type(active) :: ADF90_Symbol_152
      type(active) :: ADF90_Symbol_148
      type(active) :: ADF90_Symbol_153
      type(active) :: ADF90_Symbol_154
      type(active) :: ADF90_Symbol_440
      type(active) :: ADF90_Symbol_441
      type(active) :: ADF90_Symbol_436
      type(active) :: ADF90_Symbol_442
      type(active) :: ADF90_Symbol_437
      type(active) :: ADF90_Symbol_443
      type(active) :: ADF90_Symbol_438
      type(active) :: ADF90_Symbol_444
      type(active) :: ADF90_Symbol_439
      type(active) :: ADF90_Symbol_450
      type(active) :: ADF90_Symbol_445
      type(active) :: ADF90_Symbol_451
      type(active) :: ADF90_Symbol_446
      type(active) :: ADF90_Symbol_452
      type(active) :: ADF90_Symbol_447
      type(active) :: ADF90_Symbol_453
      type(active) :: ADF90_Symbol_448
      type(active) :: ADF90_Symbol_454
      type(active) :: ADF90_Symbol_449
C
C     **** Local Variables and functions ****
C
      INTEGER(w2f__i4) ISBYTE
      PARAMETER ( ISBYTE = 8)
      INTEGER(w2f__i4) L
      INTEGER(w2f__i4) NDIM
      PARAMETER ( NDIM = 3)
      INTEGER(w2f__i4) NLEV1
      PARAMETER ( NLEV1 = 73)
      INTEGER(w2f__i4) NLEV2
      PARAMETER ( NLEV2 = 50)
C
C     **** statements ****
C
      THC_TOT%v = 0.0D00
      CALL zero_deriv(THC_TOT)
      THC_T%v = 0.0D00
      CALL zero_deriv(THC_T)
      THC_S%v = 0.0D00
      CALL zero_deriv(THC_S)
      METRIC1%v = 0.0D00
      CALL zero_deriv(METRIC1)
      METRIC2%v = 0.0D00
      CALL zero_deriv(METRIC2)
      METRIC%v = 0.0D00
      CALL zero_deriv(METRIC)
      NULLFORCE(1)%v = 0.0D00
      CALL zero_deriv(NULLFORCE(1))
      NULLFORCE(2)%v = 0.0D00
      CALL zero_deriv(NULLFORCE(2))
      ADF90_Symbol_141%v = (HUNDRED%v/YEAR%v)
      ADF90_Symbol_138%v = (ADF90_Symbol_141%v*3.5D+01)
      ADF90_Symbol_146%v = (AREA(1)%v*ADF90_Symbol_138%v)
      ADF90_Symbol_139%v = ADF90_Symbol_138%v
      ADF90_Symbol_144%v = (1 _w2f__i8/YEAR%v)
      ADF90_Symbol_145%v = (-(HUNDRED%v/(YEAR%v*YEAR%v)))
      ADF90_Symbol_142%v = 3.5D+01
      ADF90_Symbol_140%v = AREA(1)%v
      FW(1)%v = ADF90_Symbol_146%v
      ADF90_Symbol_436%v = (ADF90_Symbol_142%v*ADF90_Symbol_140%v)
      ADF90_Symbol_437%v = (ADF90_Symbol_144%v*ADF90_Symbol_436%v)
      ADF90_Symbol_439%v = (ADF90_Symbol_145%v*ADF90_Symbol_436%v)
      ADF90_Symbol_441%v = ADF90_Symbol_139%v
      CALL setderiv(ADF90_Symbol_442,AREA(1))
      CALL setderiv(ADF90_Symbol_440,YEAR)
      CALL setderiv(ADF90_Symbol_438,HUNDRED)
      CALL sax(ADF90_Symbol_437%v,ADF90_Symbol_438,FW(1))
      CALL saxpy(ADF90_Symbol_439%v,ADF90_Symbol_440,FW(1))
      CALL saxpy(ADF90_Symbol_441%v,ADF90_Symbol_442,FW(1))
      FW(2)%v = (-FW(1)%v)
      ADF90_Symbol_147%v = -1 _w2f__i8
      ADF90_Symbol_443%v = ADF90_Symbol_147%v
      CALL setderiv(ADF90_Symbol_444,FW(1))
      CALL sax(ADF90_Symbol_443%v,ADF90_Symbol_444,FW(2))
      TSTAR(1)%v = 2.2D+01
      CALL zero_deriv(TSTAR(1))
      TSTAR(2)%v = 0.0D00
      CALL zero_deriv(TSTAR(2))
      SSTAR(1)%v = 3.6D+01
      CALL zero_deriv(SSTAR(1))
      SSTAR(2)%v = 3.4D+01
      CALL zero_deriv(SSTAR(2))
      ADF90_Symbol_150%v = (SV%v*2.0D+01)
      ADF90_Symbol_148%v = 2.0D+01
      UBAR%v = ADF90_Symbol_150%v
      ADF90_Symbol_445%v = ADF90_Symbol_148%v
      CALL setderiv(ADF90_Symbol_446,SV)
      CALL sax(ADF90_Symbol_445%v,ADF90_Symbol_446,UBAR)
      T(1)%v = 2.0D+01
      CALL zero_deriv(T(1))
      T(2)%v = 1.0D00
      CALL zero_deriv(T(2))
      T(3)%v = 1.0D00
      CALL zero_deriv(T(3))
      S(1)%v = 3.55D+01
      CALL zero_deriv(S(1))
      S(2)%v = 3.45D+01
      CALL zero_deriv(S(2))
      S(3)%v = 3.45D+01
      CALL zero_deriv(S(3))
      DO L = 1, 6, 1
        TSVEC(L)%v = 0.0D00
        CALL zero_deriv(TSVEC(L))
      END DO
      DO L = 1, 3, 1
        T(L)%v = (T(L)%v+XX(L)%v)
        ADF90_Symbol_151%v = 1 _w2f__i8
        ADF90_Symbol_152%v = 1 _w2f__i8
        ADF90_Symbol_447%v = ADF90_Symbol_151%v
        ADF90_Symbol_449%v = ADF90_Symbol_152%v
        CALL setderiv(ADF90_Symbol_450,XX(L))
        CALL setderiv(ADF90_Symbol_448,T(L))
        CALL sax(ADF90_Symbol_447%v,ADF90_Symbol_448,T(L))
        CALL saxpy(ADF90_Symbol_449%v,ADF90_Symbol_450,T(L))
        S(L)%v = (S(L)%v+XX(L+3)%v)
        ADF90_Symbol_153%v = 1 _w2f__i8
        ADF90_Symbol_154%v = 1 _w2f__i8
        ADF90_Symbol_451%v = ADF90_Symbol_153%v
        ADF90_Symbol_453%v = ADF90_Symbol_154%v
        CALL setderiv(ADF90_Symbol_454,XX(L+3))
        CALL setderiv(ADF90_Symbol_452,S(L))
        CALL sax(ADF90_Symbol_451%v,ADF90_Symbol_452,S(L))
        CALL saxpy(ADF90_Symbol_453%v,ADF90_Symbol_454,S(L))
      END DO
      DO L = 1, 3, 1
        TNEW(L)%v = T(L)%v
        CALL setderiv(TNEW(L),T(L))
        SNEW(L)%v = S(L)%v
        CALL setderiv(SNEW(L),S(L))
        TOLD(L)%v = T(L)%v
        CALL setderiv(TOLD(L),T(L))
        SOLD(L)%v = S(L)%v
        CALL setderiv(SOLD(L),S(L))
        TNOW(L)%v = T(L)%v
        CALL setderiv(TNOW(L),T(L))
        SNOW(L)%v = S(L)%v
        CALL setderiv(SNOW(L),S(L))
      END DO
      UVEL%v = UBAR%v
      CALL setderiv(UVEL,UBAR)
      RETURN
      END SUBROUTINE

      SUBROUTINE box_ini_params()
      use w2f__types
      use active_module
      IMPLICIT NONE
C
C     **** Global Variables ****
C
      COMMON /pa_density_r/ ALPHA, BETA
      type(active) :: ALPHA
      type(active) :: BETA
      COMMON /pa_geometry_r/ BLENGTH, BHEIGHT, BWIDTH, AREA, VOL
      type(active) :: BLENGTH(1 : 3)
      type(active) :: BHEIGHT(1 : 3)
      type(active) :: BWIDTH
      type(active) :: AREA(1 : 3)
      type(active) :: VOL(1 : 3)
      COMMON /pa_parameters_r/ HUNDRED, THOUSAND, DAY, YEAR, SV,
     >  DAYS_PER_50M_MIXED_LAYER, GAMMA_T, GAMMA_S, EPSILON_IC,
     >  NOISE_CORRELATION_TIME, INTEGRATION_TIME, EPSILON_REGULARIZE,
     >  FDEPS
      type(active) :: HUNDRED
      type(active) :: THOUSAND
      type(active) :: DAY
      type(active) :: YEAR
      type(active) :: SV
      type(active) :: DAYS_PER_50M_MIXED_LAYER
      type(active) :: GAMMA_T
      type(active) :: GAMMA_S
      type(active) :: EPSILON_IC
      type(active) :: NOISE_CORRELATION_TIME
      type(active) :: INTEGRATION_TIME
      type(active) :: EPSILON_REGULARIZE
      type(active) :: FDEPS
      COMMON /pa_transport_r/ U0, DELTA
      type(active) :: U0
      type(active) :: DELTA
      COMMON /pa_timestep_r/ DELTA_T
      type(active) :: DELTA_T
      COMMON /pa_numbers_i/ N_MAX
      INTEGER(w2f__i4) N_MAX
      COMMON /pa_algebra_r/ Y, R, R1, R_T, R_S, PROJ_T, PROJ_S, X
      type(active) :: Y(1 : 6)
      type(active) :: R(1 : 6)
      type(active) :: R1(1 : 6)
      type(active) :: R_T(1 : 6)
      type(active) :: R_S(1 : 6)
      type(active) :: PROJ_T(1 : 6)
      type(active) :: PROJ_S(1 : 6)
      type(active) :: X(1 : 6, 1 : 6)
      COMMON /pa_robert_filter_r/ ROBERT_FILTER_COEFF
      type(active) :: ROBERT_FILTER_COEFF
      COMMON /pa_switches_l/ VERBMODE
      LOGICAL(w2f__i4) VERBMODE
      type(active) :: ADF90_Symbol_201
      type(active) :: ADF90_Symbol_202
      type(active) :: ADF90_Symbol_203
      type(active) :: ADF90_Symbol_204
      type(active) :: ADF90_Symbol_155
      type(active) :: ADF90_Symbol_160
      type(active) :: ADF90_Symbol_205
      type(active) :: ADF90_Symbol_210
      type(active) :: ADF90_Symbol_156
      type(active) :: ADF90_Symbol_161
      type(active) :: ADF90_Symbol_206
      type(active) :: ADF90_Symbol_211
      type(active) :: ADF90_Symbol_157
      type(active) :: ADF90_Symbol_162
      type(active) :: ADF90_Symbol_158
      type(active) :: ADF90_Symbol_163
      type(active) :: ADF90_Symbol_208
      type(active) :: ADF90_Symbol_213
      type(active) :: ADF90_Symbol_159
      type(active) :: ADF90_Symbol_164
      type(active) :: ADF90_Symbol_209
      type(active) :: ADF90_Symbol_214
      type(active) :: ADF90_Symbol_165
      type(active) :: ADF90_Symbol_170
      type(active) :: ADF90_Symbol_220
      type(active) :: ADF90_Symbol_166
      type(active) :: ADF90_Symbol_171
      type(active) :: ADF90_Symbol_216
      type(active) :: ADF90_Symbol_167
      type(active) :: ADF90_Symbol_172
      type(active) :: ADF90_Symbol_217
      type(active) :: ADF90_Symbol_222
      type(active) :: ADF90_Symbol_168
      type(active) :: ADF90_Symbol_173
      type(active) :: ADF90_Symbol_223
      type(active) :: ADF90_Symbol_169
      type(active) :: ADF90_Symbol_174
      type(active) :: ADF90_Symbol_219
      type(active) :: ADF90_Symbol_175
      type(active) :: ADF90_Symbol_180
      type(active) :: ADF90_Symbol_225
      type(active) :: ADF90_Symbol_176
      type(active) :: ADF90_Symbol_181
      type(active) :: ADF90_Symbol_226
      type(active) :: ADF90_Symbol_231
      type(active) :: ADF90_Symbol_177
      type(active) :: ADF90_Symbol_182
      type(active) :: ADF90_Symbol_232
      type(active) :: ADF90_Symbol_178
      type(active) :: ADF90_Symbol_183
      type(active) :: ADF90_Symbol_228
      type(active) :: ADF90_Symbol_179
      type(active) :: ADF90_Symbol_184
      type(active) :: ADF90_Symbol_229
      type(active) :: ADF90_Symbol_234
      type(active) :: ADF90_Symbol_190
      type(active) :: ADF90_Symbol_235
      type(active) :: ADF90_Symbol_240
      type(active) :: ADF90_Symbol_186
      type(active) :: ADF90_Symbol_241
      type(active) :: ADF90_Symbol_187
      type(active) :: ADF90_Symbol_192
      type(active) :: ADF90_Symbol_237
      type(active) :: ADF90_Symbol_242
      type(active) :: ADF90_Symbol_188
      type(active) :: ADF90_Symbol_193
      type(active) :: ADF90_Symbol_238
      type(active) :: ADF90_Symbol_243
      type(active) :: ADF90_Symbol_239
      type(active) :: ADF90_Symbol_244
      type(active) :: ADF90_Symbol_195
      type(active) :: ADF90_Symbol_250
      type(active) :: ADF90_Symbol_196
      type(active) :: ADF90_Symbol_246
      type(active) :: ADF90_Symbol_251
      type(active) :: ADF90_Symbol_247
      type(active) :: ADF90_Symbol_252
      type(active) :: ADF90_Symbol_198
      type(active) :: ADF90_Symbol_248
      type(active) :: ADF90_Symbol_253
      type(active) :: ADF90_Symbol_199
      type(active) :: ADF90_Symbol_249
      type(active) :: ADF90_Symbol_254
      type(active) :: ADF90_Symbol_255
      type(active) :: ADF90_Symbol_260
      type(active) :: ADF90_Symbol_261
      type(active) :: ADF90_Symbol_257
      type(active) :: ADF90_Symbol_262
      type(active) :: ADF90_Symbol_258
      type(active) :: ADF90_Symbol_263
      type(active) :: ADF90_Symbol_259
      type(active) :: ADF90_Symbol_264
      type(active) :: ADF90_Symbol_270
      type(active) :: ADF90_Symbol_265
      type(active) :: ADF90_Symbol_271
      type(active) :: ADF90_Symbol_266
      type(active) :: ADF90_Symbol_272
      type(active) :: ADF90_Symbol_267
      type(active) :: ADF90_Symbol_273
      type(active) :: ADF90_Symbol_268
      type(active) :: ADF90_Symbol_274
      type(active) :: ADF90_Symbol_269
      type(active) :: ADF90_Symbol_275
      type(active) :: ADF90_Symbol_500
      type(active) :: ADF90_Symbol_501
      type(active) :: ADF90_Symbol_502
      type(active) :: ADF90_Symbol_503
      type(active) :: ADF90_Symbol_504
      type(active) :: ADF90_Symbol_510
      type(active) :: ADF90_Symbol_505
      type(active) :: ADF90_Symbol_460
      type(active) :: ADF90_Symbol_455
      type(active) :: ADF90_Symbol_511
      type(active) :: ADF90_Symbol_506
      type(active) :: ADF90_Symbol_461
      type(active) :: ADF90_Symbol_456
      type(active) :: ADF90_Symbol_512
      type(active) :: ADF90_Symbol_507
      type(active) :: ADF90_Symbol_462
      type(active) :: ADF90_Symbol_457
      type(active) :: ADF90_Symbol_513
      type(active) :: ADF90_Symbol_508
      type(active) :: ADF90_Symbol_463
      type(active) :: ADF90_Symbol_458
      type(active) :: ADF90_Symbol_514
      type(active) :: ADF90_Symbol_509
      type(active) :: ADF90_Symbol_464
      type(active) :: ADF90_Symbol_459
      type(active) :: ADF90_Symbol_520
      type(active) :: ADF90_Symbol_515
      type(active) :: ADF90_Symbol_470
      type(active) :: ADF90_Symbol_465
      type(active) :: ADF90_Symbol_521
      type(active) :: ADF90_Symbol_516
      type(active) :: ADF90_Symbol_471
      type(active) :: ADF90_Symbol_466
      type(active) :: ADF90_Symbol_522
      type(active) :: ADF90_Symbol_517
      type(active) :: ADF90_Symbol_472
      type(active) :: ADF90_Symbol_467
      type(active) :: ADF90_Symbol_523
      type(active) :: ADF90_Symbol_518
      type(active) :: ADF90_Symbol_473
      type(active) :: ADF90_Symbol_468
      type(active) :: ADF90_Symbol_524
      type(active) :: ADF90_Symbol_519
      type(active) :: ADF90_Symbol_474
      type(active) :: ADF90_Symbol_469
      type(active) :: ADF90_Symbol_530
      type(active) :: ADF90_Symbol_525
      type(active) :: ADF90_Symbol_480
      type(active) :: ADF90_Symbol_475
      type(active) :: ADF90_Symbol_531
      type(active) :: ADF90_Symbol_526
      type(active) :: ADF90_Symbol_481
      type(active) :: ADF90_Symbol_476
      type(active) :: ADF90_Symbol_532
      type(active) :: ADF90_Symbol_527
      type(active) :: ADF90_Symbol_482
      type(active) :: ADF90_Symbol_477
      type(active) :: ADF90_Symbol_533
      type(active) :: ADF90_Symbol_528
      type(active) :: ADF90_Symbol_483
      type(active) :: ADF90_Symbol_478
      type(active) :: ADF90_Symbol_534
      type(active) :: ADF90_Symbol_529
      type(active) :: ADF90_Symbol_484
      type(active) :: ADF90_Symbol_479
      type(active) :: ADF90_Symbol_540
      type(active) :: ADF90_Symbol_535
      type(active) :: ADF90_Symbol_490
      type(active) :: ADF90_Symbol_485
      type(active) :: ADF90_Symbol_541
      type(active) :: ADF90_Symbol_536
      type(active) :: ADF90_Symbol_491
      type(active) :: ADF90_Symbol_486
      type(active) :: ADF90_Symbol_542
      type(active) :: ADF90_Symbol_537
      type(active) :: ADF90_Symbol_492
      type(active) :: ADF90_Symbol_487
      type(active) :: ADF90_Symbol_543
      type(active) :: ADF90_Symbol_538
      type(active) :: ADF90_Symbol_493
      type(active) :: ADF90_Symbol_488
      type(active) :: ADF90_Symbol_544
      type(active) :: ADF90_Symbol_539
      type(active) :: ADF90_Symbol_494
      type(active) :: ADF90_Symbol_489
      type(active) :: ADF90_Symbol_550
      type(active) :: ADF90_Symbol_545
      type(active) :: ADF90_Symbol_495
      type(active) :: ADF90_Symbol_551
      type(active) :: ADF90_Symbol_546
      type(active) :: ADF90_Symbol_496
      type(active) :: ADF90_Symbol_552
      type(active) :: ADF90_Symbol_547
      type(active) :: ADF90_Symbol_497
      type(active) :: ADF90_Symbol_553
      type(active) :: ADF90_Symbol_548
      type(active) :: ADF90_Symbol_498
      type(active) :: ADF90_Symbol_554
      type(active) :: ADF90_Symbol_549
      type(active) :: ADF90_Symbol_499
      type(active) :: ADF90_Symbol_560
      type(active) :: ADF90_Symbol_555
      type(active) :: ADF90_Symbol_561
      type(active) :: ADF90_Symbol_556
      type(active) :: ADF90_Symbol_562
      type(active) :: ADF90_Symbol_557
      type(active) :: ADF90_Symbol_563
      type(active) :: ADF90_Symbol_558
      type(active) :: ADF90_Symbol_559
C
C     **** Local Variables and functions ****
C
      INTEGER(w2f__i4) I
      INTEGER(w2f__i4) ISBYTE
      PARAMETER ( ISBYTE = 8)
      INTEGER(w2f__i4) J
      INTEGER(w2f__i4) L
      INTEGER(w2f__i4) NDIM
      PARAMETER ( NDIM = 3)
      INTEGER(w2f__i4) NLEV1
      PARAMETER ( NLEV1 = 73)
      INTEGER(w2f__i4) NLEV2
      PARAMETER ( NLEV2 = 50)
C
C     **** statements ****
C
      VERBMODE = .FALSE.
      BLENGTH(1)%v = 5.0D+08
      CALL zero_deriv(BLENGTH(1))
      BLENGTH(2)%v = 1.0D+08
      CALL zero_deriv(BLENGTH(2))
      BLENGTH(3)%v = BLENGTH(1)%v
      CALL setderiv(BLENGTH(3),BLENGTH(1))
      BHEIGHT(1)%v = 1.0D+05
      CALL zero_deriv(BHEIGHT(1))
      BHEIGHT(3)%v = 4.0D+05
      CALL zero_deriv(BHEIGHT(3))
      BHEIGHT(2)%v = (BHEIGHT(1)%v+BHEIGHT(3)%v)
      ADF90_Symbol_155%v = 1 _w2f__i8
      ADF90_Symbol_156%v = 1 _w2f__i8
      ADF90_Symbol_455%v = ADF90_Symbol_155%v
      ADF90_Symbol_457%v = ADF90_Symbol_156%v
      CALL setderiv(ADF90_Symbol_458,BHEIGHT(3))
      CALL setderiv(ADF90_Symbol_456,BHEIGHT(1))
      CALL sax(ADF90_Symbol_455%v,ADF90_Symbol_456,BHEIGHT(2))
      CALL saxpy(ADF90_Symbol_457%v,ADF90_Symbol_458,BHEIGHT(2))
      ADF90_Symbol_157%v = (BHEIGHT(1)%v+BHEIGHT(3)%v)
      ADF90_Symbol_162%v = (BHEIGHT(1)%v/ADF90_Symbol_157%v)
      ADF90_Symbol_158%v = (1 _w2f__i8/ADF90_Symbol_157%v)
      ADF90_Symbol_160%v = 1 _w2f__i8
      ADF90_Symbol_161%v = 1 _w2f__i8
      ADF90_Symbol_159%v = (-(BHEIGHT(1)%v/(ADF90_Symbol_157%v*ADF90_Sym
     +bol_157%v)))
      DELTA%v = ADF90_Symbol_162%v
      ADF90_Symbol_459%v = (ADF90_Symbol_160%v*ADF90_Symbol_159%v)
      ADF90_Symbol_461%v = (ADF90_Symbol_161%v*ADF90_Symbol_159%v)
      ADF90_Symbol_463%v = ADF90_Symbol_158%v
      CALL setderiv(ADF90_Symbol_464,BHEIGHT(1))
      CALL setderiv(ADF90_Symbol_462,BHEIGHT(3))
      CALL setderiv(ADF90_Symbol_460,BHEIGHT(1))
      CALL sax(ADF90_Symbol_459%v,ADF90_Symbol_460,DELTA)
      CALL saxpy(ADF90_Symbol_461%v,ADF90_Symbol_462,DELTA)
      CALL saxpy(ADF90_Symbol_463%v,ADF90_Symbol_464,DELTA)
      BWIDTH%v = 4.0D+08
      CALL zero_deriv(BWIDTH)
      ADF90_Symbol_165%v = (BLENGTH(1)%v*BWIDTH%v)
      ADF90_Symbol_163%v = BWIDTH%v
      ADF90_Symbol_164%v = BLENGTH(1)%v
      AREA(1)%v = ADF90_Symbol_165%v
      ADF90_Symbol_465%v = ADF90_Symbol_163%v
      ADF90_Symbol_467%v = ADF90_Symbol_164%v
      CALL setderiv(ADF90_Symbol_468,BWIDTH)
      CALL setderiv(ADF90_Symbol_466,BLENGTH(1))
      CALL sax(ADF90_Symbol_465%v,ADF90_Symbol_466,AREA(1))
      CALL saxpy(ADF90_Symbol_467%v,ADF90_Symbol_468,AREA(1))
      ADF90_Symbol_168%v = (BLENGTH(2)%v*BWIDTH%v)
      ADF90_Symbol_166%v = BWIDTH%v
      ADF90_Symbol_167%v = BLENGTH(2)%v
      AREA(2)%v = ADF90_Symbol_168%v
      ADF90_Symbol_469%v = ADF90_Symbol_166%v
      ADF90_Symbol_471%v = ADF90_Symbol_167%v
      CALL setderiv(ADF90_Symbol_472,BWIDTH)
      CALL setderiv(ADF90_Symbol_470,BLENGTH(2))
      CALL sax(ADF90_Symbol_469%v,ADF90_Symbol_470,AREA(2))
      CALL saxpy(ADF90_Symbol_471%v,ADF90_Symbol_472,AREA(2))
      ADF90_Symbol_171%v = (BLENGTH(3)%v*BWIDTH%v)
      ADF90_Symbol_169%v = BWIDTH%v
      ADF90_Symbol_170%v = BLENGTH(3)%v
      AREA(3)%v = ADF90_Symbol_171%v
      ADF90_Symbol_473%v = ADF90_Symbol_169%v
      ADF90_Symbol_475%v = ADF90_Symbol_170%v
      CALL setderiv(ADF90_Symbol_476,BWIDTH)
      CALL setderiv(ADF90_Symbol_474,BLENGTH(3))
      CALL sax(ADF90_Symbol_473%v,ADF90_Symbol_474,AREA(3))
      CALL saxpy(ADF90_Symbol_475%v,ADF90_Symbol_476,AREA(3))
      ADF90_Symbol_174%v = (AREA(1)%v*BHEIGHT(1)%v)
      ADF90_Symbol_172%v = BHEIGHT(1)%v
      ADF90_Symbol_173%v = AREA(1)%v
      VOL(1)%v = ADF90_Symbol_174%v
      ADF90_Symbol_477%v = ADF90_Symbol_172%v
      ADF90_Symbol_479%v = ADF90_Symbol_173%v
      CALL setderiv(ADF90_Symbol_480,BHEIGHT(1))
      CALL setderiv(ADF90_Symbol_478,AREA(1))
      CALL sax(ADF90_Symbol_477%v,ADF90_Symbol_478,VOL(1))
      CALL saxpy(ADF90_Symbol_479%v,ADF90_Symbol_480,VOL(1))
      ADF90_Symbol_175%v = (BHEIGHT(1)%v+BHEIGHT(3)%v)
      ADF90_Symbol_180%v = (AREA(2)%v*ADF90_Symbol_175%v)
      ADF90_Symbol_176%v = ADF90_Symbol_175%v
      ADF90_Symbol_178%v = 1 _w2f__i8
      ADF90_Symbol_179%v = 1 _w2f__i8
      ADF90_Symbol_177%v = AREA(2)%v
      VOL(2)%v = ADF90_Symbol_180%v
      ADF90_Symbol_481%v = (ADF90_Symbol_178%v*ADF90_Symbol_177%v)
      ADF90_Symbol_483%v = (ADF90_Symbol_179%v*ADF90_Symbol_177%v)
      ADF90_Symbol_485%v = ADF90_Symbol_176%v
      CALL setderiv(ADF90_Symbol_486,AREA(2))
      CALL setderiv(ADF90_Symbol_484,BHEIGHT(3))
      CALL setderiv(ADF90_Symbol_482,BHEIGHT(1))
      CALL sax(ADF90_Symbol_481%v,ADF90_Symbol_482,VOL(2))
      CALL saxpy(ADF90_Symbol_483%v,ADF90_Symbol_484,VOL(2))
      CALL saxpy(ADF90_Symbol_485%v,ADF90_Symbol_486,VOL(2))
      ADF90_Symbol_183%v = (AREA(3)%v*BHEIGHT(3)%v)
      ADF90_Symbol_181%v = BHEIGHT(3)%v
      ADF90_Symbol_182%v = AREA(3)%v
      VOL(3)%v = ADF90_Symbol_183%v
      ADF90_Symbol_487%v = ADF90_Symbol_181%v
      ADF90_Symbol_489%v = ADF90_Symbol_182%v
      CALL setderiv(ADF90_Symbol_490,BHEIGHT(3))
      CALL setderiv(ADF90_Symbol_488,AREA(3))
      CALL sax(ADF90_Symbol_487%v,ADF90_Symbol_488,VOL(3))
      CALL saxpy(ADF90_Symbol_489%v,ADF90_Symbol_490,VOL(3))
      ROBERT_FILTER_COEFF%v = 2.5D-01
      CALL zero_deriv(ROBERT_FILTER_COEFF)
      HUNDRED%v = 1.0D+02
      CALL zero_deriv(HUNDRED)
      THOUSAND%v = 1.0D+03
      CALL zero_deriv(THOUSAND)
      DAY%v = 8.64D+04
      CALL zero_deriv(DAY)
      ADF90_Symbol_186%v = (DAY%v*3.65D+02)
      ADF90_Symbol_184%v = 3.65D+02
      YEAR%v = ADF90_Symbol_186%v
      ADF90_Symbol_491%v = ADF90_Symbol_184%v
      CALL setderiv(ADF90_Symbol_492,DAY)
      CALL sax(ADF90_Symbol_491%v,ADF90_Symbol_492,YEAR)
      SV%v = 1.0D+12
      CALL zero_deriv(SV)
      ADF90_Symbol_187%v = (SV%v*1.6D+01)
      ADF90_Symbol_192%v = (ADF90_Symbol_187%v/4.00000000000000019169D-0
     +4)
      ADF90_Symbol_190%v = 1.6D+01
      ADF90_Symbol_188%v = 2500 _w2f__i8
      U0%v = ADF90_Symbol_192%v
      ADF90_Symbol_493%v = (ADF90_Symbol_190%v*ADF90_Symbol_188%v)
      CALL setderiv(ADF90_Symbol_494,SV)
      CALL sax(ADF90_Symbol_493%v,ADF90_Symbol_494,U0)
      ALPHA%v = 1.6679999999999998864D-04
      CALL zero_deriv(ALPHA)
      BETA%v = 7.81000000000000010186D-04
      CALL zero_deriv(BETA)
      DAYS_PER_50M_MIXED_LAYER%v = 5.0D+01
      CALL zero_deriv(DAYS_PER_50M_MIXED_LAYER)
      ADF90_Symbol_193%v = (DAY%v*3.0D+02)
      ADF90_Symbol_198%v = (1D00/ADF90_Symbol_193%v)
      ADF90_Symbol_196%v = 3.0D+02
      ADF90_Symbol_195%v = (-(1D00/(ADF90_Symbol_193%v*ADF90_Symbol_193%
     +v)))
      GAMMA_T%v = ADF90_Symbol_198%v
      ADF90_Symbol_495%v = (ADF90_Symbol_196%v*ADF90_Symbol_195%v)
      CALL setderiv(ADF90_Symbol_496,DAY)
      CALL sax(ADF90_Symbol_495%v,ADF90_Symbol_496,GAMMA_T)
      ADF90_Symbol_202%v = (BHEIGHT(1)%v/5.0D+03)
      ADF90_Symbol_203%v = (DAY%v*DAYS_PER_50M_MIXED_LAYER%v)
      ADF90_Symbol_199%v = (ADF90_Symbol_202%v*ADF90_Symbol_203%v)
      ADF90_Symbol_210%v = (0.0D00/ADF90_Symbol_199%v)
      ADF90_Symbol_206%v = 0 _w2f__i8
      ADF90_Symbol_204%v = ADF90_Symbol_203%v
      ADF90_Symbol_208%v = DAYS_PER_50M_MIXED_LAYER%v
      ADF90_Symbol_209%v = DAY%v
      ADF90_Symbol_205%v = ADF90_Symbol_202%v
      ADF90_Symbol_201%v = (-0.0D00/(ADF90_Symbol_199%v*ADF90_Symbol_199
     +%v))
      GAMMA_S%v = ADF90_Symbol_210%v
      ADF90_Symbol_497%v = (ADF90_Symbol_204%v*ADF90_Symbol_201%v)
      ADF90_Symbol_498%v = (ADF90_Symbol_205%v*ADF90_Symbol_201%v)
      ADF90_Symbol_499%v = (ADF90_Symbol_208%v*ADF90_Symbol_498%v)
      ADF90_Symbol_501%v = (ADF90_Symbol_209%v*ADF90_Symbol_498%v)
      ADF90_Symbol_503%v = (ADF90_Symbol_206%v*ADF90_Symbol_497%v)
      CALL setderiv(ADF90_Symbol_504,BHEIGHT(1))
      CALL setderiv(ADF90_Symbol_502,DAYS_PER_50M_MIXED_LAYER)
      CALL setderiv(ADF90_Symbol_500,DAY)
      CALL sax(ADF90_Symbol_499%v,ADF90_Symbol_500,GAMMA_S)
      CALL saxpy(ADF90_Symbol_501%v,ADF90_Symbol_502,GAMMA_S)
      CALL saxpy(ADF90_Symbol_503%v,ADF90_Symbol_504,GAMMA_S)
      EPSILON_IC%v = (-1.00000000000000004792D-04)
      CALL zero_deriv(EPSILON_IC)
      ADF90_Symbol_213%v = (DAY%v*1.5D+01)
      ADF90_Symbol_211%v = 1.5D+01
      NOISE_CORRELATION_TIME%v = ADF90_Symbol_213%v
      ADF90_Symbol_505%v = ADF90_Symbol_211%v
      CALL setderiv(ADF90_Symbol_506,DAY)
      CALL sax(ADF90_Symbol_505%v,ADF90_Symbol_506,NOISE_CORRELATION_TIM
     +E)
      ADF90_Symbol_216%v = (DAY%v*5.0D00)
      ADF90_Symbol_214%v = 5.0D00
      DELTA_T%v = ADF90_Symbol_216%v
      ADF90_Symbol_507%v = ADF90_Symbol_214%v
      CALL setderiv(ADF90_Symbol_508,DAY)
      CALL sax(ADF90_Symbol_507%v,ADF90_Symbol_508,DELTA_T)
      WRITE(*,*)'delta_t = ',DELTA_T%v
      ADF90_Symbol_219%v = (YEAR%v*5.0D+01)
      ADF90_Symbol_217%v = 5.0D+01
      INTEGRATION_TIME%v = ADF90_Symbol_219%v
      ADF90_Symbol_509%v = ADF90_Symbol_217%v
      CALL setderiv(ADF90_Symbol_510,YEAR)
      CALL sax(ADF90_Symbol_509%v,ADF90_Symbol_510,INTEGRATION_TIME)
      WRITE(*,*)'integration_time = ',INTEGRATION_TIME%v
      N_MAX = INT(INTEGRATION_TIME%v/DELTA_T%v)
      WRITE(*, *) 'n_max = ', N_MAX
      FDEPS%v = 9.99999999999999954748D-07
      CALL zero_deriv(FDEPS)
      ADF90_Symbol_222%v = (THOUSAND%v/3.2680000000000000715D-02)
      ADF90_Symbol_220%v = 31 _w2f__i8
      Y(1)%v = ADF90_Symbol_222%v
      ADF90_Symbol_511%v = ADF90_Symbol_220%v
      CALL setderiv(ADF90_Symbol_512,THOUSAND)
      CALL sax(ADF90_Symbol_511%v,ADF90_Symbol_512,Y(1))
      ADF90_Symbol_225%v = (THOUSAND%v/7.9399999999999991418D-03)
      ADF90_Symbol_223%v = 126 _w2f__i8
      Y(2)%v = ADF90_Symbol_225%v
      ADF90_Symbol_513%v = ADF90_Symbol_223%v
      CALL setderiv(ADF90_Symbol_514,THOUSAND)
      CALL sax(ADF90_Symbol_513%v,ADF90_Symbol_514,Y(2))
      ADF90_Symbol_228%v = (THOUSAND%v/1.39999999999999998578D-03)
      ADF90_Symbol_226%v = 714 _w2f__i8
      Y(3)%v = ADF90_Symbol_228%v
      ADF90_Symbol_515%v = ADF90_Symbol_226%v
      CALL setderiv(ADF90_Symbol_516,THOUSAND)
      CALL sax(ADF90_Symbol_515%v,ADF90_Symbol_516,Y(3))
      ADF90_Symbol_231%v = (THOUSAND%v/1.41699999999999992628D-01)
      ADF90_Symbol_229%v = 7 _w2f__i8
      Y(4)%v = ADF90_Symbol_231%v
      ADF90_Symbol_517%v = ADF90_Symbol_229%v
      CALL setderiv(ADF90_Symbol_518,THOUSAND)
      CALL sax(ADF90_Symbol_517%v,ADF90_Symbol_518,Y(4))
      ADF90_Symbol_234%v = (THOUSAND%v/1.28599999999999992095D-01)
      ADF90_Symbol_232%v = 8 _w2f__i8
      Y(5)%v = ADF90_Symbol_234%v
      ADF90_Symbol_519%v = ADF90_Symbol_232%v
      CALL setderiv(ADF90_Symbol_520,THOUSAND)
      CALL sax(ADF90_Symbol_519%v,ADF90_Symbol_520,Y(5))
      ADF90_Symbol_237%v = (THOUSAND%v/8.7800000000000003042D-02)
      ADF90_Symbol_235%v = 11 _w2f__i8
      Y(6)%v = ADF90_Symbol_237%v
      ADF90_Symbol_521%v = ADF90_Symbol_235%v
      CALL setderiv(ADF90_Symbol_522,THOUSAND)
      CALL sax(ADF90_Symbol_521%v,ADF90_Symbol_522,Y(6))
      ADF90_Symbol_240%v = (ALPHA%v*DELTA%v)
      ADF90_Symbol_238%v = DELTA%v
      ADF90_Symbol_239%v = ALPHA%v
      R(1)%v = ADF90_Symbol_240%v
      ADF90_Symbol_523%v = ADF90_Symbol_238%v
      ADF90_Symbol_525%v = ADF90_Symbol_239%v
      CALL setderiv(ADF90_Symbol_526,DELTA)
      CALL setderiv(ADF90_Symbol_524,ALPHA)
      CALL sax(ADF90_Symbol_523%v,ADF90_Symbol_524,R(1))
      CALL saxpy(ADF90_Symbol_525%v,ADF90_Symbol_526,R(1))
      R(2)%v = (-ALPHA%v)
      ADF90_Symbol_241%v = -1 _w2f__i8
      ADF90_Symbol_527%v = ADF90_Symbol_241%v
      CALL setderiv(ADF90_Symbol_528,ALPHA)
      CALL sax(ADF90_Symbol_527%v,ADF90_Symbol_528,R(2))
      ADF90_Symbol_242%v = (1.0D00-DELTA%v)
      ADF90_Symbol_247%v = (ALPHA%v*ADF90_Symbol_242%v)
      ADF90_Symbol_243%v = ADF90_Symbol_242%v
      ADF90_Symbol_246%v = -1 _w2f__i8
      ADF90_Symbol_244%v = ALPHA%v
      R(3)%v = ADF90_Symbol_247%v
      ADF90_Symbol_529%v = (ADF90_Symbol_246%v*ADF90_Symbol_244%v)
      ADF90_Symbol_531%v = ADF90_Symbol_243%v
      CALL setderiv(ADF90_Symbol_532,ALPHA)
      CALL setderiv(ADF90_Symbol_530,DELTA)
      CALL sax(ADF90_Symbol_529%v,ADF90_Symbol_530,R(3))
      CALL saxpy(ADF90_Symbol_531%v,ADF90_Symbol_532,R(3))
      ADF90_Symbol_251%v = (-(BETA%v*DELTA%v))
      ADF90_Symbol_249%v = DELTA%v
      ADF90_Symbol_250%v = BETA%v
      ADF90_Symbol_248%v = -1 _w2f__i8
      R(4)%v = ADF90_Symbol_251%v
      ADF90_Symbol_533%v = (ADF90_Symbol_249%v*ADF90_Symbol_248%v)
      ADF90_Symbol_535%v = (ADF90_Symbol_250%v*ADF90_Symbol_248%v)
      CALL setderiv(ADF90_Symbol_536,DELTA)
      CALL setderiv(ADF90_Symbol_534,BETA)
      CALL sax(ADF90_Symbol_533%v,ADF90_Symbol_534,R(4))
      CALL saxpy(ADF90_Symbol_535%v,ADF90_Symbol_536,R(4))
      R(5)%v = BETA%v
      CALL setderiv(R(5),BETA)
      ADF90_Symbol_253%v = (1.0D00-DELTA%v)
      ADF90_Symbol_258%v = (-(BETA%v*ADF90_Symbol_253%v))
      ADF90_Symbol_254%v = ADF90_Symbol_253%v
      ADF90_Symbol_257%v = -1 _w2f__i8
      ADF90_Symbol_255%v = BETA%v
      ADF90_Symbol_252%v = -1 _w2f__i8
      R(6)%v = ADF90_Symbol_258%v
      ADF90_Symbol_537%v = (ADF90_Symbol_257%v*ADF90_Symbol_255%v)
      ADF90_Symbol_538%v = (ADF90_Symbol_254%v*ADF90_Symbol_252%v)
      ADF90_Symbol_540%v = (ADF90_Symbol_537%v*ADF90_Symbol_252%v)
      CALL setderiv(ADF90_Symbol_541,DELTA)
      CALL setderiv(ADF90_Symbol_539,BETA)
      CALL sax(ADF90_Symbol_538%v,ADF90_Symbol_539,R(6))
      CALL saxpy(ADF90_Symbol_540%v,ADF90_Symbol_541,R(6))
      DO L = 1, 6, 1
        ADF90_Symbol_259%v = (R(L)%v*U0%v)
        ADF90_Symbol_264%v = (ADF90_Symbol_259%v/SV%v)
        ADF90_Symbol_262%v = U0%v
        ADF90_Symbol_263%v = R(L)%v
        ADF90_Symbol_260%v = (1 _w2f__i8/SV%v)
        ADF90_Symbol_261%v = (-(ADF90_Symbol_259%v/(SV%v*SV%v)))
        R(L)%v = ADF90_Symbol_264%v
        ADF90_Symbol_542%v = (ADF90_Symbol_262%v*ADF90_Symbol_260%v)
        ADF90_Symbol_544%v = (ADF90_Symbol_263%v*ADF90_Symbol_260%v)
        ADF90_Symbol_546%v = ADF90_Symbol_261%v
        CALL setderiv(ADF90_Symbol_547,SV)
        CALL setderiv(ADF90_Symbol_545,U0)
        CALL setderiv(ADF90_Symbol_543,R(L))
        CALL sax(ADF90_Symbol_542%v,ADF90_Symbol_543,R(L))
        CALL saxpy(ADF90_Symbol_544%v,ADF90_Symbol_545,R(L))
        CALL saxpy(ADF90_Symbol_546%v,ADF90_Symbol_547,R(L))
      END DO
      DO L = 1, 6, 1
        IF(L .LE. 3) THEN
          PROJ_T(L)%v = 1.0D00
          CALL zero_deriv(PROJ_T(L))
          PROJ_S(L)%v = 0.0D00
          CALL zero_deriv(PROJ_S(L))
        ELSE
          PROJ_T(L)%v = 0.0D00
          CALL zero_deriv(PROJ_T(L))
          PROJ_S(L)%v = 1.0D00
          CALL zero_deriv(PROJ_S(L))
        ENDIF
      END DO
      DO L = 1, 6, 1
        ADF90_Symbol_267%v = (PROJ_T(L)%v*R(L)%v)
        ADF90_Symbol_265%v = R(L)%v
        ADF90_Symbol_266%v = PROJ_T(L)%v
        R_T(L)%v = ADF90_Symbol_267%v
        ADF90_Symbol_548%v = ADF90_Symbol_265%v
        ADF90_Symbol_550%v = ADF90_Symbol_266%v
        CALL setderiv(ADF90_Symbol_551,R(L))
        CALL setderiv(ADF90_Symbol_549,PROJ_T(L))
        CALL sax(ADF90_Symbol_548%v,ADF90_Symbol_549,R_T(L))
        CALL saxpy(ADF90_Symbol_550%v,ADF90_Symbol_551,R_T(L))
        ADF90_Symbol_270%v = (PROJ_S(L)%v*R(L)%v)
        ADF90_Symbol_268%v = R(L)%v
        ADF90_Symbol_269%v = PROJ_S(L)%v
        R_S(L)%v = ADF90_Symbol_270%v
        ADF90_Symbol_552%v = ADF90_Symbol_268%v
        ADF90_Symbol_554%v = ADF90_Symbol_269%v
        CALL setderiv(ADF90_Symbol_555,R(L))
        CALL setderiv(ADF90_Symbol_553,PROJ_S(L))
        CALL sax(ADF90_Symbol_552%v,ADF90_Symbol_553,R_S(L))
        CALL saxpy(ADF90_Symbol_554%v,ADF90_Symbol_555,R_S(L))
      END DO
      R1(1)%v = 1.0D00
      CALL zero_deriv(R1(1))
      R1(2)%v = (-1.0D00)
      CALL zero_deriv(R1(2))
      R1(3)%v = 0.0D00
      CALL zero_deriv(R1(3))
      R1(4)%v = 0.0D00
      CALL zero_deriv(R1(4))
      R1(5)%v = 0.0D00
      CALL zero_deriv(R1(5))
      R1(6)%v = 0.0D00
      CALL zero_deriv(R1(6))
      DO J = 1, 6, 1
        DO I = 1, 6, 1
          ADF90_Symbol_273%v = (R(I)%v*R(J)%v)
          ADF90_Symbol_271%v = R(J)%v
          ADF90_Symbol_272%v = R(I)%v
          X(I,J)%v = ADF90_Symbol_273%v
          ADF90_Symbol_556%v = ADF90_Symbol_271%v
          ADF90_Symbol_558%v = ADF90_Symbol_272%v
          CALL setderiv(ADF90_Symbol_559,R(J))
          CALL setderiv(ADF90_Symbol_557,R(I))
          CALL sax(ADF90_Symbol_556%v,ADF90_Symbol_557,X(I,J))
          CALL saxpy(ADF90_Symbol_558%v,ADF90_Symbol_559,X(I,J))
        END DO
      END DO
      EPSILON_REGULARIZE%v = 1.00000000000000002092D-08
      CALL zero_deriv(EPSILON_REGULARIZE)
      DO J = 1, 6, 1
        DO I = 1, 6, 1
          X(I,J)%v = (X(I,J)%v+EPSILON_REGULARIZE%v)
          ADF90_Symbol_274%v = 1 _w2f__i8
          ADF90_Symbol_275%v = 1 _w2f__i8
          ADF90_Symbol_560%v = ADF90_Symbol_274%v
          ADF90_Symbol_562%v = ADF90_Symbol_275%v
          CALL setderiv(ADF90_Symbol_563,EPSILON_REGULARIZE)
          CALL setderiv(ADF90_Symbol_561,X(I,J))
          CALL sax(ADF90_Symbol_560%v,ADF90_Symbol_561,X(I,J))
          CALL saxpy(ADF90_Symbol_562%v,ADF90_Symbol_563,X(I,J))
        END DO
      END DO
      RETURN
      END SUBROUTINE

      SUBROUTINE box_model_body()
      use w2f__types
      use active_module
      IMPLICIT NONE
C
C     **** Global Variables ****
C
      COMMON /pa_numbers_i/ N_MAX
      INTEGER(w2f__i4) N_MAX
C
C     **** Local Variables and functions ****
C
      EXTERNAL box_final_state
      EXTERNAL box_forward
      EXTERNAL box_ini_fields
      INTEGER(w2f__i4) ILEV1
      INTEGER(w2f__i4) ILEV2
      INTEGER(w2f__i4) ILOOP
      INTEGER(w2f__i4) ISBYTE
      PARAMETER ( ISBYTE = 8)
      INTEGER(w2f__i4) MAXLEV2
      INTEGER(w2f__i4) NDIM
      PARAMETER ( NDIM = 3)
      INTEGER(w2f__i4) NLEV1
      PARAMETER ( NLEV1 = 73)
      INTEGER(w2f__i4) NLEV2
      PARAMETER ( NLEV2 = 50)
C
C     **** statements ****
C
      WRITE(*, *) 'box_ini_fields START'
      CALL box_ini_fields()
      MAXLEV2 = (N_MAX / 73_w2f__i8)
      IF(N_MAX .GT. 3650) THEN
        STOP 'NEED TO SET nlev1*nlev2 >= n_max '
        RETURN
      ENDIF
      DO ILEV2 = 1, 50, 1
        IF(ILEV2 .LE. MAXLEV2) THEN
          DO ILEV1 = 1, 73, 1
            ILOOP = ILEV1
            IF(ILOOP .LE. N_MAX) THEN
              CALL box_forward(ILEV1)
            ENDIF
          END DO
        ENDIF
      END DO
      WRITE(*, *) 'box_final START'
      CALL box_final_state()
      RETURN
      END SUBROUTINE

      SUBROUTINE box_density(TLOC, SLOC, RHOLOC)
      use w2f__types
      use active_module
      IMPLICIT NONE
C
C     **** Global Variables ****
C
      COMMON /pa_density_r/ ALPHA, BETA
      type(active) :: ALPHA
      type(active) :: BETA
      type(active) :: ADF90_Symbol_0
      type(active) :: ADF90_Symbol_1
      type(active) :: ADF90_Symbol_2
      type(active) :: ADF90_Symbol_3
      type(active) :: ADF90_Symbol_4
      type(active) :: ADF90_Symbol_5
      type(active) :: ADF90_Symbol_6
      type(active) :: ADF90_Symbol_284
      type(active) :: ADF90_Symbol_290
      type(active) :: ADF90_Symbol_285
      type(active) :: ADF90_Symbol_291
      type(active) :: ADF90_Symbol_286
      type(active) :: ADF90_Symbol_287
      type(active) :: ADF90_Symbol_288
      type(active) :: ADF90_Symbol_289
C
C     **** Parameters and Result ****
C
      
      
      
      type(active) :: TLOC(1 : 3)
      type(active) :: SLOC(1 : 3)
      type(active) :: RHOLOC(1 : 3)
C
C     **** Local Variables and functions ****
C
      INTEGER(w2f__i4) ISBYTE
      PARAMETER ( ISBYTE = 8)
      INTEGER(w2f__i4) L
      INTEGER(w2f__i4) NDIM
      PARAMETER ( NDIM = 3)
      INTEGER(w2f__i4) NLEV1
      PARAMETER ( NLEV1 = 73)
      INTEGER(w2f__i4) NLEV2
      PARAMETER ( NLEV2 = 50)
C
C     **** statements ****
C
      DO L = 1, 3, 1
        ADF90_Symbol_6%v = ((SLOC(L)%v*BETA%v)-(TLOC(L)%v*ALPHA%v))
        ADF90_Symbol_2%v = BETA%v
        ADF90_Symbol_3%v = SLOC(L)%v
        ADF90_Symbol_0%v = 1 _w2f__i8
        ADF90_Symbol_4%v = ALPHA%v
        ADF90_Symbol_5%v = TLOC(L)%v
        ADF90_Symbol_1%v = -1 _w2f__i8
        RHOLOC(L)%v = ADF90_Symbol_6%v
        ADF90_Symbol_284%v = (ADF90_Symbol_2%v*ADF90_Symbol_0%v)
        ADF90_Symbol_286%v = (ADF90_Symbol_3%v*ADF90_Symbol_0%v)
        ADF90_Symbol_288%v = (ADF90_Symbol_4%v*ADF90_Symbol_1%v)
        ADF90_Symbol_290%v = (ADF90_Symbol_5%v*ADF90_Symbol_1%v)
        CALL setderiv(ADF90_Symbol_291,ALPHA)
        CALL setderiv(ADF90_Symbol_289,TLOC(L))
        CALL setderiv(ADF90_Symbol_287,BETA)
        CALL setderiv(ADF90_Symbol_285,SLOC(L))
        CALL sax(ADF90_Symbol_284%v,ADF90_Symbol_285,RHOLOC(L))
        CALL saxpy(ADF90_Symbol_286%v,ADF90_Symbol_287,RHOLOC(L))
        CALL saxpy(ADF90_Symbol_288%v,ADF90_Symbol_289,RHOLOC(L))
        CALL saxpy(ADF90_Symbol_290%v,ADF90_Symbol_291,RHOLOC(L))
      END DO
      RETURN
      END SUBROUTINE

      SUBROUTINE box_transport(RHOLOC, UVELLOC)
      use w2f__types
      use active_module
      IMPLICIT NONE
C
C     **** Global Variables ****
C
      COMMON /pa_transport_r/ U0, DELTA
      type(active) :: U0
      type(active) :: DELTA
      type(active) :: ADF90_Symbol_7
      type(active) :: ADF90_Symbol_8
      type(active) :: ADF90_Symbol_9
      type(active) :: ADF90_Symbol_10
      type(active) :: ADF90_Symbol_11
      type(active) :: ADF90_Symbol_12
      type(active) :: ADF90_Symbol_13
      type(active) :: ADF90_Symbol_14
      type(active) :: ADF90_Symbol_15
      type(active) :: ADF90_Symbol_16
      type(active) :: ADF90_Symbol_21
      type(active) :: ADF90_Symbol_17
      type(active) :: ADF90_Symbol_22
      type(active) :: ADF90_Symbol_18
      type(active) :: ADF90_Symbol_19
      type(active) :: ADF90_Symbol_300
      type(active) :: ADF90_Symbol_301
      type(active) :: ADF90_Symbol_302
      type(active) :: ADF90_Symbol_303
      type(active) :: ADF90_Symbol_304
      type(active) :: ADF90_Symbol_305
      type(active) :: ADF90_Symbol_306
      type(active) :: ADF90_Symbol_307
      type(active) :: ADF90_Symbol_292
      type(active) :: ADF90_Symbol_293
      type(active) :: ADF90_Symbol_294
      type(active) :: ADF90_Symbol_295
      type(active) :: ADF90_Symbol_296
      type(active) :: ADF90_Symbol_297
      type(active) :: ADF90_Symbol_298
      type(active) :: ADF90_Symbol_299
C
C     **** Parameters and Result ****
C
      
      type(active) :: UVELLOC
      type(active) :: RHOLOC(1 : 3)
      
C
C     **** Local Variables and functions ****
C
      INTEGER(w2f__i4) ISBYTE
      PARAMETER ( ISBYTE = 8)
      INTEGER(w2f__i4) NDIM
      PARAMETER ( NDIM = 3)
      INTEGER(w2f__i4) NLEV1
      PARAMETER ( NLEV1 = 73)
      INTEGER(w2f__i4) NLEV2
      PARAMETER ( NLEV2 = 50)
C
C     **** statements ****
C
      ADF90_Symbol_17%v = (1.0D00-DELTA%v)
      ADF90_Symbol_8%v = (((RHOLOC(1)%v*DELTA%v)+(RHOLOC(3)%v*ADF90_Symb
     +ol_17%v))-RHOLOC(2)%v)
      ADF90_Symbol_22%v = (-(U0%v*ADF90_Symbol_8%v))
      ADF90_Symbol_9%v = ADF90_Symbol_8%v
      ADF90_Symbol_15%v = DELTA%v
      ADF90_Symbol_16%v = RHOLOC(1)%v
      ADF90_Symbol_13%v = 1 _w2f__i8
      ADF90_Symbol_18%v = ADF90_Symbol_17%v
      ADF90_Symbol_21%v = -1 _w2f__i8
      ADF90_Symbol_19%v = RHOLOC(3)%v
      ADF90_Symbol_14%v = 1 _w2f__i8
      ADF90_Symbol_11%v = 1 _w2f__i8
      ADF90_Symbol_12%v = -1 _w2f__i8
      ADF90_Symbol_10%v = U0%v
      ADF90_Symbol_7%v = -1 _w2f__i8
      UVELLOC%v = ADF90_Symbol_22%v
      ADF90_Symbol_292%v = (ADF90_Symbol_9%v*ADF90_Symbol_7%v)
      ADF90_Symbol_294%v = (ADF90_Symbol_10%v*ADF90_Symbol_7%v)
      ADF90_Symbol_295%v = (ADF90_Symbol_11%v*ADF90_Symbol_294%v)
      ADF90_Symbol_296%v = (ADF90_Symbol_12%v*ADF90_Symbol_294%v)
      ADF90_Symbol_298%v = (ADF90_Symbol_13%v*ADF90_Symbol_295%v)
      ADF90_Symbol_299%v = (ADF90_Symbol_14%v*ADF90_Symbol_295%v)
      ADF90_Symbol_300%v = (ADF90_Symbol_18%v*ADF90_Symbol_299%v)
      ADF90_Symbol_302%v = (ADF90_Symbol_19%v*ADF90_Symbol_299%v)
      ADF90_Symbol_303%v = (ADF90_Symbol_15%v*ADF90_Symbol_298%v)
      ADF90_Symbol_305%v = (ADF90_Symbol_16%v*ADF90_Symbol_298%v)
      ADF90_Symbol_306%v = (ADF90_Symbol_305%v+(ADF90_Symbol_21%v*ADF90_
     +Symbol_302%v))
      CALL setderiv(ADF90_Symbol_307,DELTA)
      CALL setderiv(ADF90_Symbol_304,RHOLOC(1))
      CALL setderiv(ADF90_Symbol_301,RHOLOC(3))
      CALL setderiv(ADF90_Symbol_297,RHOLOC(2))
      CALL setderiv(ADF90_Symbol_293,U0)
      CALL sax(ADF90_Symbol_292%v,ADF90_Symbol_293,UVELLOC)
      CALL saxpy(ADF90_Symbol_296%v,ADF90_Symbol_297,UVELLOC)
      CALL saxpy(ADF90_Symbol_300%v,ADF90_Symbol_301,UVELLOC)
      CALL saxpy(ADF90_Symbol_303%v,ADF90_Symbol_304,UVELLOC)
      CALL saxpy(ADF90_Symbol_306%v,ADF90_Symbol_307,UVELLOC)
      RETURN
      END SUBROUTINE

      SUBROUTINE box_robert_filter(FLDNOW, FLDOLD, FLDNEW)
      use w2f__types
      use active_module
      IMPLICIT NONE
C
C     **** Global Variables ****
C
      COMMON /pa_robert_filter_r/ ROBERT_FILTER_COEFF
      type(active) :: ROBERT_FILTER_COEFF
      type(active) :: ADF90_Symbol_130
      type(active) :: ADF90_Symbol_126
      type(active) :: ADF90_Symbol_131
      type(active) :: ADF90_Symbol_127
      type(active) :: ADF90_Symbol_132
      type(active) :: ADF90_Symbol_128
      type(active) :: ADF90_Symbol_133
      type(active) :: ADF90_Symbol_129
      type(active) :: ADF90_Symbol_134
      type(active) :: ADF90_Symbol_135
      type(active) :: ADF90_Symbol_137
      type(active) :: ADF90_Symbol_423
      type(active) :: ADF90_Symbol_424
      type(active) :: ADF90_Symbol_430
      type(active) :: ADF90_Symbol_425
      type(active) :: ADF90_Symbol_431
      type(active) :: ADF90_Symbol_426
      type(active) :: ADF90_Symbol_432
      type(active) :: ADF90_Symbol_427
      type(active) :: ADF90_Symbol_433
      type(active) :: ADF90_Symbol_428
      type(active) :: ADF90_Symbol_434
      type(active) :: ADF90_Symbol_429
      type(active) :: ADF90_Symbol_435
C
C     **** Parameters and Result ****
C
      
      
      
      type(active) :: FLDNOW(1 : 3)
      type(active) :: FLDOLD(1 : 3)
      type(active) :: FLDNEW(1 : 3)
C
C     **** Local Variables and functions ****
C
      INTEGER(w2f__i4) ISBYTE
      PARAMETER ( ISBYTE = 8)
      INTEGER(w2f__i4) L
      INTEGER(w2f__i4) NDIM
      PARAMETER ( NDIM = 3)
      INTEGER(w2f__i4) NLEV1
      PARAMETER ( NLEV1 = 73)
      INTEGER(w2f__i4) NLEV2
      PARAMETER ( NLEV2 = 50)
C
C     **** statements ****
C
      DO L = 1, 3, 1
        ADF90_Symbol_128%v = (FLDOLD(L)%v+(FLDNEW(L)%v-(FLDNOW(L)%v*2.0D
     +00)))
        ADF90_Symbol_137%v = (FLDNOW(L)%v+(ROBERT_FILTER_COEFF%v*ADF90_S
     +ymbol_128%v))
        ADF90_Symbol_126%v = 1 _w2f__i8
        ADF90_Symbol_129%v = ADF90_Symbol_128%v
        ADF90_Symbol_131%v = 1 _w2f__i8
        ADF90_Symbol_133%v = 1 _w2f__i8
        ADF90_Symbol_135%v = 2.0D00
        ADF90_Symbol_134%v = -1 _w2f__i8
        ADF90_Symbol_132%v = 1 _w2f__i8
        ADF90_Symbol_130%v = ROBERT_FILTER_COEFF%v
        ADF90_Symbol_127%v = 1 _w2f__i8
        FLDNOW(L)%v = ADF90_Symbol_137%v
        ADF90_Symbol_423%v = (ADF90_Symbol_129%v*ADF90_Symbol_127%v)
        ADF90_Symbol_425%v = (ADF90_Symbol_130%v*ADF90_Symbol_127%v)
        ADF90_Symbol_426%v = (ADF90_Symbol_131%v*ADF90_Symbol_425%v)
        ADF90_Symbol_428%v = (ADF90_Symbol_132%v*ADF90_Symbol_425%v)
        ADF90_Symbol_429%v = (ADF90_Symbol_133%v*ADF90_Symbol_428%v)
        ADF90_Symbol_431%v = (ADF90_Symbol_134%v*ADF90_Symbol_428%v)
        ADF90_Symbol_432%v = (ADF90_Symbol_135%v*ADF90_Symbol_431%v)
        ADF90_Symbol_434%v = ADF90_Symbol_126%v
        CALL setderiv(ADF90_Symbol_435,FLDNOW(L))
        CALL setderiv(ADF90_Symbol_433,FLDNOW(L))
        CALL setderiv(ADF90_Symbol_430,FLDNEW(L))
        CALL setderiv(ADF90_Symbol_427,FLDOLD(L))
        CALL setderiv(ADF90_Symbol_424,ROBERT_FILTER_COEFF)
        CALL sax(ADF90_Symbol_423%v,ADF90_Symbol_424,FLDNOW(L))
        CALL saxpy(ADF90_Symbol_426%v,ADF90_Symbol_427,FLDNOW(L))
        CALL saxpy(ADF90_Symbol_429%v,ADF90_Symbol_430,FLDNOW(L))
        CALL saxpy(ADF90_Symbol_432%v,ADF90_Symbol_433,FLDNOW(L))
        CALL saxpy(ADF90_Symbol_434%v,ADF90_Symbol_435,FLDNOW(L))
      END DO
      RETURN
      END SUBROUTINE

      SUBROUTINE box_cycle_fields()
      use w2f__types
      use active_module
      IMPLICIT NONE
C
C     **** Global Variables ****
C
      COMMON /fi_state_r/ TOLD, TNOW, TNEW, SOLD, SNOW, SNEW
      type(active) :: TOLD(1 : 3)
      type(active) :: TNOW(1 : 3)
      type(active) :: TNEW(1 : 3)
      type(active) :: SOLD(1 : 3)
      type(active) :: SNOW(1 : 3)
      type(active) :: SNEW(1 : 3)
C
C     **** Local Variables and functions ****
C
      INTEGER(w2f__i4) ISBYTE
      PARAMETER ( ISBYTE = 8)
      INTEGER(w2f__i4) L
      INTEGER(w2f__i4) NDIM
      PARAMETER ( NDIM = 3)
      INTEGER(w2f__i4) NLEV1
      PARAMETER ( NLEV1 = 73)
      INTEGER(w2f__i4) NLEV2
      PARAMETER ( NLEV2 = 50)
C
C     **** statements ****
C
      DO L = 1, 3, 1
        TOLD(L)%v = TNOW(L)%v
        CALL setderiv(TOLD(L),TNOW(L))
        TNOW(L)%v = TNEW(L)%v
        CALL setderiv(TNOW(L),TNEW(L))
        SOLD(L)%v = SNOW(L)%v
        CALL setderiv(SOLD(L),SNOW(L))
        SNOW(L)%v = SNEW(L)%v
        CALL setderiv(SNOW(L),SNEW(L))
      END DO
      RETURN
      END SUBROUTINE

      SUBROUTINE box_update(FLDNEW, FLDOLD, DFLDDT)
      use w2f__types
      use active_module
      IMPLICIT NONE
C
C     **** Global Variables ****
C
      COMMON /pa_timestep_r/ DELTA_T
      type(active) :: DELTA_T
      type(active) :: ADF90_Symbol_280
      type(active) :: ADF90_Symbol_281
      type(active) :: ADF90_Symbol_276
      type(active) :: ADF90_Symbol_277
      type(active) :: ADF90_Symbol_283
      type(active) :: ADF90_Symbol_278
      type(active) :: ADF90_Symbol_279
      type(active) :: ADF90_Symbol_564
      type(active) :: ADF90_Symbol_570
      type(active) :: ADF90_Symbol_565
      type(active) :: ADF90_Symbol_566
      type(active) :: ADF90_Symbol_567
      type(active) :: ADF90_Symbol_568
      type(active) :: ADF90_Symbol_569
C
C     **** Parameters and Result ****
C
      
      
      
      type(active) :: FLDNEW(1 : 3)
      type(active) :: FLDOLD(1 : 3)
      type(active) :: DFLDDT(1 : 3)
C
C     **** Local Variables and functions ****
C
      INTEGER(w2f__i4) ISBYTE
      PARAMETER ( ISBYTE = 8)
      INTEGER(w2f__i4) L
      INTEGER(w2f__i4) NDIM
      PARAMETER ( NDIM = 3)
      INTEGER(w2f__i4) NLEV1
      PARAMETER ( NLEV1 = 73)
      INTEGER(w2f__i4) NLEV2
      PARAMETER ( NLEV2 = 50)
C
C     **** statements ****
C
      DO L = 1, 3, 1
        ADF90_Symbol_278%v = (DELTA_T%v*2.0D00)
        ADF90_Symbol_283%v = (FLDOLD(L)%v+(DFLDDT(L)%v*ADF90_Symbol_278%
     +v))
        ADF90_Symbol_276%v = 1 _w2f__i8
        ADF90_Symbol_279%v = ADF90_Symbol_278%v
        ADF90_Symbol_281%v = 2.0D00
        ADF90_Symbol_280%v = DFLDDT(L)%v
        ADF90_Symbol_277%v = 1 _w2f__i8
        FLDNEW(L)%v = ADF90_Symbol_283%v
        ADF90_Symbol_564%v = (ADF90_Symbol_281%v*ADF90_Symbol_280%v)
        ADF90_Symbol_565%v = (ADF90_Symbol_279%v*ADF90_Symbol_277%v)
        ADF90_Symbol_567%v = (ADF90_Symbol_564%v*ADF90_Symbol_277%v)
        ADF90_Symbol_569%v = ADF90_Symbol_276%v
        CALL setderiv(ADF90_Symbol_570,FLDOLD(L))
        CALL setderiv(ADF90_Symbol_568,DELTA_T)
        CALL setderiv(ADF90_Symbol_566,DFLDDT(L))
        CALL sax(ADF90_Symbol_565%v,ADF90_Symbol_566,FLDNEW(L))
        CALL saxpy(ADF90_Symbol_567%v,ADF90_Symbol_568,FLDNEW(L))
        CALL saxpy(ADF90_Symbol_569%v,ADF90_Symbol_570,FLDNEW(L))
      END DO
      RETURN
      END SUBROUTINE

      SUBROUTINE box_timestep(GAMMALOC, FLDSTAR, EXTFORLOC, UVELLOC,
     >  FLDNOW, FLDOLD, FLDNEW)
      use w2f__types
      use active_module
      IMPLICIT NONE
C
C     **** Global Variables ****
C
      COMMON /pa_geometry_r/ BLENGTH, BHEIGHT, BWIDTH, AREA, VOL
      type(active) :: BLENGTH(1 : 3)
      type(active) :: BHEIGHT(1 : 3)
      type(active) :: BWIDTH
      type(active) :: AREA(1 : 3)
      type(active) :: VOL(1 : 3)
      type(active) :: ADF90_Symbol_23
      type(active) :: ADF90_Symbol_24
      type(active) :: ADF90_Symbol_25
      type(active) :: ADF90_Symbol_30
      type(active) :: ADF90_Symbol_26
      type(active) :: ADF90_Symbol_31
      type(active) :: ADF90_Symbol_27
      type(active) :: ADF90_Symbol_32
      type(active) :: ADF90_Symbol_28
      type(active) :: ADF90_Symbol_33
      type(active) :: ADF90_Symbol_29
      type(active) :: ADF90_Symbol_34
      type(active) :: ADF90_Symbol_35
      type(active) :: ADF90_Symbol_40
      type(active) :: ADF90_Symbol_36
      type(active) :: ADF90_Symbol_41
      type(active) :: ADF90_Symbol_37
      type(active) :: ADF90_Symbol_42
      type(active) :: ADF90_Symbol_38
      type(active) :: ADF90_Symbol_43
      type(active) :: ADF90_Symbol_39
      type(active) :: ADF90_Symbol_44
      type(active) :: ADF90_Symbol_45
      type(active) :: ADF90_Symbol_50
      type(active) :: ADF90_Symbol_46
      type(active) :: ADF90_Symbol_51
      type(active) :: ADF90_Symbol_47
      type(active) :: ADF90_Symbol_52
      type(active) :: ADF90_Symbol_48
      type(active) :: ADF90_Symbol_53
      type(active) :: ADF90_Symbol_49
      type(active) :: ADF90_Symbol_54
      type(active) :: ADF90_Symbol_55
      type(active) :: ADF90_Symbol_60
      type(active) :: ADF90_Symbol_56
      type(active) :: ADF90_Symbol_61
      type(active) :: ADF90_Symbol_57
      type(active) :: ADF90_Symbol_62
      type(active) :: ADF90_Symbol_58
      type(active) :: ADF90_Symbol_63
      type(active) :: ADF90_Symbol_59
      type(active) :: ADF90_Symbol_64
      type(active) :: ADF90_Symbol_65
      type(active) :: ADF90_Symbol_70
      type(active) :: ADF90_Symbol_66
      type(active) :: ADF90_Symbol_71
      type(active) :: ADF90_Symbol_67
      type(active) :: ADF90_Symbol_72
      type(active) :: ADF90_Symbol_68
      type(active) :: ADF90_Symbol_73
      type(active) :: ADF90_Symbol_69
      type(active) :: ADF90_Symbol_74
      type(active) :: ADF90_Symbol_75
      type(active) :: ADF90_Symbol_80
      type(active) :: ADF90_Symbol_76
      type(active) :: ADF90_Symbol_81
      type(active) :: ADF90_Symbol_77
      type(active) :: ADF90_Symbol_82
      type(active) :: ADF90_Symbol_78
      type(active) :: ADF90_Symbol_83
      type(active) :: ADF90_Symbol_79
      type(active) :: ADF90_Symbol_84
      type(active) :: ADF90_Symbol_85
      type(active) :: ADF90_Symbol_90
      type(active) :: ADF90_Symbol_86
      type(active) :: ADF90_Symbol_91
      type(active) :: ADF90_Symbol_87
      type(active) :: ADF90_Symbol_92
      type(active) :: ADF90_Symbol_88
      type(active) :: ADF90_Symbol_93
      type(active) :: ADF90_Symbol_89
      type(active) :: ADF90_Symbol_94
      type(active) :: ADF90_Symbol_95
      type(active) :: ADF90_Symbol_96
      type(active) :: ADF90_Symbol_97
      type(active) :: ADF90_Symbol_98
      type(active) :: ADF90_Symbol_99
      type(active) :: ADF90_Symbol_100
      type(active) :: ADF90_Symbol_101
      type(active) :: ADF90_Symbol_102
      type(active) :: ADF90_Symbol_103
      type(active) :: ADF90_Symbol_104
      type(active) :: ADF90_Symbol_105
      type(active) :: ADF90_Symbol_110
      type(active) :: ADF90_Symbol_106
      type(active) :: ADF90_Symbol_111
      type(active) :: ADF90_Symbol_107
      type(active) :: ADF90_Symbol_112
      type(active) :: ADF90_Symbol_108
      type(active) :: ADF90_Symbol_113
      type(active) :: ADF90_Symbol_109
      type(active) :: ADF90_Symbol_114
      type(active) :: ADF90_Symbol_115
      type(active) :: ADF90_Symbol_120
      type(active) :: ADF90_Symbol_116
      type(active) :: ADF90_Symbol_121
      type(active) :: ADF90_Symbol_117
      type(active) :: ADF90_Symbol_122
      type(active) :: ADF90_Symbol_118
      type(active) :: ADF90_Symbol_123
      type(active) :: ADF90_Symbol_119
      type(active) :: ADF90_Symbol_124
      type(active) :: ADF90_Symbol_125
      type(active) :: ADF90_Symbol_310
      type(active) :: ADF90_Symbol_311
      type(active) :: ADF90_Symbol_312
      type(active) :: ADF90_Symbol_313
      type(active) :: ADF90_Symbol_308
      type(active) :: ADF90_Symbol_314
      type(active) :: ADF90_Symbol_309
      type(active) :: ADF90_Symbol_320
      type(active) :: ADF90_Symbol_315
      type(active) :: ADF90_Symbol_321
      type(active) :: ADF90_Symbol_316
      type(active) :: ADF90_Symbol_322
      type(active) :: ADF90_Symbol_317
      type(active) :: ADF90_Symbol_323
      type(active) :: ADF90_Symbol_318
      type(active) :: ADF90_Symbol_324
      type(active) :: ADF90_Symbol_319
      type(active) :: ADF90_Symbol_330
      type(active) :: ADF90_Symbol_325
      type(active) :: ADF90_Symbol_331
      type(active) :: ADF90_Symbol_326
      type(active) :: ADF90_Symbol_332
      type(active) :: ADF90_Symbol_327
      type(active) :: ADF90_Symbol_333
      type(active) :: ADF90_Symbol_328
      type(active) :: ADF90_Symbol_334
      type(active) :: ADF90_Symbol_329
      type(active) :: ADF90_Symbol_340
      type(active) :: ADF90_Symbol_335
      type(active) :: ADF90_Symbol_341
      type(active) :: ADF90_Symbol_336
      type(active) :: ADF90_Symbol_342
      type(active) :: ADF90_Symbol_337
      type(active) :: ADF90_Symbol_343
      type(active) :: ADF90_Symbol_338
      type(active) :: ADF90_Symbol_344
      type(active) :: ADF90_Symbol_339
      type(active) :: ADF90_Symbol_400
      type(active) :: ADF90_Symbol_350
      type(active) :: ADF90_Symbol_345
      type(active) :: ADF90_Symbol_401
      type(active) :: ADF90_Symbol_351
      type(active) :: ADF90_Symbol_346
      type(active) :: ADF90_Symbol_402
      type(active) :: ADF90_Symbol_352
      type(active) :: ADF90_Symbol_347
      type(active) :: ADF90_Symbol_403
      type(active) :: ADF90_Symbol_353
      type(active) :: ADF90_Symbol_348
      type(active) :: ADF90_Symbol_404
      type(active) :: ADF90_Symbol_354
      type(active) :: ADF90_Symbol_349
      type(active) :: ADF90_Symbol_410
      type(active) :: ADF90_Symbol_405
      type(active) :: ADF90_Symbol_360
      type(active) :: ADF90_Symbol_355
      type(active) :: ADF90_Symbol_411
      type(active) :: ADF90_Symbol_406
      type(active) :: ADF90_Symbol_361
      type(active) :: ADF90_Symbol_356
      type(active) :: ADF90_Symbol_412
      type(active) :: ADF90_Symbol_407
      type(active) :: ADF90_Symbol_362
      type(active) :: ADF90_Symbol_357
      type(active) :: ADF90_Symbol_413
      type(active) :: ADF90_Symbol_408
      type(active) :: ADF90_Symbol_363
      type(active) :: ADF90_Symbol_358
      type(active) :: ADF90_Symbol_414
      type(active) :: ADF90_Symbol_409
      type(active) :: ADF90_Symbol_364
      type(active) :: ADF90_Symbol_359
      type(active) :: ADF90_Symbol_420
      type(active) :: ADF90_Symbol_415
      type(active) :: ADF90_Symbol_370
      type(active) :: ADF90_Symbol_365
      type(active) :: ADF90_Symbol_421
      type(active) :: ADF90_Symbol_416
      type(active) :: ADF90_Symbol_371
      type(active) :: ADF90_Symbol_366
      type(active) :: ADF90_Symbol_422
      type(active) :: ADF90_Symbol_417
      type(active) :: ADF90_Symbol_372
      type(active) :: ADF90_Symbol_367
      type(active) :: ADF90_Symbol_418
      type(active) :: ADF90_Symbol_373
      type(active) :: ADF90_Symbol_368
      type(active) :: ADF90_Symbol_419
      type(active) :: ADF90_Symbol_374
      type(active) :: ADF90_Symbol_369
      type(active) :: ADF90_Symbol_380
      type(active) :: ADF90_Symbol_375
      type(active) :: ADF90_Symbol_381
      type(active) :: ADF90_Symbol_376
      type(active) :: ADF90_Symbol_382
      type(active) :: ADF90_Symbol_377
      type(active) :: ADF90_Symbol_383
      type(active) :: ADF90_Symbol_378
      type(active) :: ADF90_Symbol_384
      type(active) :: ADF90_Symbol_379
      type(active) :: ADF90_Symbol_390
      type(active) :: ADF90_Symbol_385
      type(active) :: ADF90_Symbol_391
      type(active) :: ADF90_Symbol_386
      type(active) :: ADF90_Symbol_392
      type(active) :: ADF90_Symbol_387
      type(active) :: ADF90_Symbol_393
      type(active) :: ADF90_Symbol_388
      type(active) :: ADF90_Symbol_394
      type(active) :: ADF90_Symbol_389
      type(active) :: ADF90_Symbol_395
      type(active) :: ADF90_Symbol_396
      type(active) :: ADF90_Symbol_397
      type(active) :: ADF90_Symbol_398
      type(active) :: ADF90_Symbol_399
C
C     **** Parameters and Result ****
C
      type(active) :: GAMMALOC
      
      
      type(active) :: UVELLOC
      
      
      
      
      type(active) :: FLDSTAR(1 : 2)
      type(active) :: EXTFORLOC(1 : 2)
      
      type(active) :: FLDNOW(1 : 3)
      type(active) :: FLDOLD(1 : 3)
      type(active) :: FLDNEW(1 : 3)
C
C     **** Local Variables and functions ****
C
      EXTERNAL box_update
      type(active) :: DFLDDT(1 : 3)
      INTEGER(w2f__i4) ISBYTE
      PARAMETER ( ISBYTE = 8)
      INTEGER(w2f__i4) NDIM
      PARAMETER ( NDIM = 3)
      INTEGER(w2f__i4) NLEV1
      PARAMETER ( NLEV1 = 73)
      INTEGER(w2f__i4) NLEV2
      PARAMETER ( NLEV2 = 50)
C
C     **** statements ****
C
      IF (UVELLOC%v .GE. 0.0D00) THEN
        ADF90_Symbol_33%v = (FLDSTAR(1)%v-FLDNOW(1)%v)
        ADF90_Symbol_30%v = (GAMMALOC%v*ADF90_Symbol_33%v)
        ADF90_Symbol_38%v = (FLDNOW(3)%v-FLDNOW(1)%v)
        ADF90_Symbol_23%v = ((EXTFORLOC(1)%v+(VOL(1)%v*ADF90_Symbol_30%v
     +))+(UVELLOC%v*ADF90_Symbol_38%v))
        ADF90_Symbol_43%v = (ADF90_Symbol_23%v/VOL(1)%v)
        ADF90_Symbol_28%v = 1 _w2f__i8
        ADF90_Symbol_31%v = ADF90_Symbol_30%v
        ADF90_Symbol_34%v = ADF90_Symbol_33%v
        ADF90_Symbol_36%v = 1 _w2f__i8
        ADF90_Symbol_37%v = -1 _w2f__i8
        ADF90_Symbol_35%v = GAMMALOC%v
        ADF90_Symbol_32%v = VOL(1)%v
        ADF90_Symbol_29%v = 1 _w2f__i8
        ADF90_Symbol_26%v = 1 _w2f__i8
        ADF90_Symbol_39%v = ADF90_Symbol_38%v
        ADF90_Symbol_41%v = 1 _w2f__i8
        ADF90_Symbol_42%v = -1 _w2f__i8
        ADF90_Symbol_40%v = UVELLOC%v
        ADF90_Symbol_27%v = 1 _w2f__i8
        ADF90_Symbol_24%v = (1 _w2f__i8/VOL(1)%v)
        ADF90_Symbol_25%v = (-(ADF90_Symbol_23%v/(VOL(1)%v*VOL(1)%v)))
        DFLDDT(1)%v = ADF90_Symbol_43%v
        ADF90_Symbol_308%v = (ADF90_Symbol_26%v*ADF90_Symbol_24%v)
        ADF90_Symbol_309%v = (ADF90_Symbol_27%v*ADF90_Symbol_24%v)
        ADF90_Symbol_310%v = (ADF90_Symbol_28%v*ADF90_Symbol_308%v)
        ADF90_Symbol_312%v = (ADF90_Symbol_29%v*ADF90_Symbol_308%v)
        ADF90_Symbol_313%v = (ADF90_Symbol_31%v*ADF90_Symbol_312%v)
        ADF90_Symbol_315%v = (ADF90_Symbol_32%v*ADF90_Symbol_312%v)
        ADF90_Symbol_316%v = (ADF90_Symbol_39%v*ADF90_Symbol_309%v)
        ADF90_Symbol_318%v = (ADF90_Symbol_40%v*ADF90_Symbol_309%v)
        ADF90_Symbol_319%v = (ADF90_Symbol_34%v*ADF90_Symbol_315%v)
        ADF90_Symbol_321%v = (ADF90_Symbol_35%v*ADF90_Symbol_315%v)
        ADF90_Symbol_322%v = (ADF90_Symbol_41%v*ADF90_Symbol_318%v)
        ADF90_Symbol_324%v = (ADF90_Symbol_42%v*ADF90_Symbol_318%v)
        ADF90_Symbol_326%v = (ADF90_Symbol_36%v*ADF90_Symbol_321%v)
        ADF90_Symbol_328%v = (ADF90_Symbol_37%v*ADF90_Symbol_321%v)
        ADF90_Symbol_330%v = ADF90_Symbol_25%v
        CALL setderiv(ADF90_Symbol_331,VOL(1))
        CALL setderiv(ADF90_Symbol_329,FLDNOW(1))
        CALL setderiv(ADF90_Symbol_327,FLDSTAR(1))
        CALL setderiv(ADF90_Symbol_325,FLDNOW(1))
        CALL setderiv(ADF90_Symbol_323,FLDNOW(3))
        CALL setderiv(ADF90_Symbol_320,GAMMALOC)
        CALL setderiv(ADF90_Symbol_317,UVELLOC)
        CALL setderiv(ADF90_Symbol_314,VOL(1))
        CALL setderiv(ADF90_Symbol_311,EXTFORLOC(1))
        CALL sax(ADF90_Symbol_310%v,ADF90_Symbol_311,DFLDDT(1))
        CALL saxpy(ADF90_Symbol_313%v,ADF90_Symbol_314,DFLDDT(1))
        CALL saxpy(ADF90_Symbol_316%v,ADF90_Symbol_317,DFLDDT(1))
        CALL saxpy(ADF90_Symbol_319%v,ADF90_Symbol_320,DFLDDT(1))
        CALL saxpy(ADF90_Symbol_322%v,ADF90_Symbol_323,DFLDDT(1))
        CALL saxpy(ADF90_Symbol_324%v,ADF90_Symbol_325,DFLDDT(1))
        CALL saxpy(ADF90_Symbol_326%v,ADF90_Symbol_327,DFLDDT(1))
        CALL saxpy(ADF90_Symbol_328%v,ADF90_Symbol_329,DFLDDT(1))
        CALL saxpy(ADF90_Symbol_330%v,ADF90_Symbol_331,DFLDDT(1))
        ADF90_Symbol_54%v = (FLDSTAR(2)%v-FLDNOW(2)%v)
        ADF90_Symbol_51%v = (GAMMALOC%v*ADF90_Symbol_54%v)
        ADF90_Symbol_59%v = (FLDNOW(1)%v-FLDNOW(2)%v)
        ADF90_Symbol_44%v = ((EXTFORLOC(2)%v+(VOL(2)%v*ADF90_Symbol_51%v
     +))+(UVELLOC%v*ADF90_Symbol_59%v))
        ADF90_Symbol_64%v = (ADF90_Symbol_44%v/VOL(2)%v)
        ADF90_Symbol_49%v = 1 _w2f__i8
        ADF90_Symbol_52%v = ADF90_Symbol_51%v
        ADF90_Symbol_55%v = ADF90_Symbol_54%v
        ADF90_Symbol_57%v = 1 _w2f__i8
        ADF90_Symbol_58%v = -1 _w2f__i8
        ADF90_Symbol_56%v = GAMMALOC%v
        ADF90_Symbol_53%v = VOL(2)%v
        ADF90_Symbol_50%v = 1 _w2f__i8
        ADF90_Symbol_47%v = 1 _w2f__i8
        ADF90_Symbol_60%v = ADF90_Symbol_59%v
        ADF90_Symbol_62%v = 1 _w2f__i8
        ADF90_Symbol_63%v = -1 _w2f__i8
        ADF90_Symbol_61%v = UVELLOC%v
        ADF90_Symbol_48%v = 1 _w2f__i8
        ADF90_Symbol_45%v = (1 _w2f__i8/VOL(2)%v)
        ADF90_Symbol_46%v = (-(ADF90_Symbol_44%v/(VOL(2)%v*VOL(2)%v)))
        DFLDDT(2)%v = ADF90_Symbol_64%v
        ADF90_Symbol_332%v = (ADF90_Symbol_47%v*ADF90_Symbol_45%v)
        ADF90_Symbol_333%v = (ADF90_Symbol_48%v*ADF90_Symbol_45%v)
        ADF90_Symbol_334%v = (ADF90_Symbol_49%v*ADF90_Symbol_332%v)
        ADF90_Symbol_336%v = (ADF90_Symbol_50%v*ADF90_Symbol_332%v)
        ADF90_Symbol_337%v = (ADF90_Symbol_52%v*ADF90_Symbol_336%v)
        ADF90_Symbol_339%v = (ADF90_Symbol_53%v*ADF90_Symbol_336%v)
        ADF90_Symbol_340%v = (ADF90_Symbol_60%v*ADF90_Symbol_333%v)
        ADF90_Symbol_342%v = (ADF90_Symbol_61%v*ADF90_Symbol_333%v)
        ADF90_Symbol_343%v = (ADF90_Symbol_55%v*ADF90_Symbol_339%v)
        ADF90_Symbol_345%v = (ADF90_Symbol_56%v*ADF90_Symbol_339%v)
        ADF90_Symbol_346%v = (ADF90_Symbol_62%v*ADF90_Symbol_342%v)
        ADF90_Symbol_348%v = (ADF90_Symbol_63%v*ADF90_Symbol_342%v)
        ADF90_Symbol_350%v = (ADF90_Symbol_57%v*ADF90_Symbol_345%v)
        ADF90_Symbol_352%v = (ADF90_Symbol_58%v*ADF90_Symbol_345%v)
        ADF90_Symbol_354%v = ADF90_Symbol_46%v
        CALL setderiv(ADF90_Symbol_355,VOL(2))
        CALL setderiv(ADF90_Symbol_353,FLDNOW(2))
        CALL setderiv(ADF90_Symbol_351,FLDSTAR(2))
        CALL setderiv(ADF90_Symbol_349,FLDNOW(2))
        CALL setderiv(ADF90_Symbol_347,FLDNOW(1))
        CALL setderiv(ADF90_Symbol_344,GAMMALOC)
        CALL setderiv(ADF90_Symbol_341,UVELLOC)
        CALL setderiv(ADF90_Symbol_338,VOL(2))
        CALL setderiv(ADF90_Symbol_335,EXTFORLOC(2))
        CALL sax(ADF90_Symbol_334%v,ADF90_Symbol_335,DFLDDT(2))
        CALL saxpy(ADF90_Symbol_337%v,ADF90_Symbol_338,DFLDDT(2))
        CALL saxpy(ADF90_Symbol_340%v,ADF90_Symbol_341,DFLDDT(2))
        CALL saxpy(ADF90_Symbol_343%v,ADF90_Symbol_344,DFLDDT(2))
        CALL saxpy(ADF90_Symbol_346%v,ADF90_Symbol_347,DFLDDT(2))
        CALL saxpy(ADF90_Symbol_348%v,ADF90_Symbol_349,DFLDDT(2))
        CALL saxpy(ADF90_Symbol_350%v,ADF90_Symbol_351,DFLDDT(2))
        CALL saxpy(ADF90_Symbol_352%v,ADF90_Symbol_353,DFLDDT(2))
        CALL saxpy(ADF90_Symbol_354%v,ADF90_Symbol_355,DFLDDT(2))
        ADF90_Symbol_68%v = (FLDNOW(2)%v-FLDNOW(3)%v)
        ADF90_Symbol_65%v = (UVELLOC%v*ADF90_Symbol_68%v)
        ADF90_Symbol_73%v = (ADF90_Symbol_65%v/VOL(3)%v)
        ADF90_Symbol_69%v = ADF90_Symbol_68%v
        ADF90_Symbol_71%v = 1 _w2f__i8
        ADF90_Symbol_72%v = -1 _w2f__i8
        ADF90_Symbol_70%v = UVELLOC%v
        ADF90_Symbol_66%v = (1 _w2f__i8/VOL(3)%v)
        ADF90_Symbol_67%v = (-(ADF90_Symbol_65%v/(VOL(3)%v*VOL(3)%v)))
        DFLDDT(3)%v = ADF90_Symbol_73%v
        ADF90_Symbol_356%v = (ADF90_Symbol_69%v*ADF90_Symbol_66%v)
        ADF90_Symbol_358%v = (ADF90_Symbol_70%v*ADF90_Symbol_66%v)
        ADF90_Symbol_359%v = (ADF90_Symbol_71%v*ADF90_Symbol_358%v)
        ADF90_Symbol_361%v = (ADF90_Symbol_72%v*ADF90_Symbol_358%v)
        ADF90_Symbol_363%v = ADF90_Symbol_67%v
        CALL setderiv(ADF90_Symbol_364,VOL(3))
        CALL setderiv(ADF90_Symbol_362,FLDNOW(3))
        CALL setderiv(ADF90_Symbol_360,FLDNOW(2))
        CALL setderiv(ADF90_Symbol_357,UVELLOC)
        CALL sax(ADF90_Symbol_356%v,ADF90_Symbol_357,DFLDDT(3))
        CALL saxpy(ADF90_Symbol_359%v,ADF90_Symbol_360,DFLDDT(3))
        CALL saxpy(ADF90_Symbol_361%v,ADF90_Symbol_362,DFLDDT(3))
        CALL saxpy(ADF90_Symbol_363%v,ADF90_Symbol_364,DFLDDT(3))
      ELSE
        ADF90_Symbol_84%v = (FLDSTAR(1)%v-FLDNOW(1)%v)
        ADF90_Symbol_81%v = (GAMMALOC%v*ADF90_Symbol_84%v)
        ADF90_Symbol_89%v = (FLDNOW(2)%v-FLDNOW(1)%v)
        ADF90_Symbol_74%v = ((EXTFORLOC(1)%v+(VOL(1)%v*ADF90_Symbol_81%v
     +))-(UVELLOC%v*ADF90_Symbol_89%v))
        ADF90_Symbol_94%v = (ADF90_Symbol_74%v/VOL(1)%v)
        ADF90_Symbol_79%v = 1 _w2f__i8
        ADF90_Symbol_82%v = ADF90_Symbol_81%v
        ADF90_Symbol_85%v = ADF90_Symbol_84%v
        ADF90_Symbol_87%v = 1 _w2f__i8
        ADF90_Symbol_88%v = -1 _w2f__i8
        ADF90_Symbol_86%v = GAMMALOC%v
        ADF90_Symbol_83%v = VOL(1)%v
        ADF90_Symbol_80%v = 1 _w2f__i8
        ADF90_Symbol_77%v = 1 _w2f__i8
        ADF90_Symbol_90%v = ADF90_Symbol_89%v
        ADF90_Symbol_92%v = 1 _w2f__i8
        ADF90_Symbol_93%v = -1 _w2f__i8
        ADF90_Symbol_91%v = UVELLOC%v
        ADF90_Symbol_78%v = -1 _w2f__i8
        ADF90_Symbol_75%v = (1 _w2f__i8/VOL(1)%v)
        ADF90_Symbol_76%v = (-(ADF90_Symbol_74%v/(VOL(1)%v*VOL(1)%v)))
        DFLDDT(1)%v = ADF90_Symbol_94%v
        ADF90_Symbol_365%v = (ADF90_Symbol_77%v*ADF90_Symbol_75%v)
        ADF90_Symbol_366%v = (ADF90_Symbol_78%v*ADF90_Symbol_75%v)
        ADF90_Symbol_367%v = (ADF90_Symbol_79%v*ADF90_Symbol_365%v)
        ADF90_Symbol_369%v = (ADF90_Symbol_80%v*ADF90_Symbol_365%v)
        ADF90_Symbol_370%v = (ADF90_Symbol_82%v*ADF90_Symbol_369%v)
        ADF90_Symbol_372%v = (ADF90_Symbol_83%v*ADF90_Symbol_369%v)
        ADF90_Symbol_373%v = (ADF90_Symbol_90%v*ADF90_Symbol_366%v)
        ADF90_Symbol_375%v = (ADF90_Symbol_91%v*ADF90_Symbol_366%v)
        ADF90_Symbol_376%v = (ADF90_Symbol_85%v*ADF90_Symbol_372%v)
        ADF90_Symbol_378%v = (ADF90_Symbol_86%v*ADF90_Symbol_372%v)
        ADF90_Symbol_379%v = (ADF90_Symbol_92%v*ADF90_Symbol_375%v)
        ADF90_Symbol_381%v = (ADF90_Symbol_93%v*ADF90_Symbol_375%v)
        ADF90_Symbol_383%v = (ADF90_Symbol_87%v*ADF90_Symbol_378%v)
        ADF90_Symbol_385%v = (ADF90_Symbol_88%v*ADF90_Symbol_378%v)
        ADF90_Symbol_387%v = ADF90_Symbol_76%v
        CALL setderiv(ADF90_Symbol_388,VOL(1))
        CALL setderiv(ADF90_Symbol_386,FLDNOW(1))
        CALL setderiv(ADF90_Symbol_384,FLDSTAR(1))
        CALL setderiv(ADF90_Symbol_382,FLDNOW(1))
        CALL setderiv(ADF90_Symbol_380,FLDNOW(2))
        CALL setderiv(ADF90_Symbol_377,GAMMALOC)
        CALL setderiv(ADF90_Symbol_374,UVELLOC)
        CALL setderiv(ADF90_Symbol_371,VOL(1))
        CALL setderiv(ADF90_Symbol_368,EXTFORLOC(1))
        CALL sax(ADF90_Symbol_367%v,ADF90_Symbol_368,DFLDDT(1))
        CALL saxpy(ADF90_Symbol_370%v,ADF90_Symbol_371,DFLDDT(1))
        CALL saxpy(ADF90_Symbol_373%v,ADF90_Symbol_374,DFLDDT(1))
        CALL saxpy(ADF90_Symbol_376%v,ADF90_Symbol_377,DFLDDT(1))
        CALL saxpy(ADF90_Symbol_379%v,ADF90_Symbol_380,DFLDDT(1))
        CALL saxpy(ADF90_Symbol_381%v,ADF90_Symbol_382,DFLDDT(1))
        CALL saxpy(ADF90_Symbol_383%v,ADF90_Symbol_384,DFLDDT(1))
        CALL saxpy(ADF90_Symbol_385%v,ADF90_Symbol_386,DFLDDT(1))
        CALL saxpy(ADF90_Symbol_387%v,ADF90_Symbol_388,DFLDDT(1))
        ADF90_Symbol_105%v = (FLDSTAR(2)%v-FLDNOW(2)%v)
        ADF90_Symbol_102%v = (GAMMALOC%v*ADF90_Symbol_105%v)
        ADF90_Symbol_110%v = (FLDNOW(3)%v-FLDNOW(2)%v)
        ADF90_Symbol_95%v = ((EXTFORLOC(2)%v+(VOL(2)%v*ADF90_Symbol_102%
     +v))-(UVELLOC%v*ADF90_Symbol_110%v))
        ADF90_Symbol_115%v = (ADF90_Symbol_95%v/VOL(2)%v)
        ADF90_Symbol_100%v = 1 _w2f__i8
        ADF90_Symbol_103%v = ADF90_Symbol_102%v
        ADF90_Symbol_106%v = ADF90_Symbol_105%v
        ADF90_Symbol_108%v = 1 _w2f__i8
        ADF90_Symbol_109%v = -1 _w2f__i8
        ADF90_Symbol_107%v = GAMMALOC%v
        ADF90_Symbol_104%v = VOL(2)%v
        ADF90_Symbol_101%v = 1 _w2f__i8
        ADF90_Symbol_98%v = 1 _w2f__i8
        ADF90_Symbol_111%v = ADF90_Symbol_110%v
        ADF90_Symbol_113%v = 1 _w2f__i8
        ADF90_Symbol_114%v = -1 _w2f__i8
        ADF90_Symbol_112%v = UVELLOC%v
        ADF90_Symbol_99%v = -1 _w2f__i8
        ADF90_Symbol_96%v = (1 _w2f__i8/VOL(2)%v)
        ADF90_Symbol_97%v = (-(ADF90_Symbol_95%v/(VOL(2)%v*VOL(2)%v)))
        DFLDDT(2)%v = ADF90_Symbol_115%v
        ADF90_Symbol_389%v = (ADF90_Symbol_98%v*ADF90_Symbol_96%v)
        ADF90_Symbol_390%v = (ADF90_Symbol_99%v*ADF90_Symbol_96%v)
        ADF90_Symbol_391%v = (ADF90_Symbol_100%v*ADF90_Symbol_389%v)
        ADF90_Symbol_393%v = (ADF90_Symbol_101%v*ADF90_Symbol_389%v)
        ADF90_Symbol_394%v = (ADF90_Symbol_103%v*ADF90_Symbol_393%v)
        ADF90_Symbol_396%v = (ADF90_Symbol_104%v*ADF90_Symbol_393%v)
        ADF90_Symbol_397%v = (ADF90_Symbol_111%v*ADF90_Symbol_390%v)
        ADF90_Symbol_399%v = (ADF90_Symbol_112%v*ADF90_Symbol_390%v)
        ADF90_Symbol_400%v = (ADF90_Symbol_106%v*ADF90_Symbol_396%v)
        ADF90_Symbol_402%v = (ADF90_Symbol_107%v*ADF90_Symbol_396%v)
        ADF90_Symbol_403%v = (ADF90_Symbol_113%v*ADF90_Symbol_399%v)
        ADF90_Symbol_405%v = (ADF90_Symbol_114%v*ADF90_Symbol_399%v)
        ADF90_Symbol_407%v = (ADF90_Symbol_108%v*ADF90_Symbol_402%v)
        ADF90_Symbol_409%v = (ADF90_Symbol_109%v*ADF90_Symbol_402%v)
        ADF90_Symbol_411%v = ADF90_Symbol_97%v
        CALL setderiv(ADF90_Symbol_412,VOL(2))
        CALL setderiv(ADF90_Symbol_410,FLDNOW(2))
        CALL setderiv(ADF90_Symbol_408,FLDSTAR(2))
        CALL setderiv(ADF90_Symbol_406,FLDNOW(2))
        CALL setderiv(ADF90_Symbol_404,FLDNOW(3))
        CALL setderiv(ADF90_Symbol_401,GAMMALOC)
        CALL setderiv(ADF90_Symbol_398,UVELLOC)
        CALL setderiv(ADF90_Symbol_395,VOL(2))
        CALL setderiv(ADF90_Symbol_392,EXTFORLOC(2))
        CALL sax(ADF90_Symbol_391%v,ADF90_Symbol_392,DFLDDT(2))
        CALL saxpy(ADF90_Symbol_394%v,ADF90_Symbol_395,DFLDDT(2))
        CALL saxpy(ADF90_Symbol_397%v,ADF90_Symbol_398,DFLDDT(2))
        CALL saxpy(ADF90_Symbol_400%v,ADF90_Symbol_401,DFLDDT(2))
        CALL saxpy(ADF90_Symbol_403%v,ADF90_Symbol_404,DFLDDT(2))
        CALL saxpy(ADF90_Symbol_405%v,ADF90_Symbol_406,DFLDDT(2))
        CALL saxpy(ADF90_Symbol_407%v,ADF90_Symbol_408,DFLDDT(2))
        CALL saxpy(ADF90_Symbol_409%v,ADF90_Symbol_410,DFLDDT(2))
        CALL saxpy(ADF90_Symbol_411%v,ADF90_Symbol_412,DFLDDT(2))
        ADF90_Symbol_120%v = (FLDNOW(1)%v-FLDNOW(3)%v)
        ADF90_Symbol_117%v = (UVELLOC%v*ADF90_Symbol_120%v)
        ADF90_Symbol_125%v = (-(ADF90_Symbol_117%v/VOL(3)%v))
        ADF90_Symbol_121%v = ADF90_Symbol_120%v
        ADF90_Symbol_123%v = 1 _w2f__i8
        ADF90_Symbol_124%v = -1 _w2f__i8
        ADF90_Symbol_122%v = UVELLOC%v
        ADF90_Symbol_118%v = (1 _w2f__i8/VOL(3)%v)
        ADF90_Symbol_119%v = (-(ADF90_Symbol_117%v/(VOL(3)%v*VOL(3)%v)))
        ADF90_Symbol_116%v = -1 _w2f__i8
        DFLDDT(3)%v = ADF90_Symbol_125%v
        ADF90_Symbol_413%v = (ADF90_Symbol_118%v*ADF90_Symbol_116%v)
        ADF90_Symbol_414%v = (ADF90_Symbol_119%v*ADF90_Symbol_116%v)
        ADF90_Symbol_416%v = (ADF90_Symbol_121%v*ADF90_Symbol_413%v)
        ADF90_Symbol_418%v = (ADF90_Symbol_122%v*ADF90_Symbol_413%v)
        ADF90_Symbol_419%v = (ADF90_Symbol_123%v*ADF90_Symbol_418%v)
        ADF90_Symbol_421%v = (ADF90_Symbol_124%v*ADF90_Symbol_418%v)
        CALL setderiv(ADF90_Symbol_422,FLDNOW(3))
        CALL setderiv(ADF90_Symbol_420,FLDNOW(1))
        CALL setderiv(ADF90_Symbol_417,UVELLOC)
        CALL setderiv(ADF90_Symbol_415,VOL(3))
        CALL sax(ADF90_Symbol_414%v,ADF90_Symbol_415,DFLDDT(3))
        CALL saxpy(ADF90_Symbol_416%v,ADF90_Symbol_417,DFLDDT(3))
        CALL saxpy(ADF90_Symbol_419%v,ADF90_Symbol_420,DFLDDT(3))
        CALL saxpy(ADF90_Symbol_421%v,ADF90_Symbol_422,DFLDDT(3))
      ENDIF
      CALL box_update(FLDNEW,FLDOLD,DFLDDT)
      RETURN
      END SUBROUTINE