| 1 |
jahn |
1.7 |
C $Header: /u/gcmpack/MITgcm_contrib/darwin2/pkg/darwin/DARWIN_IO.h,v 1.6 2012/10/23 17:55:30 stephd Exp $ |
| 2 |
stephd |
1.2 |
C $Name: $ |
| 3 |
jahn |
1.1 |
|
| 4 |
|
|
#include "DARWIN_OPTIONS.h" |
| 5 |
|
|
|
| 6 |
|
|
c DARWIN_IO.h |
| 7 |
|
|
c -------------------------------------------------------------------- |
| 8 |
|
|
c Description: input and diagnostic output for DARWIN pkg |
| 9 |
|
|
c Stephanie Dutkiewicz: Spring 2006 |
| 10 |
|
|
c NOTE: additional diagnostics still needed |
| 11 |
|
|
c -------------------------------------------------------------------- |
| 12 |
|
|
|
| 13 |
|
|
C-- COMMON /DARWIN_FILENAMES/ |
| 14 |
|
|
C darwin_iceFile :: file name of seaice fraction |
| 15 |
|
|
C darwin_ironFile :: file name of aeolian iron flux |
| 16 |
|
|
C darwin_PARFile :: file name of Photosynthetically Active Radiation at surface |
| 17 |
|
|
C darwin_nutWVelFile :: file name of nutrient wvel |
| 18 |
|
|
C darwin_waterabsorbFile :: file name of water absorption/scattering spectra |
| 19 |
|
|
C darwin_phytoabsorbFile :: file name of phyto absorption/scattering spectra |
| 20 |
|
|
C darwin_particleabsorbFile :: file name of particle absorption/scattering spectra |
| 21 |
|
|
C darwin_surfacespecFile :: file name of spectrum of incident light |
| 22 |
|
|
C darwin_acdomFile :: file name of CDOM absorption spectrum |
| 23 |
jahn |
1.3 |
C darwin_PARunits :: units of data in PAR file; one of Ein/m2/d, uEin/m2/s, W/m2 |
| 24 |
|
|
C darwin_PARFileConv :: conversion factor from PAR file units to uEin/m2/s |
| 25 |
|
|
C darwin_W_to_uEins :: conversion factor from W to uEin/s |
| 26 |
jahn |
1.4 |
C darwin_ironUnits :: units of data in iron file; one of mol Fe/m2/s, kg dust/m2/s |
| 27 |
|
|
C darwin_dustFrac :: fraction of dust by weight that is iron |
| 28 |
jahn |
1.1 |
C darwin_forcingPeriod :: perioDARWIN forcing parameter specific for DARWIN (seconds) |
| 29 |
|
|
C darwin_forcingCycle :: perioDARWIN forcing parameter specific for DARWIN (seconds) |
| 30 |
|
|
C darwin_seed :: seed for the random number generator |
| 31 |
|
|
|
| 32 |
|
|
COMMON /DARWIN_FILENAMES/ |
| 33 |
|
|
& darwin_iceFile, |
| 34 |
|
|
& darwin_ironFile, |
| 35 |
|
|
& darwin_PARFile, |
| 36 |
|
|
& darwin_nutWVelFile, |
| 37 |
|
|
& darwin_PO4_relaxFile, darwin_NO3_relaxFile, |
| 38 |
|
|
& darwin_FeT_relaxFile, darwin_Si_relaxFile, |
| 39 |
|
|
& darwin_relaxscale, |
| 40 |
|
|
& darwin_PO4_fluxFile, darwin_NO3_FluxFile, |
| 41 |
|
|
& darwin_FeT_fluxFile, darwin_Si_fluxFile, |
| 42 |
|
|
& darwin_oasim_edFile, darwin_oasim_esFile, |
| 43 |
|
|
& darwin_waterabsorbFile, darwin_phytoabsorbFile, |
| 44 |
|
|
& darwin_surfacespecFile, darwin_acdomFile, |
| 45 |
|
|
& darwin_particleabsorbFile, |
| 46 |
jahn |
1.4 |
& darwin_PARunits, darwin_ironUnits, |
| 47 |
|
|
& darwin_PARFileConv, darwin_ironFileConv, |
| 48 |
|
|
& darwin_dustFrac, |
| 49 |
jahn |
1.3 |
& darwin_W_to_uEins, |
| 50 |
jahn |
1.1 |
& darwin_forcingPeriod, darwin_forcingCycle, |
| 51 |
|
|
& darwin_seed |
| 52 |
|
|
|
| 53 |
|
|
CHARACTER*(MAX_LEN_FNAM) darwin_iceFile |
| 54 |
|
|
CHARACTER*(MAX_LEN_FNAM) darwin_ironFile |
| 55 |
|
|
CHARACTER*(MAX_LEN_FNAM) darwin_PARFile |
| 56 |
|
|
CHARACTER*(MAX_LEN_FNAM) darwin_NutWVelFile |
| 57 |
|
|
CHARACTER*(MAX_LEN_FNAM) darwin_PO4_relaxFile |
| 58 |
|
|
CHARACTER*(MAX_LEN_FNAM) darwin_NO3_relaxFile |
| 59 |
|
|
CHARACTER*(MAX_LEN_FNAM) darwin_FeT_relaxFile |
| 60 |
|
|
CHARACTER*(MAX_LEN_FNAM) darwin_Si_relaxFile |
| 61 |
|
|
CHARACTER*(MAX_LEN_FNAM) darwin_PO4_fluxFile |
| 62 |
|
|
CHARACTER*(MAX_LEN_FNAM) darwin_NO3_fluxFile |
| 63 |
|
|
CHARACTER*(MAX_LEN_FNAM) darwin_FeT_fluxFile |
| 64 |
|
|
CHARACTER*(MAX_LEN_FNAM) darwin_Si_fluxFile |
| 65 |
|
|
CHARACTER*(MAX_LEN_FNAM) darwin_oasim_edFile |
| 66 |
|
|
CHARACTER*(MAX_LEN_FNAM) darwin_oasim_esFile |
| 67 |
|
|
CHARACTER*(MAX_LEN_FNAM) darwin_waterabsorbFile |
| 68 |
|
|
CHARACTER*(MAX_LEN_FNAM) darwin_phytoabsorbFile |
| 69 |
|
|
CHARACTER*(MAX_LEN_FNAM) darwin_particleabsorbFile |
| 70 |
|
|
CHARACTER*(MAX_LEN_FNAM) darwin_surfacespecFile |
| 71 |
|
|
CHARACTER*(MAX_LEN_FNAM) darwin_acdomFile |
| 72 |
jahn |
1.3 |
CHARACTER*(MAX_LEN_FNAM) darwin_PARunits |
| 73 |
jahn |
1.4 |
CHARACTER*(MAX_LEN_FNAM) darwin_ironUnits |
| 74 |
jahn |
1.1 |
|
| 75 |
|
|
_RL darwin_relaxscale |
| 76 |
|
|
_RL darwin_forcingPeriod |
| 77 |
|
|
_RL darwin_forcingCycle |
| 78 |
jahn |
1.3 |
_RL darwin_PARFileConv |
| 79 |
|
|
_RL darwin_W_to_uEins |
| 80 |
jahn |
1.4 |
_RL darwin_ironFileConv |
| 81 |
|
|
_RL darwin_dustFrac |
| 82 |
jahn |
1.1 |
INTEGER darwin_seed |
| 83 |
|
|
|
| 84 |
|
|
c INPUT: |
| 85 |
|
|
c fice - ice fraction |
| 86 |
|
|
c inputFe - aeolian input of iron |
| 87 |
|
|
c sur_par - surface PAR |
| 88 |
|
|
COMMON /DARWIN_INPUT/ |
| 89 |
|
|
& fice, inputFe, sur_par |
| 90 |
|
|
#ifdef NUT_SUPPLY |
| 91 |
|
|
& ,nut_wvel |
| 92 |
|
|
#endif |
| 93 |
|
|
#ifdef RELAX_NUTS |
| 94 |
|
|
& ,po4_obs, no3_obs, fet_obs, si_obs |
| 95 |
|
|
#endif |
| 96 |
|
|
#ifdef FLUX_NUTS |
| 97 |
|
|
& ,po4_flx, no3_flx, fet_flx, si_flx |
| 98 |
|
|
#endif |
| 99 |
|
|
c |
| 100 |
|
|
_RL fice(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx, nSy) |
| 101 |
|
|
_RL inputFe(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx, nSy) |
| 102 |
|
|
_RL sur_par(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx, nSy) |
| 103 |
|
|
#ifdef NUT_SUPPLY |
| 104 |
|
|
_RL nut_wvel(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx, nSy) |
| 105 |
|
|
#endif |
| 106 |
|
|
#ifdef RELAX_NUTS |
| 107 |
|
|
_RL po4_obs(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx, nSy) |
| 108 |
|
|
_RL no3_obs(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx, nSy) |
| 109 |
|
|
_RL fet_obs(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx, nSy) |
| 110 |
|
|
_RL si_obs(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx, nSy) |
| 111 |
|
|
#endif |
| 112 |
|
|
#ifdef FLUX_NUTS |
| 113 |
|
|
_RL po4_flx(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx, nSy) |
| 114 |
|
|
_RL no3_flx(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx, nSy) |
| 115 |
|
|
_RL fet_flx(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx, nSy) |
| 116 |
|
|
_RL si_flx(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx, nSy) |
| 117 |
|
|
#endif |
| 118 |
|
|
c |
| 119 |
|
|
c OUPUT DIAGNOSTICS |
| 120 |
|
|
c PPave - average primary production |
| 121 |
|
|
c Nfixave - average N fixation |
| 122 |
|
|
c Zoograzave - average zooplankton consumption |
| 123 |
|
|
c Parave - average PAR |
| 124 |
|
|
c Chlave - average chlorophyll |
| 125 |
benw |
1.5 |
c npzd_timeave - time for averaging |
| 126 |
|
|
c Nlim,Flim,etc- Quota model average limitation factors |
| 127 |
jahn |
1.1 |
|
| 128 |
|
|
COMMON /DARWIN_OUPUT/ |
| 129 |
|
|
& PPave, Nfixave, Zoograzave, |
| 130 |
|
|
& PARave, Chlave, Denitave, |
| 131 |
benw |
1.5 |
#ifdef QUOTA_DIAG_LIMIT |
| 132 |
|
|
& Nlimave,Flimave,Ilimave,Tlimave, |
| 133 |
|
|
#endif |
| 134 |
jahn |
1.1 |
c ANNA_TAVE |
| 135 |
|
|
#ifdef WAVES_DIAG_PCHL |
| 136 |
|
|
& Pchlave, |
| 137 |
|
|
#endif |
| 138 |
|
|
#ifdef DAR_DIAG_ACDOM |
| 139 |
|
|
& aCDOMave, |
| 140 |
|
|
#endif |
| 141 |
stephd |
1.6 |
#ifdef DAR_DIAG_PARW |
| 142 |
|
|
& chl2cave, |
| 143 |
|
|
#endif |
| 144 |
|
|
#ifdef DAR_DIAG_EK |
| 145 |
|
|
& Ekave, EkoverEave, acclimave, |
| 146 |
|
|
#endif |
| 147 |
jahn |
1.1 |
c ANNA end TAVE |
| 148 |
|
|
#ifdef DAR_DIAG_RSTAR |
| 149 |
|
|
& Rstarave, RNstarave, |
| 150 |
|
|
#endif |
| 151 |
|
|
#ifdef DAR_DIAG_DIVER |
| 152 |
|
|
& Diver1ave, Diver2ave, Diver3ave, Diver4ave, |
| 153 |
|
|
#endif |
| 154 |
|
|
#ifdef DAR_DIAG_GROW |
| 155 |
|
|
& Growave, Growsqave, |
| 156 |
|
|
#endif |
| 157 |
|
|
#ifdef ALLOW_DIAZ |
| 158 |
|
|
#ifdef DAR_DIAG_NFIXP |
| 159 |
|
|
& NfixPave, |
| 160 |
|
|
#endif |
| 161 |
|
|
#endif |
| 162 |
|
|
& dar_timeave |
| 163 |
|
|
c |
| 164 |
|
|
_RL PPave(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx, nSy) |
| 165 |
|
|
_RL Nfixave(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx, nSy) |
| 166 |
|
|
_RL Zoograzave(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx, nSy) |
| 167 |
|
|
_RL PARave(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx, nSy) |
| 168 |
|
|
_RL Chlave(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx, nSy) |
| 169 |
|
|
_RL Denitave(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx, nSy) |
| 170 |
benw |
1.5 |
#ifdef QUOTA_DIAG_LIMIT |
| 171 |
|
|
_RL Nlimave(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx, nSy, npmax) |
| 172 |
|
|
_RL Flimave(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx, nSy, npmax) |
| 173 |
|
|
_RL Ilimave(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx, nSy, npmax) |
| 174 |
|
|
_RL Tlimave(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx, nSy) |
| 175 |
|
|
#endif |
| 176 |
jahn |
1.1 |
c ANNA_TAVE |
| 177 |
|
|
#ifdef WAVES_DIAG_PCHL |
| 178 |
|
|
_RL Pchlave(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx, nSy,npmax) |
| 179 |
|
|
#endif |
| 180 |
|
|
#ifdef DAR_DIAG_ACDOM |
| 181 |
|
|
_RL aCDOMave(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx,nSy) |
| 182 |
|
|
#endif |
| 183 |
stephd |
1.6 |
#ifdef DAR_DIAG_PARW |
| 184 |
|
|
_RL chl2cave(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx, nSy,npmax) |
| 185 |
|
|
#endif |
| 186 |
|
|
#ifdef DAR_DIAG_EK |
| 187 |
|
|
_RL Ekave(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx, nSy,npmax) |
| 188 |
|
|
_RL EkoverEave(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx, nSy,npmax) |
| 189 |
|
|
_RL acclimave(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx, nSy,npmax) |
| 190 |
|
|
#endif |
| 191 |
jahn |
1.1 |
c ANNA end TAVE |
| 192 |
|
|
#ifdef DAR_DIAG_RSTAR |
| 193 |
|
|
_RL Rstarave(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx, nSy,npmax) |
| 194 |
|
|
_RL RNstarave(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx, nSy,npmax) |
| 195 |
|
|
#endif |
| 196 |
|
|
#ifdef DAR_DIAG_DIVER |
| 197 |
|
|
_RL Diver1ave(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx, nSy) |
| 198 |
|
|
_RL Diver2ave(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx, nSy) |
| 199 |
|
|
_RL Diver3ave(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx, nSy) |
| 200 |
|
|
_RL Diver4ave(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx, nSy) |
| 201 |
|
|
#endif |
| 202 |
|
|
#ifdef DAR_DIAG_GROW |
| 203 |
|
|
_RL Growave(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx, nSy,npmax) |
| 204 |
|
|
_RL Growsqave(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx, nSy,npmax) |
| 205 |
|
|
#endif |
| 206 |
|
|
#ifdef ALLOW_DIAZ |
| 207 |
|
|
#ifdef DAR_DIAG_NFIXP |
| 208 |
|
|
_RL NfixPave(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx, nSy,npmax) |
| 209 |
|
|
#endif |
| 210 |
|
|
#endif |
| 211 |
|
|
_RL DAR_timeave(nSx,nSy,nR) |
| 212 |
|
|
|
| 213 |
|
|
#ifdef CHECK_CONS |
| 214 |
|
|
COMMON /DARWIN_CHECK_CONS/ |
| 215 |
jahn |
1.7 |
& DAR_cons_unitC, DAR_cons_unitN, |
| 216 |
|
|
& DAR_cons_unitP, DAR_cons_unitF, |
| 217 |
|
|
& DAR_cons_unitS, DAR_cons_unitA, |
| 218 |
|
|
& DAR_cons_unitO |
| 219 |
|
|
INTEGER DAR_cons_unitC |
| 220 |
|
|
INTEGER DAR_cons_unitN |
| 221 |
|
|
INTEGER DAR_cons_unitP |
| 222 |
|
|
INTEGER DAR_cons_unitF |
| 223 |
|
|
INTEGER DAR_cons_unitS |
| 224 |
|
|
INTEGER DAR_cons_unitA |
| 225 |
|
|
INTEGER DAR_cons_unitO |
| 226 |
jahn |
1.1 |
#endif |
| 227 |
|
|
|
| 228 |
stephd |
1.2 |
#ifdef CALC_RATE_TOTALS |
| 229 |
|
|
COMMON /DARWIN_RATE_TOT/ |
| 230 |
|
|
& DAR_ratetot_unit, DAR_fluxtot_unit |
| 231 |
|
|
INTEGER DAR_ratetot_unit |
| 232 |
|
|
INTEGER DAR_fluxtot_unit |
| 233 |
|
|
#endif |
| 234 |
|
|
|
| 235 |
jahn |
1.1 |
#ifdef ALLOW_PAR_DAY |
| 236 |
|
|
C PARday :: array for accumulating/storing daily-averaged PAR |
| 237 |
|
|
COMMON /DARWIN_PAR_DAY/ PARday, |
| 238 |
|
|
& darwin_PARavPeriod, darwin_PARnav |
| 239 |
|
|
_RL PARday(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx,nSy,2) |
| 240 |
|
|
_RL darwin_PARavPeriod |
| 241 |
|
|
INTEGER darwin_PARnav |
| 242 |
|
|
#endif |
| 243 |
|
|
|
| 244 |
|
|
#ifdef ALLOW_CARBON |
| 245 |
|
|
C-- COMMON /DIC_FILENAMES/ |
| 246 |
|
|
C DIC_windFile :: file name of wind speeds |
| 247 |
|
|
C DIC_atmospFile :: file name of atmospheric pressure |
| 248 |
|
|
C dic_pCO2 :: Atmospheric pCO2 to be rad in data.dic |
| 249 |
|
|
C dic_int* :: place holder to read in a integer number, set at run time |
| 250 |
|
|
|
| 251 |
|
|
COMMON /DIC_FILENAMES/ |
| 252 |
|
|
& DIC_windFile, DIC_atmospFile, |
| 253 |
|
|
& dic_pCO2, dic_int1, dic_int2, dic_int3, dic_int4 |
| 254 |
|
|
CHARACTER*(MAX_LEN_FNAM) DIC_windFile |
| 255 |
|
|
CHARACTER*(MAX_LEN_FNAM) DIC_atmospFile |
| 256 |
|
|
_RL dic_pCO2 |
| 257 |
|
|
INTEGER dic_int1 |
| 258 |
|
|
INTEGER dic_int2 |
| 259 |
|
|
INTEGER dic_int3 |
| 260 |
|
|
INTEGER dic_int4 |
| 261 |
|
|
#endif |
| 262 |
|
|
|