1 |
#include "EXF_OPTIONS.h" |
2 |
|
3 |
subroutine exf_init_runoff( mythid ) |
4 |
|
5 |
c ================================================================== |
6 |
c SUBROUTINE exf_init_runoff |
7 |
c ================================================================== |
8 |
c |
9 |
c o |
10 |
c |
11 |
c started: Ralf.Giering@FastOpt.de 25-Mai-2000 |
12 |
c mods for pkg/seaice: menemenlis@jpl.nasa.gov 20-Dec-2002 |
13 |
c |
14 |
c ================================================================== |
15 |
c SUBROUTINE exf_init_runoff |
16 |
c ================================================================== |
17 |
|
18 |
implicit none |
19 |
|
20 |
c == global variables == |
21 |
|
22 |
#include "EEPARAMS.h" |
23 |
#include "SIZE.h" |
24 |
#include "GRID.h" |
25 |
|
26 |
#include "exf_param.h" |
27 |
#include "exf_fields.h" |
28 |
#include "exf_constants.h" |
29 |
|
30 |
c == routine arguments == |
31 |
|
32 |
integer mythid |
33 |
|
34 |
#if (defined (ALLOW_RUNOFF) || defined (ALLOW_SEAICE)) |
35 |
|
36 |
c == local variables == |
37 |
|
38 |
integer bi, bj, i, j, interp_method |
39 |
|
40 |
c == end of interface == |
41 |
|
42 |
do bj = mybylo(mythid), mybyhi(mythid) |
43 |
do bi = mybxlo(mythid), mybxhi(mythid) |
44 |
do j = 1-oly, sny+oly |
45 |
do i = 1-olx, snx+olx |
46 |
runoff(i,j,bi,bj) = 0. _d 0 |
47 |
enddo |
48 |
enddo |
49 |
enddo |
50 |
enddo |
51 |
|
52 |
if ( runofffile .NE. ' ' ) then |
53 |
#ifdef USE_EXF_INTERPOLATION |
54 |
interp_method = 1 |
55 |
call exf_interp( |
56 |
& runofffile, exf_iprec |
57 |
& , runoff, 1, xC, yC |
58 |
& ,runoff_lon0,runoff_lon_inc |
59 |
& ,runoff_lat0,runoff_lat_inc |
60 |
& ,runoff_nlon,runoff_nlat,interp_method,mythid ) |
61 |
#else |
62 |
call mdsreadfield( runofffile, exf_iprec, exf_yftype, 1 |
63 |
& , runoff, 1, mythid |
64 |
& ) |
65 |
#endif |
66 |
if (exf_yftype .eq. 'RL') then |
67 |
call exf_filter_rl( runoff, runoffmask, mythid ) |
68 |
else |
69 |
call exf_filter_rs( runoff, runoffmask, mythid ) |
70 |
end if |
71 |
|
72 |
c-- scale runoff array |
73 |
do bj = mybylo(mythid), mybyhi(mythid) |
74 |
do bi = mybxlo(mythid), mybxhi(mythid) |
75 |
do j = 1, sny |
76 |
do i = 1, snx |
77 |
if(ABS(runoff(i,j,bi,bj)).gt.998.) runoff(i,j,bi,bj)=0. |
78 |
runoff(i,j,bi,bj)=exf_inscal_runoff*runoff(i,j,bi,bj) |
79 |
enddo |
80 |
enddo |
81 |
enddo |
82 |
enddo |
83 |
endif |
84 |
|
85 |
_EXCH_XY_R4( runoff, mythid ) |
86 |
|
87 |
CALL PLOT_FIELD_XYRL( runoff, |
88 |
& 'Runoff after rescaling and exf_inscal_runoff' , |
89 |
& 0, myThid ) |
90 |
|
91 |
#endif |
92 |
|
93 |
end |