| 1 |
C $Header: /u/gcmpack/MITgcm_contrib/ecco_darwin/v4_3deg/code/DARWIN_IO.h,v 1.1 2020/01/27 02:52:02 dimitri Exp $ |
| 2 |
C $Name: $ |
| 3 |
|
| 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 |
C darwin_forcingPeriod :: perioDARWIN forcing parameter specific for DARWIN (seconds) |
| 24 |
C darwin_forcingCycle :: perioDARWIN forcing parameter specific for DARWIN (seconds) |
| 25 |
C darwin_seed :: seed for the random number generator |
| 26 |
C darwin_dicSurfFluxFile :: file name of dic surface flux |
| 27 |
C darwin_alkSurfFluxFile :: file name of alk surface flux |
| 28 |
C darwin_caSurfFluxFile :: file name of calcium surface flux |
| 29 |
C darwin_BBLFile :: file name of BBL file |
| 30 |
|
| 31 |
COMMON /DARWIN_FILENAMES/ |
| 32 |
& darwin_iceFile, |
| 33 |
& darwin_ironFile, |
| 34 |
& darwin_PARFile, |
| 35 |
& darwin_nutWVelFile, |
| 36 |
& darwin_PO4_relaxFile, darwin_NO3_relaxFile, |
| 37 |
& darwin_FeT_relaxFile, darwin_Si_relaxFile, |
| 38 |
& darwin_relaxscale, |
| 39 |
& darwin_PO4_fluxFile, darwin_NO3_FluxFile, |
| 40 |
& darwin_FeT_fluxFile, darwin_Si_fluxFile, |
| 41 |
& darwin_oasim_edFile, darwin_oasim_esFile, |
| 42 |
& darwin_waterabsorbFile, darwin_phytoabsorbFile, |
| 43 |
& darwin_surfacespecFile, darwin_acdomFile, |
| 44 |
& darwin_particleabsorbFile, |
| 45 |
& darwin_forcingPeriod, darwin_forcingCycle, |
| 46 |
& darwin_seed, |
| 47 |
& darwin_dicSurfFluxFile, |
| 48 |
& darwin_alkSurfFluxFile, |
| 49 |
& darwin_caSurfFluxFile, |
| 50 |
& darwin_BBLFile |
| 51 |
|
| 52 |
CHARACTER*(MAX_LEN_FNAM) darwin_iceFile |
| 53 |
CHARACTER*(MAX_LEN_FNAM) darwin_ironFile |
| 54 |
CHARACTER*(MAX_LEN_FNAM) darwin_PARFile |
| 55 |
CHARACTER*(MAX_LEN_FNAM) darwin_NutWVelFile |
| 56 |
CHARACTER*(MAX_LEN_FNAM) darwin_PO4_relaxFile |
| 57 |
CHARACTER*(MAX_LEN_FNAM) darwin_NO3_relaxFile |
| 58 |
CHARACTER*(MAX_LEN_FNAM) darwin_FeT_relaxFile |
| 59 |
CHARACTER*(MAX_LEN_FNAM) darwin_Si_relaxFile |
| 60 |
CHARACTER*(MAX_LEN_FNAM) darwin_PO4_fluxFile |
| 61 |
CHARACTER*(MAX_LEN_FNAM) darwin_NO3_fluxFile |
| 62 |
CHARACTER*(MAX_LEN_FNAM) darwin_FeT_fluxFile |
| 63 |
CHARACTER*(MAX_LEN_FNAM) darwin_Si_fluxFile |
| 64 |
CHARACTER*(MAX_LEN_FNAM) darwin_oasim_edFile |
| 65 |
CHARACTER*(MAX_LEN_FNAM) darwin_oasim_esFile |
| 66 |
CHARACTER*(MAX_LEN_FNAM) darwin_waterabsorbFile |
| 67 |
CHARACTER*(MAX_LEN_FNAM) darwin_phytoabsorbFile |
| 68 |
CHARACTER*(MAX_LEN_FNAM) darwin_particleabsorbFile |
| 69 |
CHARACTER*(MAX_LEN_FNAM) darwin_surfacespecFile |
| 70 |
CHARACTER*(MAX_LEN_FNAM) darwin_acdomFile |
| 71 |
CHARACTER*(MAX_LEN_FNAM) darwin_dicSurfFluxFile |
| 72 |
CHARACTER*(MAX_LEN_FNAM) darwin_alkSurfFluxFile |
| 73 |
CHARACTER*(MAX_LEN_FNAM) darwin_caSurfFluxFile |
| 74 |
CHARACTER*(MAX_LEN_FNAM) darwin_BBLFile |
| 75 |
|
| 76 |
_RL darwin_relaxscale |
| 77 |
_RL darwin_forcingPeriod |
| 78 |
_RL darwin_forcingCycle |
| 79 |
INTEGER darwin_seed |
| 80 |
|
| 81 |
c INPUT: |
| 82 |
c fice - ice fraction |
| 83 |
c inputFe - aeolian input of iron |
| 84 |
c sur_par - surface PAR |
| 85 |
COMMON /DARWIN_INPUT/ |
| 86 |
& fice, inputFe, sur_par |
| 87 |
#ifdef NUT_SUPPLY |
| 88 |
& ,nut_wvel |
| 89 |
#endif |
| 90 |
#ifdef RELAX_NUTS |
| 91 |
& ,po4_obs, no3_obs, fet_obs, si_obs |
| 92 |
#endif |
| 93 |
#ifdef FLUX_NUTS |
| 94 |
& ,po4_flx, no3_flx, fet_flx, si_flx |
| 95 |
#endif |
| 96 |
#ifdef ADKINS_SURF_FLUX |
| 97 |
& ,dicSurf_flx, alkSurf_flx, caSurf_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 |
#ifdef ADKINS_SURF_FLUX |
| 119 |
_RL dicSurf_flx(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
| 120 |
_RL alkSurf_flx(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
| 121 |
_RL caSurf_flx(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
| 122 |
#endif |
| 123 |
#ifdef ALLOW_SED_DISS_FLUX |
| 124 |
_RL BBLThickness(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
| 125 |
#endif |
| 126 |
c |
| 127 |
c OUPUT DIAGNOSTICS |
| 128 |
c PPave - average primary production |
| 129 |
c Nfixave - average N fixation |
| 130 |
c Zoograzave - average zooplankton consumption |
| 131 |
c Parave - average PAR |
| 132 |
c Chlave - average chlorophyll |
| 133 |
c npzd_timeave - time for averaging |
| 134 |
|
| 135 |
COMMON /DARWIN_OUPUT/ |
| 136 |
& PPave, Nfixave, Zoograzave, |
| 137 |
& PARave, Chlave, Denitave, |
| 138 |
c ANNA_TAVE |
| 139 |
#ifdef WAVES_DIAG_PCHL |
| 140 |
& Pchlave, |
| 141 |
#endif |
| 142 |
#ifdef DAR_DIAG_ACDOM |
| 143 |
& aCDOMave, |
| 144 |
#endif |
| 145 |
c ANNA end TAVE |
| 146 |
#ifdef DAR_DIAG_RSTAR |
| 147 |
& Rstarave, RNstarave, |
| 148 |
#endif |
| 149 |
#ifdef DAR_DIAG_DIVER |
| 150 |
& Diver1ave, Diver2ave, Diver3ave, Diver4ave, |
| 151 |
#endif |
| 152 |
#ifdef DAR_DIAG_GROW |
| 153 |
& Growave, Growsqave, |
| 154 |
#endif |
| 155 |
#ifdef ALLOW_DIAZ |
| 156 |
#ifdef DAR_DIAG_NFIXP |
| 157 |
& NfixPave, |
| 158 |
#endif |
| 159 |
#endif |
| 160 |
& dar_timeave |
| 161 |
c |
| 162 |
_RL PPave(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx, nSy) |
| 163 |
_RL Nfixave(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx, nSy) |
| 164 |
_RL Zoograzave(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx, nSy) |
| 165 |
_RL PARave(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx, nSy) |
| 166 |
_RL Chlave(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx, nSy) |
| 167 |
_RL Denitave(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx, nSy) |
| 168 |
c ANNA_TAVE |
| 169 |
#ifdef WAVES_DIAG_PCHL |
| 170 |
_RL Pchlave(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx, nSy,npmax) |
| 171 |
#endif |
| 172 |
#ifdef DAR_DIAG_ACDOM |
| 173 |
_RL aCDOMave(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx,nSy) |
| 174 |
#endif |
| 175 |
c ANNA end TAVE |
| 176 |
#ifdef DAR_DIAG_RSTAR |
| 177 |
_RL Rstarave(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx, nSy,npmax) |
| 178 |
_RL RNstarave(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx, nSy,npmax) |
| 179 |
#endif |
| 180 |
#ifdef DAR_DIAG_DIVER |
| 181 |
_RL Diver1ave(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx, nSy) |
| 182 |
_RL Diver2ave(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx, nSy) |
| 183 |
_RL Diver3ave(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx, nSy) |
| 184 |
_RL Diver4ave(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx, nSy) |
| 185 |
#endif |
| 186 |
#ifdef DAR_DIAG_GROW |
| 187 |
_RL Growave(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx, nSy,npmax) |
| 188 |
_RL Growsqave(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx, nSy,npmax) |
| 189 |
#endif |
| 190 |
#ifdef ALLOW_DIAZ |
| 191 |
#ifdef DAR_DIAG_NFIXP |
| 192 |
_RL NfixPave(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx, nSy,npmax) |
| 193 |
#endif |
| 194 |
#endif |
| 195 |
_RL DAR_timeave(nSx,nSy) |
| 196 |
|
| 197 |
#ifdef CHECK_CONS |
| 198 |
COMMON /DARWIN_CHECK_CONS/ |
| 199 |
& DAR_cons_unit1, DAR_cons_unit2, |
| 200 |
& DAR_cons_unit3, DAR_cons_unit4, |
| 201 |
& DAR_cons_unit5, DAR_cons_unit6, |
| 202 |
& DAR_cons_unit7 |
| 203 |
INTEGER DAR_cons_unit1 |
| 204 |
INTEGER DAR_cons_unit2 |
| 205 |
INTEGER DAR_cons_unit3 |
| 206 |
INTEGER DAR_cons_unit4 |
| 207 |
INTEGER DAR_cons_unit5 |
| 208 |
INTEGER DAR_cons_unit6 |
| 209 |
INTEGER DAR_cons_unit7 |
| 210 |
#endif |
| 211 |
|
| 212 |
#ifdef ALLOW_PAR_DAY |
| 213 |
C PARday :: array for accumulating/storing daily-averaged PAR |
| 214 |
COMMON /DARWIN_PAR_DAY/ PARday, |
| 215 |
& darwin_PARavPeriod, darwin_PARnav |
| 216 |
_RL PARday(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx,nSy,2) |
| 217 |
_RL darwin_PARavPeriod |
| 218 |
INTEGER darwin_PARnav |
| 219 |
#endif |
| 220 |
|
| 221 |
#ifdef ALLOW_CARBON |
| 222 |
C-- COMMON /DIC_FILENAMES/ |
| 223 |
C DIC_windFile :: file name of wind speeds |
| 224 |
C DIC_atmospFile :: file name of atmospheric pressure |
| 225 |
C dic_pCO2 :: Atmospheric pCO2 to be rad in data.dic |
| 226 |
C dic_int* :: place holder to read in a integer number, set at run time |
| 227 |
|
| 228 |
COMMON /DIC_FILENAMES/ |
| 229 |
& DIC_windFile, DIC_atmospFile, |
| 230 |
& dic_pCO2, dic_int1, dic_int2, dic_int3, dic_int4 |
| 231 |
CHARACTER*(MAX_LEN_FNAM) DIC_windFile |
| 232 |
CHARACTER*(MAX_LEN_FNAM) DIC_atmospFile |
| 233 |
_RL dic_pCO2 |
| 234 |
INTEGER dic_int1 |
| 235 |
INTEGER dic_int2 |
| 236 |
INTEGER dic_int3 |
| 237 |
INTEGER dic_int4 |
| 238 |
#endif |
| 239 |
|