/[MITgcm]/MITgcm/pkg/thsice/thsice_get_bulkf.F
ViewVC logotype

Contents of /MITgcm/pkg/thsice/thsice_get_bulkf.F

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


Revision 1.4 - (show annotations) (download)
Thu May 25 17:36:44 2006 UTC (17 years, 11 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint58l_post, mitgcm_mapl_00, checkpoint58u_post, checkpoint58w_post, checkpoint60, checkpoint61, checkpoint62, checkpoint58r_post, checkpoint58n_post, checkpoint58x_post, checkpoint58t_post, checkpoint58h_post, checkpoint58q_post, checkpoint59q, checkpoint59p, checkpoint59r, checkpoint58j_post, checkpoint59e, checkpoint59d, checkpoint59g, checkpoint59f, checkpoint59a, checkpoint59c, checkpoint59b, checkpoint59m, checkpoint59l, checkpoint59o, checkpoint59n, checkpoint59i, checkpoint59h, checkpoint59k, checkpoint59j, checkpoint59, checkpoint58f_post, checkpoint58i_post, checkpoint58g_post, checkpoint58o_post, checkpoint62c, checkpoint62b, checkpoint62a, checkpoint62g, checkpoint62f, checkpoint62e, checkpoint62d, checkpoint62k, checkpoint62j, checkpoint62i, checkpoint62h, checkpoint58y_post, checkpoint58k_post, checkpoint58v_post, checkpoint58s_post, checkpoint61f, checkpoint61g, checkpoint61d, checkpoint61e, checkpoint61b, checkpoint61c, checkpoint58p_post, checkpoint61a, checkpoint61n, checkpoint61o, checkpoint61l, checkpoint61m, checkpoint61j, checkpoint61k, checkpoint61h, checkpoint61i, checkpoint61v, checkpoint61w, checkpoint61t, checkpoint61u, checkpoint61r, checkpoint61s, checkpoint61p, checkpoint61q, checkpoint61z, checkpoint61x, checkpoint61y, checkpoint58m_post
Changes since 1.3: +10 -2 lines
add new Bulk-Formulae from Large and Yeager, 2004, NCAR/TN-460+STR

1 C $Header: /u/gcmpack/MITgcm/pkg/thsice/thsice_get_bulkf.F,v 1.3 2006/01/22 15:58:59 jmc Exp $
2 C $Name: $
3
4 #include "THSICE_OPTIONS.h"
5 #ifdef ALLOW_BULK_FORCE
6 #include "BULK_FORCE_OPTIONS.h"
7 #endif
8
9 CBOP
10 C !ROUTINE: THSICE_GET_BULKF
11 C !INTERFACE:
12 SUBROUTINE THSICE_GET_BULKF(
13 I iceornot, Tsf,
14 O flxExceptSw, df0dT, evap, dEvdT,
15 I i,j,bi,bj,myThid )
16 C !DESCRIPTION: \bv
17 C *==========================================================*
18 C | S/R THSICE_GET_BULKF
19 C *==========================================================*
20 C | Interface S/R : get Surface Fluxes from pkg BULK_FORCE
21 C *==========================================================*
22 C \ev
23
24 C !USES:
25 IMPLICIT NONE
26
27 C == Global data ==
28 #ifdef ALLOW_BULK_FORCE
29 #include "SIZE.h"
30 #include "EEPARAMS.h"
31 #include "BULKF_PARAMS.h"
32 #include "BULKF.h"
33 #endif
34
35 C !INPUT/OUTPUT PARAMETERS:
36 C === Routine arguments ===
37 C iceornot :: 0=open water, 1=ice cover
38 C Tsf :: surface (ice or snow) temperature (oC)
39 C flxExceptSw :: net (downward) surface heat flux, except short-wave [W/m2]
40 C df0dT :: deriv of flx with respect to Tsf [W/m/K]
41 C evap :: surface evaporation (>0 if evaporate) [kg/m2/s]
42 C dEvdT :: deriv of evap. with respect to Tsf [kg/m2/s/K]
43 C i,j, bi,bj :: current grid point indices
44 C myThid :: Thread no. that called this routine.
45 INTEGER i,j, bi,bj
46 INTEGER myThid
47 INTEGER iceornot
48 _RL Tsf
49 _RL flxExceptSw
50 _RL df0dT
51 _RL evap
52 _RL dEvdT
53 CEOP
54
55 #ifdef ALLOW_THSICE
56 #ifdef ALLOW_BULK_FORCE
57
58 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
59 C === Local variables ===
60
61 _RL flwup ! upward LW at surface (W m-2)
62 _RL flwNet_dwn ! net (downward) LW at surface (W m-2)
63 _RL fsh ! surface downward sensible heat (W m-2)
64 _RL flh ! surface downward latent heat (W m-2)
65 _RL ust, vst, ssq
66 #ifdef ALLOW_FORMULA_AIM
67 _RL Tsurf(1), SHF(1), EVPloc(1), SLRU(1)
68 _RL dEvp(1), sFlx(0:2)
69 #endif
70
71 #ifdef ALLOW_FORMULA_AIM
72 IF ( useFluxFormula_AIM ) THEN
73
74 Tsurf(1) = Tsf
75 CALL BULKF_FORMULA_AIM(
76 I Tsurf, flwdwn(i,j,bi,bj),
77 I ThAir(i,j,bi,bj), Tair(i,j,bi,bj),
78 I Qair(i,j,bi,bj), wspeed(i,j,bi,bj),
79 O SHF, EVPloc, SLRU,
80 O dEvp, sFlx,
81 I iceornot, myThid )
82
83 flxExceptSw = sFlx(1)
84 df0dT = sFlx(2)
85 C- convert from [g/m2/s] to [kg/m2/s]
86 evap = EVPloc(1) * 1. _d -3
87 dEvdT = dEvp(1) * 1. _d -3
88
89 ELSE
90 #else /* ALLOW_FORMULA_AIM */
91 IF ( .TRUE. ) THEN
92 #endif /* ALLOW_FORMULA_AIM */
93
94 ust = 0.
95 vst = 0.
96 ssq = 0.
97
98 IF ( blk_nIter.EQ.0 ) THEN
99 CALL BULKF_FORMULA_LANL(
100 I uwind(i,j,bi,bj), vwind(i,j,bi,bj), wspeed(i,j,bi,bj),
101 I Tair(i,j,bi,bj), Qair(i,j,bi,bj), cloud(i,j,bi,bj), Tsf,
102 O flwup, flh, fsh, df0dT, ust, vst, evap, ssq, dEvdT,
103 I iceornot, myThid )
104 ELSE
105 CALL BULKF_FORMULA_LAY(
106 I uwind(i,j,bi,bj), vwind(i,j,bi,bj), wspeed(i,j,bi,bj),
107 I Tair(i,j,bi,bj), Qair(i,j,bi,bj), Tsf,
108 O flwup, flh, fsh, df0dT, ust, vst, evap, ssq, dEvdT,
109 I iceornot, i,j,bi,bj,myThid )
110 ENDIF
111
112 flwNet_dwn = flwdwn(i,j,bi,bj) - flwup
113 flxExceptSw = flwNet_dwn + fsh + flh
114
115 ENDIF
116
117 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
118
119 #endif /* ALLOW_BULK_FORCE */
120 #endif /* ALLOW_THSICE */
121
122 RETURN
123 END

  ViewVC Help
Powered by ViewVC 1.1.22