1 |
C $Header: /u/gcmpack/MITgcm/pkg/bling/bling_ini_forcing.F,v 1.2 2016/10/15 21:30:43 mmazloff Exp $ |
2 |
C $Name: $ |
3 |
|
4 |
#include "BLING_OPTIONS.h" |
5 |
#ifdef ALLOW_EXF |
6 |
# include "EXF_OPTIONS.h" |
7 |
#endif |
8 |
|
9 |
CBOP |
10 |
subroutine BLING_INI_FORCING( myThid ) |
11 |
|
12 |
C ========================================================== |
13 |
C | subroutine bling_ini_forcing |
14 |
C | o Initialize forcing fields |
15 |
C ========================================================== |
16 |
|
17 |
implicit none |
18 |
|
19 |
C === Global variables === |
20 |
#include "SIZE.h" |
21 |
#include "EEPARAMS.h" |
22 |
#include "PARAMS.h" |
23 |
#include "GRID.h" |
24 |
#ifdef USE_EXFCO2 |
25 |
# include "EXF_PARAM.h" |
26 |
#endif |
27 |
#include "BLING_VARS.h" |
28 |
#include "BLING_LOAD.h" |
29 |
|
30 |
C !INPUT PARAMETERS: =================================================== |
31 |
C myThid :: thread number |
32 |
INTEGER myThid |
33 |
CEOP |
34 |
|
35 |
#ifdef ALLOW_BLING |
36 |
|
37 |
c !LOCAL VARIABLES: =================================================== |
38 |
INTEGER bi,bj,i,j |
39 |
#if (defined (READ_PAR) && defined (USE_QSW)) |
40 |
CHARACTER*(MAX_LEN_MBUF) msgBuf |
41 |
#endif |
42 |
|
43 |
C First call requires that we initialize everything to zero for safety |
44 |
DO bj = myByLo(myThid), myByHi(myThid) |
45 |
DO bi = myBxLo(myThid), myBxHi(myThid) |
46 |
BLING_ldRec(bi,bj) = 0 |
47 |
ENDDO |
48 |
ENDDO |
49 |
CALL LEF_ZERO( dicwind0,myThid ) |
50 |
CALL LEF_ZERO( dicwind1,myThid ) |
51 |
CALL LEF_ZERO( atmosp0,myThid ) |
52 |
CALL LEF_ZERO( atmosp1,myThid ) |
53 |
CALL LEF_ZERO( silica0,myThid ) |
54 |
CALL LEF_ZERO( silica1,myThid ) |
55 |
CALL LEF_ZERO( ice0,myThid ) |
56 |
CALL LEF_ZERO( ice1,myThid ) |
57 |
#ifdef READ_PAR |
58 |
CALL LEF_ZERO( par0,myThid ) |
59 |
CALL LEF_ZERO( par1,myThid ) |
60 |
#endif |
61 |
CALL LEF_ZERO( feinput0,myThid ) |
62 |
CALL LEF_ZERO( feinput1,myThid ) |
63 |
|
64 |
#ifdef READ_PAR |
65 |
#ifdef USE_QSW |
66 |
WRITE(msgBuf,'(2A)') |
67 |
& ' BLING_INI_FORCING: You can not use READ_PAR ', |
68 |
& ' and USE_QSW' |
69 |
CALL PRINT_ERROR( msgBuf, myThid ) |
70 |
STOP 'ABNORMAL END: S/R BLING_INI_FORCING' |
71 |
#endif |
72 |
#endif |
73 |
|
74 |
c set reasonable values to those that need at least something |
75 |
DO bj = myByLo(myThid), myByHi(myThid) |
76 |
DO bi = myBxLo(myThid), myBxHi(myThid) |
77 |
DO j=1-OLy,sNy+OLy |
78 |
DO i=1-OLx,sNx+OLx |
79 |
WIND(i,j,bi,bj) = 5. _d 0*maskC(i,j,1,bi,bj) |
80 |
AtmosP(i,j,bi,bj) = 1. _d 0*maskC(i,j,1,bi,bj) |
81 |
SILICA(i,j,bi,bj) = 7.6838 _d -3*maskC(i,j,1,bi,bj) |
82 |
FIce(i,j,bi,bj) = 0. _d 0 |
83 |
FluxCO2(i,j,bi,bj)= 0. _d 0 |
84 |
InputFe(i,j,bi,bj)= 1. _d -11*maskC(i,j,1,bi,bj) |
85 |
ENDDO |
86 |
ENDDO |
87 |
ENDDO |
88 |
ENDDO |
89 |
|
90 |
c total_atmos_carbon = 0. _d 0 |
91 |
|
92 |
#ifdef USE_EXFCO2 |
93 |
CALL EXF_INIT_FLD( |
94 |
I 'apco2', apco2file, apco2mask, |
95 |
I apco2period, exf_inscal_apco2, apco2const, |
96 |
O apco2, apco20, apco21, |
97 |
# ifdef USE_EXF_INTERPOLATION |
98 |
I apco2_lon0, apco2_lon_inc, |
99 |
I apco2_lat0, apco2_lat_inc, |
100 |
I apco2_nlon, apco2_nlat, xC, yC, apco2_interpMethod, |
101 |
# endif |
102 |
I myThid ) |
103 |
#endif |
104 |
|
105 |
#endif /* ALLOW_BLING */ |
106 |
RETURN |
107 |
END |