source: Roms_tools/air_sea/cloudcor.m @ 2

Last change on this file since 2 was 1, checked in by cholod, 13 years ago

import Roms_Agrif

File size: 2.4 KB
Line 
1function Fc=cloudcor(C,optns,lat)
2% CLOUDCOR: computes cloud correction factor for bulk long-wave flux.
3% Fc=CLOUDCOR(C,optns,lat) computes the cloud correction factor F(C)
4% as a function of the cloud fraction C for bulk long-wave flux formulae.
5% In general, these are functions of the form
6%             1 - a_n*C^n
7% Since the coefficients and powers depend a lot on the dominant cloud
8% type which may vary from region to region and season to season, it is
9% not clear which parametrization is best (see Fung et al (1984),
10% Rev. of Geophys. and Space Phys., 22, 177-193).
11%
12% The particular parametrization used here depends on the second input
13% variable, for which no default is given to emphasize the fact that you
14% really need to understand what you are doing here!
15%
16% optns = [a1 a2] = use a correction factor of [1-a1*C-a2*C^2].
17%
18% There are several "built-in" formulae (from Fung et al) that all have
19% a latitude-dependence of some kind.
20%
21% optns = 'clarke',lat = Clarke (1974) corrections for abs(lat)<50.
22%       = 'bunker',lat = Bunker (1976) corrections for N Atlantic.
23%
24% INPUT:   C - cloud fraction
25%          optns - see above for details
26%          lat - latitude [deg] - required for "built-in" formulae only
27%
28% OUTPUT:  Fc - correction factor used as input to BLWHF
29
30%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
31% 3/12/98: version 1.1 (contributed by RP)
32% 8/5/99: version 2.0
33%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
34
35if isstr(optns),
36
37  switch optns(1),
38    case 'c',
39      a1=0;
40      if     abs(lat)>55, a2=NaN;
41      elseif abs(lat)>45, a2=0.73;
42      elseif abs(lat)>35, a2=0.69;
43      elseif abs(lat)>25, a2=0.64;
44      elseif abs(lat)>15, a2=0.60;
45      elseif abs(lat)> 7, a2=0.56;
46      elseif abs(lat)> 2, a2=0.53;
47      else                a2=0.51;
48      end;
49       
50    case 'b',
51      a2=0;
52      if     abs(lat)>75, a1=0.84;
53      elseif abs(lat)>65, a1=0.80;
54      elseif abs(lat)>55, a1=0.76;
55      elseif abs(lat)>45, a1=0.72;
56      elseif abs(lat)>35, a1=0.68;
57      elseif abs(lat)>25, a1=0.63;
58      elseif abs(lat)>15, a1=0.59;
59      elseif abs(lat)>7,  a1=0.52;
60      else                a1=0.50;
61      end;
62     
63    otherwise
64      error('Unrecognized option');
65  end;
66else
67 a1=optns(1);a2=optns(2);
68end;
69
70Fc = 1 - a1*C - a2.*C.^2;
Note: See TracBrowser for help on using the repository browser.