File indexing completed on 2026-01-27 18:49:44 UTC
view on githubraw file Latest commit 289ac961 on 2026-01-16 15:54:36 UTC
8fbfd1f382 Oliv*0001
0002
0003
8992518b30 Oliv*0004
0005
0006
0007
0008
0009
8fbfd1f382 Oliv*0010
0011
0012
0013
0014 #include "DARWIN_OPTIONS.h"
0015
0016
0017
0018
0019
0020
0021 SUBROUTINE DARWIN_CHECK( myThid )
0022
0023
0024
0025
0026
0027
0028
0029 IMPLICIT NONE
0030 #include "SIZE.h"
0031 #include "EEPARAMS.h"
674bd6922c Oliv*0032 #include "EESUPPORT.h"
0033 #ifdef DARWIN_DEBUG
0034 #ifdef ALLOW_EXCH2
0035 #include "W2_EXCH2_SIZE.h"
0036 #include "W2_EXCH2_TOPOLOGY.h"
0037 #include "W2_EXCH2_PARAMS.h"
0038 #endif
0039 #include "GRID.h"
0040 #endif
8fbfd1f382 Oliv*0041 #include "PARAMS.h"
4e9fe45e8e Oliv*0042 #include "EXF_PARAM.h"
8fbfd1f382 Oliv*0043 #include "PTRACERS_SIZE.h"
0044 #include "PTRACERS_PARAMS.h"
0045 #include "GCHEM.h"
4e9fe45e8e Oliv*0046 #ifdef ALLOW_RADTRANS
0047 #include "RADTRANS_SIZE.h"
0048 #endif
8fbfd1f382 Oliv*0049 #include "DARWIN_SIZE.h"
0050 #include "DARWIN_INDICES.h"
4e9fe45e8e Oliv*0051 #include "DARWIN_EXF_PARAMS.h"
0052 #include "DARWIN_EXF_FIELDS.h"
8fbfd1f382 Oliv*0053 #include "DARWIN_PARAMS.h"
30cf4ad023 Oliv*0054 #include "DARWIN_TRAITPARAMS.h"
8fbfd1f382 Oliv*0055 #include "DARWIN_TRAITS.h"
4e9fe45e8e Oliv*0056 #include "DARWIN_RADTRANS.h"
8fbfd1f382 Oliv*0057
0058
0059
0060 INTEGER myThid
0061
0062
0063 #ifdef ALLOW_DARWIN
0064
0065
0066
0067 CHARACTER*(MAX_LEN_MBUF) msgBuf
30cf4ad023 Oliv*0068 CHARACTER*80 gname
a092808e6b shlo*0069 INTEGER j,iPtr,oUnit,g,l,errCount
30cf4ad023 Oliv*0070 _RL dm
8fbfd1f382 Oliv*0071
0072
0073
0074
0075
0076
0077
0078
0079
0080 INTEGER i_DIC
0081 INTEGER i_NO3
0082 INTEGER i_NO2
0083 INTEGER i_NH4
0084 INTEGER i_PO4
0085 INTEGER i_FeT
0086 INTEGER i_SiO2
0087 INTEGER i_DOC
0088 INTEGER i_DON
0089 INTEGER i_DOP
0090 INTEGER i_DOFe
0091 INTEGER i_POC
0092 INTEGER i_PON
0093 INTEGER i_POP
0094 INTEGER i_POFe
0095 INTEGER i_POSi
0096 INTEGER i_PIC
0097 #ifdef DARWIN_ALLOW_CARBON
0098 INTEGER i_ALK
0099 #endif
0100 #ifdef DARWIN_ALLOW_CARBON
0101 INTEGER i_O2
0102 #endif
0103 #ifdef DARWIN_ALLOW_CDOM
0104 INTEGER i_CDOM, e_CDOM
0105 #endif
0106 INTEGER i_c, e_c
0107 #ifdef DARWIN_ALLOW_NQUOTA
0108 INTEGER i_n, e_n
0109 #endif
0110 #ifdef DARWIN_ALLOW_PQUOTA
0111 INTEGER i_p, e_p
0112 #endif
0113 #ifdef DARWIN_ALLOW_FEQUOTA
0114 INTEGER i_fe, e_fe
0115 #endif
0116 #ifdef DARWIN_ALLOW_SIQUOTA
0117 INTEGER i_si, e_si
0118 #endif
0119 #ifdef DARWIN_ALLOW_CHLQUOTA
0120 INTEGER i_Chl, e_Chl
0121 #endif
8fb4461f75 Oliv*0122 #ifdef DARWIN_ALLOW_CSTORE
0123 INTEGER i_ch, e_ch
0124 #endif
0125
8fbfd1f382 Oliv*0126 INTEGER n_DARWIN
4e9fe45e8e Oliv*0127 LOGICAL addBlkLn
0128 CHARACTER*1 blkLin
674bd6922c Oliv*0129 #ifdef DARWIN_DEBUG
0130 INTEGER np,bi,bj,i
0131 INTEGER iG,jG
0132 INTEGER iBase,jBase
0133 INTEGER iGjLoc,jGjLoc
0134 _R8 bufl(3), bufg(3,nPx*nPy)
0135 #ifdef ALLOW_EXCH2
0136 INTEGER tN
0137 #endif /* ALLOW_EXCH2 */
0138 #endif /* DARWIN_DEBUG */
8fbfd1f382 Oliv*0139
0140 NAMELIST/DARWIN_INDICES/
0141
0142
0143
0144
0145
0146
0147
0148
0149
0150 & i_DIC,
0151 & i_NO3,
0152 & i_NO2,
0153 & i_NH4,
0154 & i_PO4,
0155 & i_FeT,
0156 & i_SiO2,
0157 & i_DOC,
0158 & i_DON,
0159 & i_DOP,
0160 & i_DOFe,
0161 & i_POC,
0162 & i_PON,
0163 & i_POP,
0164 & i_POFe,
0165 & i_POSi,
0166 & i_PIC,
0167 #ifdef DARWIN_ALLOW_CARBON
0168 & i_ALK,
0169 #endif
0170 #ifdef DARWIN_ALLOW_CARBON
0171 & i_O2,
0172 #endif
0173 #ifdef DARWIN_ALLOW_CDOM
0174 & i_CDOM, e_CDOM,
0175 #endif
0176 & i_c, e_c,
0177 #ifdef DARWIN_ALLOW_NQUOTA
0178 & i_n, e_n,
0179 #endif
0180 #ifdef DARWIN_ALLOW_PQUOTA
0181 & i_p, e_p,
0182 #endif
0183 #ifdef DARWIN_ALLOW_FEQUOTA
0184 & i_fe, e_fe,
0185 #endif
0186 #ifdef DARWIN_ALLOW_SIQUOTA
0187 & i_si, e_si,
0188 #endif
0189 #ifdef DARWIN_ALLOW_CHLQUOTA
0190 & i_Chl, e_Chl,
0191 #endif
8fb4461f75 Oliv*0192 #ifdef DARWIN_ALLOW_CSTORE
0193 & i_ch, e_ch,
0194 #endif
0195
8fbfd1f382 Oliv*0196 & n_DARWIN
0197
0198 _BEGIN_MASTER(myThid)
0199
4e9fe45e8e Oliv*0200 IF ( myProcId.EQ.0 .AND. myThid.EQ.1 ) THEN
8fbfd1f382 Oliv*0201
0202
0203
0204
0205
0206
0207
0208
0209
0210
0211
0212 i_DIC = iDIC
0213 i_NO3 = iNO3
0214 i_NO2 = iNO2
0215 i_NH4 = iNH4
0216 i_PO4 = iPO4
0217 i_FeT = iFeT
0218 i_SiO2 = iSiO2
0219 i_DOC = iDOC
0220 i_DON = iDON
0221 i_DOP = iDOP
0222 i_DOFe = iDOFe
0223 i_POC = iPOC
0224 i_PON = iPON
0225 i_POP = iPOP
0226 i_POFe = iPOFe
0227 i_POSi = iPOSi
0228 i_PIC = iPIC
0229 #ifdef DARWIN_ALLOW_CARBON
0230 i_ALK = iALK
0231 #endif
0232 #ifdef DARWIN_ALLOW_CARBON
0233 i_O2 = iO2
0234 #endif
0235 #ifdef DARWIN_ALLOW_CDOM
0236 i_CDOM = iCDOM
0237 e_CDOM = eCDOM
0238 #endif
0239 i_c = ic
0240 e_c = ec
0241 #ifdef DARWIN_ALLOW_NQUOTA
0242 i_n = in
0243 e_n = en
0244 #endif
0245 #ifdef DARWIN_ALLOW_PQUOTA
0246 i_p = ip
0247 e_p = ep
0248 #endif
0249 #ifdef DARWIN_ALLOW_FEQUOTA
0250 i_fe = ife
0251 e_fe = efe
0252 #endif
0253 #ifdef DARWIN_ALLOW_SIQUOTA
0254 i_si = isi
0255 e_si = esi
0256 #endif
0257 #ifdef DARWIN_ALLOW_CHLQUOTA
0258 i_Chl = iChl
0259 e_Chl = eChl
0260 #endif
8fb4461f75 Oliv*0261 #ifdef DARWIN_ALLOW_CSTORE
0262 i_ch = ich
0263 e_ch = ech
0264 #endif
0265
8fbfd1f382 Oliv*0266 n_DARWIN = nDARWIN
0267
0268 CALL MDSFINDUNIT( oUnit, mythid )
0269 OPEN(oUnit,FILE='darwin_indices.txt',STATUS='unknown')
0270 WRITE(UNIT=oUnit, NML=DARWIN_INDICES)
0271 CLOSE(oUnit)
0272 ENDIF
0273
0274 WRITE(msgBuf,'(A)') 'DARWIN_CHECK: #define ALLOW_DARWIN'
0275 CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,
0276 & SQUEEZE_RIGHT,myThid)
0277
0278
0279 #ifdef ALLOW_EXF
0280 IF ( .NOT. useEXF ) THEN
0281 #else
0282 IF (.TRUE.) THEN
0283 #endif
0284 WRITE(msgBuf,'(A)')
0285 & 'DARWIN_CHECK: ERROR: darwin requires the exf package to be on'
0286 CALL PRINT_ERROR( msgBuf , 1)
0287 STOP 'ABNORMAL END: S/R DARWIN_CHECK'
0288 ENDIF
0289
0290 IF ( nDarwin .GT. PTRACERS_num ) THEN
0291 WRITE(msgBuf,'(A,I5,A,I5)')
0292 & 'DARWIN_CHECK: ERROR: nDarwin > PTRACERS_num: ',
0293 & nDarwin,' vs ',PTRACERS_num
0294 CALL PRINT_ERROR( msgBuf , 1)
0295 STOP 'ABNORMAL END: S/R DARWIN_CHECK'
0296 ENDIF
0297
60668cc661 Oliv*0298 #ifdef ALLOW_RADTRANS
0299 IF (.NOT.useRADTRANS) THEN
0300 WRITE(msgBuf,'(A,A)') 'DARWIN_CHECK: ',
0301 & 'The radtrans pkg must be used when compiled with darwin.'
0302 CALL PRINT_ERROR( msgBuf, myThid )
0303 STOP 'ABNORMAL END: DARWIN_CHECK: radtrans compiled but not used'
0304 ENDIF
0305 #endif
0306
8fbfd1f382 Oliv*0307 #ifndef ALLOW_RADTRANS
0308 IF (.NOT.DARWIN_haveSurfPAR .AND. .NOT.DARWIN_useQsw .AND.
0309 & .NOT.usingSphericalPolarGrid) THEN
60668cc661 Oliv*0310 WRITE(msgBuf,'(A,A)') 'DARWIN_CHECK: ',
8fbfd1f382 Oliv*0311 & 'Attempting to use DARWIN_INSOL without a spherical polar grid.'
0312 CALL PRINT_ERROR( msgBuf, myThid )
60668cc661 Oliv*0313 WRITE(msgBuf,'(A,A)') 'DARWIN_CHECK: ',
8fbfd1f382 Oliv*0314 & 'This is not supported.'
0315 CALL PRINT_ERROR( msgBuf, myThid )
60668cc661 Oliv*0316 WRITE(msgBuf,'(A,A)') 'DARWIN_CHECK: ',
8fbfd1f382 Oliv*0317 & 'Please provide PARFile or set DARWIN_useQsw.'
0318 CALL PRINT_ERROR( msgBuf, myThid )
60668cc661 Oliv*0319 STOP 'ABNORMAL END: DARWIN_CHECK: DARWIN_INSOL vs grid'
8fbfd1f382 Oliv*0320 ENDIF
0321 #endif
0322
cc9e49e57e Oliv*0323 #if defined DARWIN_ALLOW_DENIT &&
6da6a6c11b Oliv*0324 WRITE(msgBuf,'(2A)') 'DARWIN_CHECK: ',
cc9e49e57e Oliv*0325 & 'DARWIN_ALLOW_DENIT requires DARWIN_ALLOW_CARBON.',
6da6a6c11b Oliv*0326 CALL PRINT_ERROR( msgBuf, myThid )
0327 STOP 'ABNORMAL END: DARWIN_CHECK: DENIT without CARBON'
cc9e49e57e Oliv*0328 #endif
0329
b1b22a2a65 Oliv*0330 #ifdef DARWIN_ALLOW_RADI
0331 WRITE(msgBuf,'(2A)') 'DARWIN_CHECK: ',
0332 & 'DARWIN_ALLOW_RADI has been retired. Define either ',
0333 CALL PRINT_ERROR( msgBuf, myThid )
0334 WRITE(msgBuf,'(2A)') 'DARWIN_CHECK: ',
0335 & 'DARWIN_ALLOW_RADIv1 or DARWIN_ALLOW_RADIv2.'
0336 CALL PRINT_ERROR( msgBuf, myThid )
0337 STOP 'ABNORMAL END: DARWIN_CHECK: DARWIN_ALLOW_RADI'
0338 #endif
0339 #if defined(DARWIN_ALLOW_RADIv1) && defined(DARWIN_ALLOW_RADIv2)
0340 WRITE(msgBuf,'(2A)') 'DARWIN_CHECK: ',
0341 & 'Only one of DARWIN_ALLOW_RADIv1 and DARWIN_ALOW_RADIv2 '
0342 CALL PRINT_ERROR( msgBuf, myThid )
0343 WRITE(msgBuf,'(2A)') 'DARWIN_CHECK: ',
0344 & 'can be defined at a time.'
0345 CALL PRINT_ERROR( msgBuf, myThid )
0346 STOP 'ABNORMAL END: S/R DARWIN_CHECK'
0347 #endif
0348
289ac96103 Oliv*0349 #if defined DARWIN_ALLOW_RADIv1 &&
0350 WRITE(msgBuf,'(2A)') 'DARWIN_CHECK: ',
0351 & 'DARWIN_ALLOW_RADIv1 requires DARWIN_BOTTOM_SINK.'
0352 CALL PRINT_ERROR( msgBuf, myThid )
0353 STOP 'ABNORMAL END: DARWIN_CHECK: RADIv1 without BOTTOM_SINK'
0354 #endif
0355
0356 #if defined DARWIN_ALLOW_RADIv2 &&
0357 WRITE(msgBuf,'(2A)') 'DARWIN_CHECK: ',
0358 & 'DARWIN_ALLOW_RADIv2 requires DARWIN_BOTTOM_SINK.'
0359 CALL PRINT_ERROR( msgBuf, myThid )
0360 STOP 'ABNORMAL END: DARWIN_CHECK: RADIv2 without BOTTOM_SINK'
0361 #endif
0362
8fbfd1f382 Oliv*0363
0364 IF (hollexp .NE. 1.0 _d 0) THEN
0365 IF (inhib_graz_exp .NE. 0) THEN
0366 WRITE(msgBuf,'(2A)') 'DARWIN_CHECK: ERROR: ',
0367 & 'hollexp.NE.1 and inhib_graz_exp should not be used together'
0368 CALL PRINT_ERROR( msgBuf , 1)
0369 STOP 'ABNORMAL END: S/R DARWIN_CHECK'
0370 ENDIF
0371 #ifdef DARWIN_GRAZING_SWITCH
0372 WRITE(msgBuf,'(3A)') 'DARWIN_CHECK: ERROR: ',
0373 & 'hollexp.NE.1 and DARWIN_GRAZING_SWITCH ',
0374 & 'should not be used together'
0375 CALL PRINT_ERROR( msgBuf , 1)
0376 STOP 'ABNORMAL END: S/R DARWIN_CHECK'
0377 #endif
0378 ENDIF
0379
b5c67a2701 Oliv*0380 #ifdef DARWIN_NITRATE_FELIMIT
0381 # ifndef DARWIN_ALLOW_NQUOTA
0382 WRITE(msgBuf,'(2A)') 'DARWIN_CHECK: ERROR: ',
0383 & 'DARWIN_NITRATE_FELIMIT requires DARWIN_ALLOW_NQUOTA'
0384 CALL PRINT_ERROR( msgBuf , 1)
0385 STOP 'ABNORMAL END: S/R DARWIN_CHECK'
0386 # endif
0387 # ifndef DARWIN_ALLOW_FEQUOTA
0388 WRITE(msgBuf,'(2A)') 'DARWIN_CHECK: ERROR: ',
0389 & 'DARWIN_NITRATE_FELIMIT requires DARWIN_ALLOW_FEQUOTA'
0390 CALL PRINT_ERROR( msgBuf , 1)
0391 STOP 'ABNORMAL END: S/R DARWIN_CHECK'
0392 # endif
0393 #endif
0394
90de433d90 Oliv*0395
0396 #if defined(DARWIN_ALLOW_NQUOTA) || defined(DARWIN_ALLOW_PQUOTA) || defined(DARWIN_ALLOW_FEQUOTA) || defined(DARWIN_ALLOW_SIQUOTA)
0397 DO j=1,nplank
0398 IF (bactType(j) .NE. 0) THEN
0399 WRITE(msgBuf,'(2A)') 'DARWIN_CHECK: Warning: ',
0400 & 'Bacteria have fixed elemental quotas'
0401 CALL PRINT_ERROR( msgBuf , 1)
0402 ENDIF
0403 ENDDO
0404 #endif
0405
c7b6c66d45 Oliv*0406
0407 #ifdef DARWIN_ALLOW_CSTORE
0408 # ifdef DARWIN_ALLOW_NQUOTA
0409 WRITE(msgBuf,'(2A)') 'DARWIN_CHECK: ERROR: ',
0410 & 'DARWIN_ALLOW_CSTORE does not support DARWIN_ALLOW_NQUOTA'
0411 CALL PRINT_ERROR( msgBuf , 1)
0412 STOP 'ABNORMAL END: S/R DARWIN_CHECK'
0413 # endif
0414 # ifdef DARWIN_ALLOW_PQUOTA
0415 WRITE(msgBuf,'(2A)') 'DARWIN_CHECK: ERROR: ',
0416 & 'DARWIN_ALLOW_CSTORE does not support DARWIN_ALLOW_PQUOTA'
0417 CALL PRINT_ERROR( msgBuf , 1)
0418 STOP 'ABNORMAL END: S/R DARWIN_CHECK'
0419 # endif
0420 # ifdef DARWIN_ALLOW_FEQUOTA
0421 WRITE(msgBuf,'(2A)') 'DARWIN_CHECK: ERROR: ',
0422 & 'DARWIN_ALLOW_CSTORE does not support DARWIN_ALLOW_FEQUOTA'
0423 CALL PRINT_ERROR( msgBuf , 1)
0424 STOP 'ABNORMAL END: S/R DARWIN_CHECK'
0425 # endif
0426 # ifdef DARWIN_ALLOW_SIQUOTA
0427 WRITE(msgBuf,'(2A)') 'DARWIN_CHECK: ERROR: ',
0428 & 'DARWIN_ALLOW_CSTORE does not support DARWIN_ALLOW_SIQUOTA'
0429 CALL PRINT_ERROR( msgBuf , 1)
0430 STOP 'ABNORMAL END: S/R DARWIN_CHECK'
0431 # endif
0432 #endif
0433
ba0b6d5d33 Oliv*0434 #ifndef DARWIN_ALLOW_CARBON
0435 IF (darwin_disscSelect .NE. 0) THEN
0436 WRITE(msgBuf,'(2A)') 'DARWIN_CHECK: ERROR: ',
0437 & 'darwin_disscSelect.NE.0 requires DARWIN_ALLOW_CARBON'
0438 CALL PRINT_ERROR( msgBuf , 1)
0439 STOP 'ABNORMAL END: S/R DARWIN_CHECK'
0440 ENDIF
0441 #endif
0442
a092808e6b shlo*0443 errCount = 0
0444 #ifdef DARWIN_MACROMOLECULAR_GROWTH
0445 # ifndef DARWIN_ALLOW_NQUOTA
0446 WRITE(msgBuf,'(2A)') 'DARWIN_CHECK: ERROR: ',
0447 & 'DARWIN_MACROMOLECULAR_GROWTH requires DARWIN_ALLOW_NQUOTA'
0448 CALL PRINT_ERROR( msgBuf , 1)
0449 errCount = errCount + 1
0450 # endif
0451 # ifndef DARWIN_ALLOW_PQUOTA
0452 WRITE(msgBuf,'(2A)') 'DARWIN_CHECK: ERROR: ',
0453 & 'DARWIN_MACROMOLECULAR_GROWTH requires DARWIN_ALLOW_PQUOTA'
0454 CALL PRINT_ERROR( msgBuf , 1)
0455 errCount = errCount + 1
0456 # endif
0457 # ifndef DARWIN_ALLOW_FEQUOTA
0458 WRITE(msgBuf,'(2A)') 'DARWIN_CHECK: ERROR: ',
0459 & 'DARWIN_MACROMOLECULAR_GROWTH requires DARWIN_ALLOW_FEQUOTA'
0460 CALL PRINT_ERROR( msgBuf , 1)
0461 errCount = errCount + 1
0462 # endif
0463 # ifdef DARWIN_ALLOW_SIQUOTA
0464 WRITE(msgBuf,'(3A)') 'DARWIN_CHECK: ERROR: ',
0465 & 'DARWIN_MACROMOLECULAR_GROWTH does not support ',
0466 & 'DARWIN_ALLOW_SIQUOTA'
0467 CALL PRINT_ERROR( msgBuf , 1)
0468 errCount = errCount + 1
0469 # endif
0470 IF (errCount .GT. 0) THEN
0471 WRITE(msgBuf,'(A,I3,A)')
0472 & 'DARWIN_CHECK: detected', errCount,' fatal error(s)'
0473 CALL PRINT_ERROR( msgBuf, myThid )
0474 CALL ALL_PROC_DIE( 0 )
0475 STOP 'ABNORMAL END: S/R DARWIN_CHECK'
0476 ENDIF
0477 #endif
0478
4e9fe45e8e Oliv*0479
0480
0481
0482 blkLin = ' '
0483
0484 CALL PRINT_MESSAGE( blkLin, standardMessageUnit,
0485 & SQUEEZE_RIGHT , myThid )
0486 WRITE(msgBuf,'(A)') ' Main CPP flags:'
0487 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0488 & SQUEEZE_RIGHT , myThid )
0489 CALL PRINT_MESSAGE( blkLin, standardMessageUnit,
0490 & SQUEEZE_RIGHT , myThid )
0491
0492 #ifdef DARWIN_ALLOW_NQUOTA
0493 WRITE(msgBuf,'(A)')
0494 &'// DARWIN_ALLOW_NQUOTA: defined'
0495 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0496 & SQUEEZE_RIGHT , myThid)
0497 #else
0498 WRITE(msgBuf,'(A)')
0499 &'// DARWIN_ALLOW_NQUOTA: NOT defined'
0500 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0501 & SQUEEZE_RIGHT , myThid)
0502 #endif
0503
0504 #ifdef DARWIN_ALLOW_PQUOTA
0505 WRITE(msgBuf,'(A)')
0506 &'// DARWIN_ALLOW_PQUOTA: defined'
0507 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0508 & SQUEEZE_RIGHT , myThid)
0509 #else
0510 WRITE(msgBuf,'(A)')
0511 &'// DARWIN_ALLOW_PQUOTA: NOT defined'
0512 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0513 & SQUEEZE_RIGHT , myThid)
0514 #endif
0515
0516 #ifdef DARWIN_ALLOW_FEQUOTA
0517 WRITE(msgBuf,'(A)')
0518 &'// DARWIN_ALLOW_FEQUOTA: defined'
0519 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0520 & SQUEEZE_RIGHT , myThid)
0521 #else
0522 WRITE(msgBuf,'(A)')
0523 &'// DARWIN_ALLOW_FEQUOTA: NOT defined'
0524 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0525 & SQUEEZE_RIGHT , myThid)
0526 #endif
0527
0528 #ifdef DARWIN_ALLOW_SIQUOTA
0529 WRITE(msgBuf,'(A)')
0530 &'// DARWIN_ALLOW_SIQUOTA: defined'
0531 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0532 & SQUEEZE_RIGHT , myThid)
0533 #else
0534 WRITE(msgBuf,'(A)')
0535 &'// DARWIN_ALLOW_SIQUOTA: NOT defined'
0536 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0537 & SQUEEZE_RIGHT , myThid)
0538 #endif
0539
0540 #ifdef DARWIN_ALLOW_CHLQUOTA
0541 WRITE(msgBuf,'(A)')
0542 &'// DARWIN_ALLOW_CHLQUOTA: defined'
0543 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0544 & SQUEEZE_RIGHT , myThid)
0545 #else
0546 WRITE(msgBuf,'(A)')
0547 &'// DARWIN_ALLOW_CHLQUOTA: NOT defined'
0548 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0549 & SQUEEZE_RIGHT , myThid)
0550 #endif
0551
0552 #ifdef DARWIN_ALLOW_CSTORE
0553 WRITE(msgBuf,'(A)')
0554 &'// DARWIN_ALLOW_CSTORE: defined'
0555 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0556 & SQUEEZE_RIGHT , myThid)
0557 #else
0558 WRITE(msgBuf,'(A)')
0559 &'// DARWIN_ALLOW_CSTORE: NOT defined'
0560 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0561 & SQUEEZE_RIGHT , myThid)
0562 #endif
0563
0564 #ifdef DARWIN_ALLOW_CSTORE_DIAGS
0565 WRITE(msgBuf,'(A)')
0566 &'// DARWIN_ALLOW_CSTORE_DIAGS: defined'
0567 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0568 & SQUEEZE_RIGHT , myThid)
0569 #else
0570 WRITE(msgBuf,'(A)')
0571 &'// DARWIN_ALLOW_CSTORE_DIAGS: NOT defined'
0572 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0573 & SQUEEZE_RIGHT , myThid)
0574 #endif
0575
0576 #ifdef DARWIN_ALLOW_CDOM
0577 WRITE(msgBuf,'(A)')
0578 &'// DARWIN_ALLOW_CDOM: defined'
0579 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0580 & SQUEEZE_RIGHT , myThid)
0581 #else
0582 WRITE(msgBuf,'(A)')
0583 &'// DARWIN_ALLOW_CDOM: NOT defined'
0584 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0585 & SQUEEZE_RIGHT , myThid)
0586 #endif
0587
0588 #ifdef DARWIN_ALLOW_CARBON
0589 WRITE(msgBuf,'(A)')
0590 &'// DARWIN_ALLOW_CARBON: defined'
0591 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0592 & SQUEEZE_RIGHT , myThid)
0593 #else
0594 WRITE(msgBuf,'(A)')
0595 &'// DARWIN_ALLOW_CARBON: NOT defined'
0596 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0597 & SQUEEZE_RIGHT , myThid)
0598 #endif
0599
0600 #ifdef DARWIN_TOTALPHSCALE
0601 WRITE(msgBuf,'(A)')
0602 &'// DARWIN_TOTALPHSCALE: defined'
0603 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0604 & SQUEEZE_RIGHT , myThid)
0605 #else
0606 WRITE(msgBuf,'(A)')
0607 &'// DARWIN_TOTALPHSCALE: NOT defined'
0608 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0609 & SQUEEZE_RIGHT , myThid)
0610 #endif
0611
0612 #ifdef DARWIN_ALLOW_DENIT
0613 WRITE(msgBuf,'(A)')
0614 &'// DARWIN_ALLOW_DENIT: defined'
0615 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0616 & SQUEEZE_RIGHT , myThid)
0617 #else
0618 WRITE(msgBuf,'(A)')
0619 &'// DARWIN_ALLOW_DENIT: NOT defined'
0620 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0621 & SQUEEZE_RIGHT , myThid)
0622 #endif
0623
0624 #ifdef DARWIN_ALLOW_EXUDE
0625 WRITE(msgBuf,'(A)')
0626 &'// DARWIN_ALLOW_EXUDE: defined'
0627 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0628 & SQUEEZE_RIGHT , myThid)
0629 #else
0630 WRITE(msgBuf,'(A)')
0631 &'// DARWIN_ALLOW_EXUDE: NOT defined'
0632 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0633 & SQUEEZE_RIGHT , myThid)
0634 #endif
0635
0636 #ifdef ALLOW_OLD_VIRTUALFLUX
0637 WRITE(msgBuf,'(A)')
0638 &'// ALLOW_OLD_VIRTUALFLUX: defined'
0639 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0640 & SQUEEZE_RIGHT , myThid)
0641 #else
0642 WRITE(msgBuf,'(A)')
0643 &'// ALLOW_OLD_VIRTUALFLUX: NOT defined'
0644 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0645 & SQUEEZE_RIGHT , myThid)
0646 #endif
0647
0648 #ifdef DARWIN_NITRATE_FELIMIT
0649 WRITE(msgBuf,'(A)')
0650 &'// DARWIN_NITRATE_FELIMIT: defined'
0651 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0652 & SQUEEZE_RIGHT , myThid)
0653 #else
0654 WRITE(msgBuf,'(A)')
0655 &'// DARWIN_NITRATE_FELIMIT: NOT defined'
0656 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0657 & SQUEEZE_RIGHT , myThid)
0658 #endif
0659
0660 #ifdef DARWIN_BOTTOM_SINK
0661 WRITE(msgBuf,'(A)')
0662 &'// DARWIN_BOTTOM_SINK: defined'
0663 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0664 & SQUEEZE_RIGHT , myThid)
0665 #else
0666 WRITE(msgBuf,'(A)')
0667 &'// DARWIN_BOTTOM_SINK: NOT defined'
0668 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0669 & SQUEEZE_RIGHT , myThid)
0670 #endif
0671
0672 #ifdef DARWIN_CDOM_UNITS_CARBON
0673 WRITE(msgBuf,'(A)')
0674 &'// DARWIN_CDOM_UNITS_CARBON: defined'
0675 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0676 & SQUEEZE_RIGHT , myThid)
0677 #else
0678 WRITE(msgBuf,'(A)')
0679 &'// DARWIN_CDOM_UNITS_CARBON: NOT defined'
0680 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0681 & SQUEEZE_RIGHT , myThid)
0682 #endif
0683
0684 #ifdef DARWIN_NUTRIENT_RUNOFF
0685 WRITE(msgBuf,'(A)')
0686 &'// DARWIN_NUTRIENT_RUNOFF: defined'
0687 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0688 & SQUEEZE_RIGHT , myThid)
0689 #else
0690 WRITE(msgBuf,'(A)')
0691 &'// DARWIN_NUTRIENT_RUNOFF: NOT defined'
0692 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0693 & SQUEEZE_RIGHT , myThid)
0694 #endif
0695
0696 #ifdef DARWIN_AVPAR
0697 WRITE(msgBuf,'(A)')
0698 &'// DARWIN_AVPAR: defined'
0699 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0700 & SQUEEZE_RIGHT , myThid)
0701 #else
0702 WRITE(msgBuf,'(A)')
0703 &'// DARWIN_AVPAR: NOT defined'
0704 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0705 & SQUEEZE_RIGHT , myThid)
0706 #endif
0707
0708 #ifdef DARWIN_ALLOW_GEIDER
0709 WRITE(msgBuf,'(A)')
0710 &'// DARWIN_ALLOW_GEIDER: defined'
0711 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0712 & SQUEEZE_RIGHT , myThid)
0713 #else
0714 WRITE(msgBuf,'(A)')
0715 &'// DARWIN_ALLOW_GEIDER: NOT defined'
0716 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0717 & SQUEEZE_RIGHT , myThid)
0718 #endif
0719
0720 #ifdef DARWIN_GEIDER_RHO_SYNTH
0721 WRITE(msgBuf,'(A)')
0722 &'// DARWIN_GEIDER_RHO_SYNTH: defined'
0723 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0724 & SQUEEZE_RIGHT , myThid)
0725 #else
0726 WRITE(msgBuf,'(A)')
0727 &'// DARWIN_GEIDER_RHO_SYNTH: NOT defined'
0728 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0729 & SQUEEZE_RIGHT , myThid)
0730 #endif
0731
0732 #ifdef DARWIN_CHL_INIT_LEGACY
0733 WRITE(msgBuf,'(A)')
0734 &'// DARWIN_CHL_INIT_LEGACY: defined'
0735 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0736 & SQUEEZE_RIGHT , myThid)
0737 #else
0738 WRITE(msgBuf,'(A)')
0739 &'// DARWIN_CHL_INIT_LEGACY: NOT defined'
0740 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0741 & SQUEEZE_RIGHT , myThid)
0742 #endif
0743
0744 #ifdef DARWIN_SCATTER_CHL
0745 WRITE(msgBuf,'(A)')
0746 &'// DARWIN_SCATTER_CHL: defined'
0747 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0748 & SQUEEZE_RIGHT , myThid)
0749 #else
0750 WRITE(msgBuf,'(A)')
0751 &'// DARWIN_SCATTER_CHL: NOT defined'
0752 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0753 & SQUEEZE_RIGHT , myThid)
0754 #endif
0755
0756 #ifdef DARWIN_DIAG_IOP
0757 WRITE(msgBuf,'(A)')
0758 &'// DARWIN_DIAG_IOP: defined'
0759 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0760 & SQUEEZE_RIGHT , myThid)
0761 #else
0762 WRITE(msgBuf,'(A)')
0763 &'// DARWIN_DIAG_IOP: NOT defined'
0764 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0765 & SQUEEZE_RIGHT , myThid)
0766 #endif
0767
0768 #ifdef DARWIN_GRAZING_SWITCH
0769 WRITE(msgBuf,'(A)')
0770 &'// DARWIN_GRAZING_SWITCH: defined'
0771 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0772 & SQUEEZE_RIGHT , myThid)
0773 #else
0774 WRITE(msgBuf,'(A)')
0775 &'// DARWIN_GRAZING_SWITCH: NOT defined'
0776 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0777 & SQUEEZE_RIGHT , myThid)
0778 #endif
0779
0780 #ifdef DARWIN_ALLOMETRIC_PALAT
0781 WRITE(msgBuf,'(A)')
0782 &'// DARWIN_ALLOMETRIC_PALAT: defined'
0783 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0784 & SQUEEZE_RIGHT , myThid)
0785 #else
0786 WRITE(msgBuf,'(A)')
0787 &'// DARWIN_ALLOMETRIC_PALAT: NOT defined'
0788 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0789 & SQUEEZE_RIGHT , myThid)
0790 #endif
0791
0792 #ifdef DARWIN_NOZOOTEMP
0793 WRITE(msgBuf,'(A)')
0794 &'// DARWIN_NOZOOTEMP: defined'
0795 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0796 & SQUEEZE_RIGHT , myThid)
0797 #else
0798 WRITE(msgBuf,'(A)')
0799 &'// DARWIN_NOZOOTEMP: NOT defined'
0800 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0801 & SQUEEZE_RIGHT , myThid)
0802 #endif
0803
0804 #ifdef DARWIN_NOTEMP
0805 WRITE(msgBuf,'(A)')
0806 &'// DARWIN_NOTEMP: defined'
0807 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0808 & SQUEEZE_RIGHT , myThid)
0809 #else
0810 WRITE(msgBuf,'(A)')
0811 &'// DARWIN_NOTEMP: NOT defined'
0812 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0813 & SQUEEZE_RIGHT , myThid)
0814 #endif
0815
0816 WRITE(msgBuf,'(A,I8)')
0817 &'// DARWIN_TEMP_VERSION: ',DARWIN_TEMP_VERSION
0818 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0819 & SQUEEZE_RIGHT , myThid)
0820
0821 #ifdef DARWIN_TEMP_RANGE
0822 WRITE(msgBuf,'(A)')
0823 &'// DARWIN_TEMP_RANGE: defined'
0824 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0825 & SQUEEZE_RIGHT , myThid)
0826 #else
0827 WRITE(msgBuf,'(A)')
0828 &'// DARWIN_TEMP_RANGE: NOT defined'
0829 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0830 & SQUEEZE_RIGHT , myThid)
0831 #endif
0832
0833 #ifdef DARWIN_MINFE
0834 WRITE(msgBuf,'(A)')
0835 &'// DARWIN_MINFE: defined'
0836 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0837 & SQUEEZE_RIGHT , myThid)
0838 #else
0839 WRITE(msgBuf,'(A)')
0840 &'// DARWIN_MINFE: NOT defined'
0841 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0842 & SQUEEZE_RIGHT , myThid)
0843 #endif
0844
0845 #ifdef DARWIN_PART_SCAV
0846 WRITE(msgBuf,'(A)')
0847 &'// DARWIN_PART_SCAV: defined'
0848 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0849 & SQUEEZE_RIGHT , myThid)
0850 #else
0851 WRITE(msgBuf,'(A)')
0852 &'// DARWIN_PART_SCAV: NOT defined'
0853 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0854 & SQUEEZE_RIGHT , myThid)
0855 #endif
0856
0857 #ifdef DARWIN_IRON_SED_SOURCE_VARIABLE
0858 WRITE(msgBuf,'(A)')
0859 &'// DARWIN_IRON_SED_SOURCE_VARIABLE: defined'
0860 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0861 & SQUEEZE_RIGHT , myThid)
0862 #else
0863 WRITE(msgBuf,'(A)')
0864 &'// DARWIN_IRON_SED_SOURCE_VARIABLE: NOT defined'
0865 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0866 & SQUEEZE_RIGHT , myThid)
0867 #endif
0868
0869 #ifdef DARWIN_IRON_SED_SOURCE_POP
0870 WRITE(msgBuf,'(A)')
0871 &'// DARWIN_IRON_SED_SOURCE_POP: defined'
0872 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0873 & SQUEEZE_RIGHT , myThid)
0874 #else
0875 WRITE(msgBuf,'(A)')
0876 &'// DARWIN_IRON_SED_SOURCE_POP: NOT defined'
0877 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0878 & SQUEEZE_RIGHT , myThid)
0879 #endif
0880
0881 #ifdef DARWIN_DIAG_PERTYPE
0882 WRITE(msgBuf,'(A)')
0883 &'// DARWIN_DIAG_PERTYPE: defined'
0884 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0885 & SQUEEZE_RIGHT , myThid)
0886 #else
0887 WRITE(msgBuf,'(A)')
0888 &'// DARWIN_DIAG_PERTYPE: NOT defined'
0889 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0890 & SQUEEZE_RIGHT , myThid)
0891 #endif
0892
0893 #ifdef DARWIN_DEBUG
0894 WRITE(msgBuf,'(A)')
0895 &'// DARWIN_DEBUG: defined'
0896 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0897 & SQUEEZE_RIGHT , myThid)
0898 #else
0899 WRITE(msgBuf,'(A)')
0900 &'// DARWIN_DEBUG: NOT defined'
0901 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0902 & SQUEEZE_RIGHT , myThid)
0903 #endif
0904
0905 #ifdef DARWIN_ALLOW_CONS
0906 WRITE(msgBuf,'(A)')
0907 &'// DARWIN_ALLOW_CONS: defined'
0908 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0909 & SQUEEZE_RIGHT , myThid)
0910 #else
0911 WRITE(msgBuf,'(A)')
0912 &'// DARWIN_ALLOW_CONS: NOT defined'
0913 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0914 & SQUEEZE_RIGHT , myThid)
0915 #endif
0916
0917 WRITE(msgBuf,'(A,I8)')
0918 &'// DARWIN_UNUSED: ',DARWIN_UNUSED
0919 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0920 & SQUEEZE_RIGHT , myThid)
0921
0922 #ifdef DARWIN_DIAG_TENDENCIES
0923 WRITE(msgBuf,'(A)')
0924 &'// DARWIN_DIAG_TENDENCIES: defined'
0925 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0926 & SQUEEZE_RIGHT , myThid)
0927 #else
0928 WRITE(msgBuf,'(A)')
0929 &'// DARWIN_DIAG_TENDENCIES: NOT defined'
0930 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0931 & SQUEEZE_RIGHT , myThid)
0932 #endif
0933
0934 #ifdef DARWIN_PART_SCAV_POP
0935 WRITE(msgBuf,'(A)')
0936 &'// DARWIN_PART_SCAV_POP: defined'
0937 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0938 & SQUEEZE_RIGHT , myThid)
0939 #else
0940 WRITE(msgBuf,'(A)')
0941 &'// DARWIN_PART_SCAV_POP: NOT defined'
0942 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0943 & SQUEEZE_RIGHT , myThid)
0944 #endif
0945
0946 #ifdef DARWIN_RANDOM_TRAITS
0947 WRITE(msgBuf,'(A)')
0948 &'// DARWIN_RANDOM_TRAITS: defined'
0949 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0950 & SQUEEZE_RIGHT , myThid)
0951
0952 # ifdef DARWIN_TWO_SPECIES_SETUP
0953 WRITE(msgBuf,'(A)')
0954 &'// DARWIN_TWO_SPECIES_SETUP: defined'
0955 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0956 & SQUEEZE_RIGHT , myThid)
0957 # else
0958 WRITE(msgBuf,'(A)')
0959 &'// DARWIN_TWO_SPECIES_SETUP: NOT defined'
0960 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0961 & SQUEEZE_RIGHT , myThid)
0962 # endif
0963
0964 # ifdef DARWIN_NINE_SPECIES_SETUP
0965 WRITE(msgBuf,'(A)')
0966 &'// DARWIN_NINE_SPECIES_SETUP: defined'
0967 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0968 & SQUEEZE_RIGHT , myThid)
0969 # else
0970 WRITE(msgBuf,'(A)')
0971 &'// DARWIN_NINE_SPECIES_SETUP: NOT defined'
0972 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0973 & SQUEEZE_RIGHT , myThid)
0974 # endif
0975
0976 # ifdef DARWIN_ALLOW_DIAZ
0977 WRITE(msgBuf,'(A)')
0978 &'// DARWIN_ALLOW_DIAZ: defined'
0979 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0980 & SQUEEZE_RIGHT , myThid)
0981 # else
0982 WRITE(msgBuf,'(A)')
0983 &'// DARWIN_ALLOW_DIAZ: NOT defined'
0984 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0985 & SQUEEZE_RIGHT , myThid)
0986 # endif
0987 #endif /* DARWIN_RANDOM_TRAITS */
0988
0989 CALL PRINT_MESSAGE( blkLin, standardMessageUnit,
0990 & SQUEEZE_RIGHT, myThid )
0991
0992
0993
0994
0995 CALL WRITE_0D_L(darwin_loadFieldsEarly,INDEX_NONE,
0996 &'darwin_loadFieldsEarly =',
0997 &' /* whether forcing fields are read during initializaton */')
0998 #ifndef ALLOW_RADTRANS
0999 CALL WRITE_0D_L(darwin_haveSurfPAR,INDEX_NONE,
1000 &'darwin_haveSurfPAR =',
1001 &' /* have (and use) PARfile or PARconst */')
1002 CALL WRITE_0D_L(darwin_useQsw,INDEX_NONE,
1003 &'darwin_useQsw =',
1004 &' /* whether to use model shortwave radiation */')
1005 #endif
1006 CALL WRITE_0D_L(darwin_useSEAICE,INDEX_NONE,
1007 &'darwin_useSEAICE =',
1008 &' /* whether to use ice area from seaice pkg */')
1009 CALL WRITE_0D_L(darwin_useEXFwind,INDEX_NONE,
1010 &'darwin_useEXFwind =',
1011 &' /* whether to use wind speed from exf package */')
2c93eb88ef Oliv*1012 #ifdef DARWIN_ALLOW_HYDROTHERMAL_VENTS
1013 CALL WRITE_0D_L(darwin_haveVentHe3,INDEX_NONE,
1014 &'darwin_haveVentHe3 =',
1015 &' /* have ventHe3file or ventHe3const */')
4e9fe45e8e Oliv*1016 CALL PRINT_MESSAGE( blkLin, standardMessageUnit,
1017 & SQUEEZE_RIGHT , myThid )
2c93eb88ef Oliv*1018 #endif
4e9fe45e8e Oliv*1019
1020
1021
1022 addBlkLn = .FALSE.
1023
1024 #ifndef ALLOW_RADTRANS
1025
1026 IF ( PARfile.NE.' ' ) THEN
1027 CALL EXF_FLD_SUMMARY( 'PAR forcing',
1028 I PARfile, PARRepCycle, PARperiod,
1029 I PARStartTime, useExfYearlyFields, addBlkLn, myThid )
1030 #ifdef USE_EXF_INTERPOLATION
1031 CALL EXF_PRINT_INTERP( 'PAR',
1032 & PAR_lon0, PAR_lon_inc, PAR_lat0, PAR_lat_inc,
1033 & PAR_nlon, PAR_nlat, PAR_interpMethod, myThid )
1034 #endif
1035 CALL PRINT_MESSAGE( blkLin, standardMessageUnit,
1036 & SQUEEZE_RIGHT , myThid )
1037 CALL WRITE_0D_RL(PAR_exfremo_intercept,INDEX_NONE,
1038 & 'PAR_exfremo_intercept =',
1039 & ' /* intercept for PAR forcing mean removal */')
1040 CALL WRITE_0D_RL(PAR_exfremo_slope,INDEX_NONE,
1041 & 'PAR_exfremo_slope =',
1042 & ' /* slope for PAR forcing trend removal */')
1043 CALL WRITE_0D_RL(darwin_inscal_PAR,INDEX_NONE,
1044 & 'darwin_inscal_PAR =',
1045 & ' /* scaling factor for PAR fields */')
1046 ELSE
1047 CALL WRITE_0D_RL(PARconst,INDEX_NONE,
1048 & 'PARconst =',
1049 & ' /* constant PAR forcing */')
1050 ENDIF
1051
1052 IF ( PARfile.NE.' ' .OR. PARconst.NE.0 _d 0 ) THEN
1053 CALL WRITE_0D_C(PARmask,-1,INDEX_NONE,
1054 & 'PARmask =',
1055 & ' /* mask for PAR forcing */')
1056 ENDIF
1057
1058 CALL PRINT_MESSAGE( blkLin, standardMessageUnit,
1059 & SQUEEZE_RIGHT , myThid )
1060 #endif
1061
1062
1063 IF ( ironfile.NE.' ' ) THEN
1064 CALL EXF_FLD_SUMMARY( 'iron forcing',
1065 I ironfile, ironRepCycle, ironperiod,
1066 I ironStartTime, useExfYearlyFields, addBlkLn, myThid )
1067 #ifdef USE_EXF_INTERPOLATION
1068 CALL EXF_PRINT_INTERP( 'iron',
1069 & iron_lon0, iron_lon_inc, iron_lat0, iron_lat_inc,
1070 & iron_nlon, iron_nlat, iron_interpMethod, myThid )
1071 #endif
1072 CALL PRINT_MESSAGE( blkLin, standardMessageUnit,
1073 & SQUEEZE_RIGHT , myThid )
1074 CALL WRITE_0D_RL(iron_exfremo_intercept,INDEX_NONE,
1075 & 'iron_exfremo_intercept =',
1076 & ' /* intercept for iron forcing mean removal */')
1077 CALL WRITE_0D_RL(iron_exfremo_slope,INDEX_NONE,
1078 & 'iron_exfremo_slope =',
1079 & ' /* slope for iron forcing trend removal */')
1080 CALL WRITE_0D_RL(darwin_inscal_iron,INDEX_NONE,
1081 & 'darwin_inscal_iron =',
1082 & ' /* scaling factor for iron fields */')
1083 ELSE
1084 CALL WRITE_0D_RL(ironconst,INDEX_NONE,
1085 & 'ironconst =',
1086 & ' /* constant iron forcing */')
1087 ENDIF
1088
1089 IF ( ironfile.NE.' ' .OR. ironconst.NE.0 _d 0 ) THEN
1090 CALL WRITE_0D_C(ironmask,-1,INDEX_NONE,
1091 & 'ironmask =',
1092 & ' /* mask for iron forcing */')
1093 ENDIF
1094
1095 CALL PRINT_MESSAGE( blkLin, standardMessageUnit,
1096 & SQUEEZE_RIGHT , myThid )
1097
1098
1099 IF ( icefile.NE.' ' ) THEN
1100 CALL EXF_FLD_SUMMARY( 'ice forcing',
1101 I icefile, iceRepCycle, iceperiod,
1102 I iceStartTime, useExfYearlyFields, addBlkLn, myThid )
1103 #ifdef USE_EXF_INTERPOLATION
1104 CALL EXF_PRINT_INTERP( 'ice',
1105 & ice_lon0, ice_lon_inc, ice_lat0, ice_lat_inc,
1106 & ice_nlon, ice_nlat, ice_interpMethod, myThid )
1107 #endif
1108 CALL PRINT_MESSAGE( blkLin, standardMessageUnit,
1109 & SQUEEZE_RIGHT , myThid )
1110 CALL WRITE_0D_RL(ice_exfremo_intercept,INDEX_NONE,
1111 & 'ice_exfremo_intercept =',
1112 & ' /* intercept for ice forcing mean removal */')
1113 CALL WRITE_0D_RL(ice_exfremo_slope,INDEX_NONE,
1114 & 'ice_exfremo_slope =',
1115 & ' /* slope for ice forcing trend removal */')
1116 CALL WRITE_0D_RL(darwin_inscal_ice,INDEX_NONE,
1117 & 'darwin_inscal_ice =',
1118 & ' /* scaling factor for ice fields */')
1119 ELSE
1120 CALL WRITE_0D_RL(iceconst,INDEX_NONE,
1121 & 'iceconst =',
1122 & ' /* constant ice forcing */')
1123 ENDIF
1124
1125 IF ( icefile.NE.' ' .OR. iceconst.NE.0 _d 0 ) THEN
1126 CALL WRITE_0D_C(icemask,-1,INDEX_NONE,
1127 & 'icemask =',
1128 & ' /* mask for ice forcing */')
1129 ENDIF
1130
1131 CALL PRINT_MESSAGE( blkLin, standardMessageUnit,
1132 & SQUEEZE_RIGHT , myThid )
1133
1134
1135 IF ( windfile.NE.' ' ) THEN
1136 CALL EXF_FLD_SUMMARY( 'wind forcing',
1137 I windfile, windRepCycle, windperiod,
1138 I windStartTime, useExfYearlyFields, addBlkLn, myThid )
1139 #ifdef USE_EXF_INTERPOLATION
1140 CALL EXF_PRINT_INTERP( 'wind',
1141 & wind_lon0, wind_lon_inc, wind_lat0, wind_lat_inc,
1142 & wind_nlon, wind_nlat, wind_interpMethod, myThid )
1143 #endif
1144 CALL PRINT_MESSAGE( blkLin, standardMessageUnit,
1145 & SQUEEZE_RIGHT , myThid )
1146 CALL WRITE_0D_RL(wind_exfremo_intercept,INDEX_NONE,
1147 & 'wind_exfremo_intercept =',
1148 & ' /* intercept for wind forcing mean removal */')
1149 CALL WRITE_0D_RL(wind_exfremo_slope,INDEX_NONE,
1150 & 'wind_exfremo_slope =',
1151 & ' /* slope for wind forcing trend removal */')
1152 CALL WRITE_0D_RL(darwin_inscal_wind,INDEX_NONE,
1153 & 'darwin_inscal_wind =',
1154 & ' /* scaling factor for wind fields */')
1155 ELSE
1156 CALL WRITE_0D_RL(windconst,INDEX_NONE,
1157 & 'windconst =',
1158 & ' /* constant wind forcing */')
1159 ENDIF
1160
1161 IF ( windfile.NE.' ' .OR. windconst.NE.0 _d 0 ) THEN
1162 CALL WRITE_0D_C(windmask,-1,INDEX_NONE,
1163 & 'windmask =',
1164 & ' /* mask for wind forcing */')
1165 ENDIF
1166
1167 CALL PRINT_MESSAGE( blkLin, standardMessageUnit,
1168 & SQUEEZE_RIGHT , myThid )
1169
1170
1171 IF ( pCO2file.NE.' ' ) THEN
1172 CALL EXF_FLD_SUMMARY( 'pCO2 forcing',
1173 I pCO2file, pCO2RepCycle, pCO2period,
1174 I pCO2StartTime, useExfYearlyFields, addBlkLn, myThid )
1175 #ifdef USE_EXF_INTERPOLATION
1176 CALL EXF_PRINT_INTERP( 'pCO2',
1177 & pCO2_lon0, pCO2_lon_inc, pCO2_lat0, pCO2_lat_inc,
1178 & pCO2_nlon, pCO2_nlat, pCO2_interpMethod, myThid )
1179 #endif
1180 CALL PRINT_MESSAGE( blkLin, standardMessageUnit,
1181 & SQUEEZE_RIGHT , myThid )
1182 CALL WRITE_0D_RL(pCO2_exfremo_intercept,INDEX_NONE,
1183 & 'pCO2_exfremo_intercept =',
1184 & ' /* intercept for pCO2 forcing mean removal */')
1185 CALL WRITE_0D_RL(pCO2_exfremo_slope,INDEX_NONE,
1186 & 'pCO2_exfremo_slope =',
1187 & ' /* slope for pCO2 forcing trend removal */')
1188 CALL WRITE_0D_RL(darwin_inscal_pCO2,INDEX_NONE,
1189 & 'darwin_inscal_pCO2 =',
1190 & ' /* scaling factor for pCO2 fields */')
1191 ELSE
1192 CALL WRITE_0D_RL(pCO2const,INDEX_NONE,
1193 & 'pCO2const =',
1194 & ' /* constant pCO2 forcing */')
1195 ENDIF
1196
1197 IF ( pCO2file.NE.' ' .OR. pCO2const.NE.0 _d 0 ) THEN
1198 CALL WRITE_0D_C(pCO2mask,-1,INDEX_NONE,
1199 & 'pCO2mask =',
1200 & ' /* mask for pCO2 forcing */')
1201 ENDIF
1202
1203 CALL PRINT_MESSAGE( blkLin, standardMessageUnit,
1204 & SQUEEZE_RIGHT , myThid )
1205
2c93eb88ef Oliv*1206
1207 #ifdef DARWIN_ALLOW_HYDROTHERMAL_VENTS
1208 IF (darwin_haveVentHe3) THEN
1209 CALL EXF_FLD_SUMMARY( 'ventHe3 forcing',
1210 I ventHe3file, ventHe3RepCycle, ventHe3period,
1211 I ventHe3StartTime, useExfYearlyFields, addBlkLn, myThid )
1212 #ifdef USE_EXF_INTERPOLATION
1213 CALL EXF_PRINT_INTERP( 'ventHe3',
1214 & ventHe3_lon0, ventHe3_lon_inc, ventHe3_lat0, ventHe3_lat
1215 &_inc,
1216 & ventHe3_nlon, ventHe3_nlat, ventHe3_interpMethod, myThid )
1217 #endif
1218 CALL PRINT_MESSAGE( blkLin, standardMessageUnit,
1219 & SQUEEZE_RIGHT , myThid )
1220 CALL WRITE_0D_RL(ventHe3_exfremo_intercept,INDEX_NONE,
1221 & 'ventHe3_exfremo_intercept =',
1222 & ' /* intercept for ventHe3 forcing mean removal */')
1223 CALL WRITE_0D_RL(ventHe3_exfremo_slope,INDEX_NONE,
1224 & 'ventHe3_exfremo_slope =',
1225 & ' /* slope for ventHe3 forcing trend removal */')
1226 CALL WRITE_0D_RL(darwin_inscal_ventHe3,INDEX_NONE,
1227 & 'darwin_inscal_ventHe3 =',
1228 & ' /* scaling factor for ventHe3 fields */')
1229 ELSE
1230 CALL WRITE_0D_RL(ventHe3const,INDEX_NONE,
1231 & 'ventHe3const =',
1232 & ' /* constant ventHe3 forcing */')
1233 ENDIF
1234
1235 IF ( ventHe3file.NE.' ' .OR. ventHe3const.NE.0 _d 0 ) THEN
1236 CALL WRITE_0D_C(ventHe3mask,-1,INDEX_NONE,
1237 & 'ventHe3mask =',
1238 & ' /* mask for ventHe3 forcing */')
1239 ENDIF
1240
1241 CALL PRINT_MESSAGE( blkLin, standardMessageUnit,
1242 & SQUEEZE_RIGHT , myThid )
1243 #endif
1244
4e9fe45e8e Oliv*1245
1246 IF ( DOCrunofffile.NE.' ' ) THEN
1247 CALL EXF_FLD_SUMMARY( 'DOCrunoff forcing',
1248 I DOCrunofffile, DOCrunoffRepCycle, DOCrunoffperiod,
1249 I DOCrunoffStartTime, useExfYearlyFields, addBlkLn, myThid )
1250 #ifdef USE_EXF_INTERPOLATION
1251 CALL EXF_PRINT_INTERP( 'DOCrunoff',
1252 & DOCrunoff_lon0, DOCrunoff_lon_inc, DOCrunoff_lat0, DOCrunoff_lat
1253 &_inc,
1254 & DOCrunoff_nlon, DOCrunoff_nlat, DOCrunoff_interpMethod, myThid )
1255 #endif
1256 CALL PRINT_MESSAGE( blkLin, standardMessageUnit,
1257 & SQUEEZE_RIGHT , myThid )
1258 CALL WRITE_0D_RL(DOCrunoff_exfremo_intercept,INDEX_NONE,
1259 & 'DOCrunoff_exfremo_intercept =',
1260 & ' /* intercept for DOCrunoff forcing mean removal */')
1261 CALL WRITE_0D_RL(DOCrunoff_exfremo_slope,INDEX_NONE,
1262 & 'DOCrunoff_exfremo_slope =',
1263 & ' /* slope for DOCrunoff forcing trend removal */')
1264 CALL WRITE_0D_RL(darwin_inscal_DOCrunoff,INDEX_NONE,
1265 & 'darwin_inscal_DOCrunoff =',
1266 & ' /* scaling factor for DOCrunoff fields */')
1267 ELSE
1268 CALL WRITE_0D_RL(DOCrunoffconst,INDEX_NONE,
1269 & 'DOCrunoffconst =',
1270 & ' /* constant DOCrunoff forcing */')
1271 ENDIF
1272
1273 IF ( DOCrunofffile.NE.' ' .OR. DOCrunoffconst.NE.0 _d 0 ) THEN
1274 CALL WRITE_0D_C(DOCrunoffmask,-1,INDEX_NONE,
1275 & 'DOCrunoffmask =',
1276 & ' /* mask for DOCrunoff forcing */')
1277 ENDIF
1278
1279 CALL PRINT_MESSAGE( blkLin, standardMessageUnit,
1280 & SQUEEZE_RIGHT , myThid )
1281
1282
1283 IF ( DONrunofffile.NE.' ' ) THEN
1284 CALL EXF_FLD_SUMMARY( 'DONrunoff forcing',
1285 I DONrunofffile, DONrunoffRepCycle, DONrunoffperiod,
1286 I DONrunoffStartTime, useExfYearlyFields, addBlkLn, myThid )
1287 #ifdef USE_EXF_INTERPOLATION
1288 CALL EXF_PRINT_INTERP( 'DONrunoff',
1289 & DONrunoff_lon0, DONrunoff_lon_inc, DONrunoff_lat0, DONrunoff_lat
1290 &_inc,
1291 & DONrunoff_nlon, DONrunoff_nlat, DONrunoff_interpMethod, myThid )
1292 #endif
1293 CALL PRINT_MESSAGE( blkLin, standardMessageUnit,
1294 & SQUEEZE_RIGHT , myThid )
1295 CALL WRITE_0D_RL(DONrunoff_exfremo_intercept,INDEX_NONE,
1296 & 'DONrunoff_exfremo_intercept =',
1297 & ' /* intercept for DONrunoff forcing mean removal */')
1298 CALL WRITE_0D_RL(DONrunoff_exfremo_slope,INDEX_NONE,
1299 & 'DONrunoff_exfremo_slope =',
1300 & ' /* slope for DONrunoff forcing trend removal */')
1301 CALL WRITE_0D_RL(darwin_inscal_DONrunoff,INDEX_NONE,
1302 & 'darwin_inscal_DONrunoff =',
1303 & ' /* scaling factor for DONrunoff fields */')
1304 ELSE
1305 CALL WRITE_0D_RL(DONrunoffconst,INDEX_NONE,
1306 & 'DONrunoffconst =',
1307 & ' /* constant DONrunoff forcing */')
1308 ENDIF
1309
1310 IF ( DONrunofffile.NE.' ' .OR. DONrunoffconst.NE.0 _d 0 ) THEN
1311 CALL WRITE_0D_C(DONrunoffmask,-1,INDEX_NONE,
1312 & 'DONrunoffmask =',
1313 & ' /* mask for DONrunoff forcing */')
1314 ENDIF
1315
1316 CALL PRINT_MESSAGE( blkLin, standardMessageUnit,
1317 & SQUEEZE_RIGHT , myThid )
1318
1319
1320 IF ( DOPrunofffile.NE.' ' ) THEN
1321 CALL EXF_FLD_SUMMARY( 'DOPrunoff forcing',
1322 I DOPrunofffile, DOPrunoffRepCycle, DOPrunoffperiod,
1323 I DOPrunoffStartTime, useExfYearlyFields, addBlkLn, myThid )
1324 #ifdef USE_EXF_INTERPOLATION
1325 CALL EXF_PRINT_INTERP( 'DOPrunoff',
1326 & DOPrunoff_lon0, DOPrunoff_lon_inc, DOPrunoff_lat0, DOPrunoff_lat
1327 &_inc,
1328 & DOPrunoff_nlon, DOPrunoff_nlat, DOPrunoff_interpMethod, myThid )
1329 #endif
1330 CALL PRINT_MESSAGE( blkLin, standardMessageUnit,
1331 & SQUEEZE_RIGHT , myThid )
1332 CALL WRITE_0D_RL(DOPrunoff_exfremo_intercept,INDEX_NONE,
1333 & 'DOPrunoff_exfremo_intercept =',
1334 & ' /* intercept for DOPrunoff forcing mean removal */')
1335 CALL WRITE_0D_RL(DOPrunoff_exfremo_slope,INDEX_NONE,
1336 & 'DOPrunoff_exfremo_slope =',
1337 & ' /* slope for DOPrunoff forcing trend removal */')
1338 CALL WRITE_0D_RL(darwin_inscal_DOPrunoff,INDEX_NONE,
1339 & 'darwin_inscal_DOPrunoff =',
1340 & ' /* scaling factor for DOPrunoff fields */')
1341 ELSE
1342 CALL WRITE_0D_RL(DOPrunoffconst,INDEX_NONE,
1343 & 'DOPrunoffconst =',
1344 & ' /* constant DOPrunoff forcing */')
1345 ENDIF
1346
1347 IF ( DOPrunofffile.NE.' ' .OR. DOPrunoffconst.NE.0 _d 0 ) THEN
1348 CALL WRITE_0D_C(DOPrunoffmask,-1,INDEX_NONE,
1349 & 'DOPrunoffmask =',
1350 & ' /* mask for DOPrunoff forcing */')
1351 ENDIF
1352
1353 CALL PRINT_MESSAGE( blkLin, standardMessageUnit,
1354 & SQUEEZE_RIGHT , myThid )
1355
1356
1357 IF ( DINrunofffile.NE.' ' ) THEN
1358 CALL EXF_FLD_SUMMARY( 'DINrunoff forcing',
1359 I DINrunofffile, DINrunoffRepCycle, DINrunoffperiod,
1360 I DINrunoffStartTime, useExfYearlyFields, addBlkLn, myThid )
1361 #ifdef USE_EXF_INTERPOLATION
1362 CALL EXF_PRINT_INTERP( 'DINrunoff',
1363 & DINrunoff_lon0, DINrunoff_lon_inc, DINrunoff_lat0, DINrunoff_lat
1364 &_inc,
1365 & DINrunoff_nlon, DINrunoff_nlat, DINrunoff_interpMethod, myThid )
1366 #endif
1367 CALL PRINT_MESSAGE( blkLin, standardMessageUnit,
1368 & SQUEEZE_RIGHT , myThid )
1369 CALL WRITE_0D_RL(DINrunoff_exfremo_intercept,INDEX_NONE,
1370 & 'DINrunoff_exfremo_intercept =',
1371 & ' /* intercept for DINrunoff forcing mean removal */')
1372 CALL WRITE_0D_RL(DINrunoff_exfremo_slope,INDEX_NONE,
1373 & 'DINrunoff_exfremo_slope =',
1374 & ' /* slope for DINrunoff forcing trend removal */')
1375 CALL WRITE_0D_RL(darwin_inscal_DINrunoff,INDEX_NONE,
1376 & 'darwin_inscal_DINrunoff =',
1377 & ' /* scaling factor for DINrunoff fields */')
1378 ELSE
1379 CALL WRITE_0D_RL(DINrunoffconst,INDEX_NONE,
1380 & 'DINrunoffconst =',
1381 & ' /* constant DINrunoff forcing */')
1382 ENDIF
1383
1384 IF ( DINrunofffile.NE.' ' .OR. DINrunoffconst.NE.0 _d 0 ) THEN
1385 CALL WRITE_0D_C(DINrunoffmask,-1,INDEX_NONE,
1386 & 'DINrunoffmask =',
1387 & ' /* mask for DINrunoff forcing */')
1388 ENDIF
1389
1390 CALL PRINT_MESSAGE( blkLin, standardMessageUnit,
1391 & SQUEEZE_RIGHT , myThid )
1392
11d365acff Oliv*1393
1394 IF ( NO3runofffile.NE.' ' ) THEN
1395 CALL EXF_FLD_SUMMARY( 'NO3runoff forcing',
1396 I NO3runofffile, NO3runoffRepCycle, NO3runoffperiod,
1397 I NO3runoffStartTime, useExfYearlyFields, addBlkLn, myThid )
1398 #ifdef USE_EXF_INTERPOLATION
1399 CALL EXF_PRINT_INTERP( 'NO3runoff',
1400 & NO3runoff_lon0, NO3runoff_lon_inc, NO3runoff_lat0, NO3runoff_lat
1401 &_inc,
1402 & NO3runoff_nlon, NO3runoff_nlat, NO3runoff_interpMethod, myThid )
1403 #endif
1404 CALL PRINT_MESSAGE( blkLin, standardMessageUnit,
1405 & SQUEEZE_RIGHT , myThid )
1406 CALL WRITE_0D_RL(NO3runoff_exfremo_intercept,INDEX_NONE,
1407 & 'NO3runoff_exfremo_intercept =',
1408 & ' /* intercept for NO3runoff forcing mean removal */')
1409 CALL WRITE_0D_RL(NO3runoff_exfremo_slope,INDEX_NONE,
1410 & 'NO3runoff_exfremo_slope =',
1411 & ' /* slope for NO3runoff forcing trend removal */')
1412 CALL WRITE_0D_RL(darwin_inscal_NO3runoff,INDEX_NONE,
1413 & 'darwin_inscal_NO3runoff =',
1414 & ' /* scaling factor for NO3runoff fields */')
1415 ELSE
1416 CALL WRITE_0D_RL(NO3runoffconst,INDEX_NONE,
1417 & 'NO3runoffconst =',
1418 & ' /* constant NO3runoff forcing */')
1419 ENDIF
1420
1421 IF ( NO3runofffile.NE.' ' .OR. NO3runoffconst.NE.0 _d 0 ) THEN
1422 CALL WRITE_0D_C(NO3runoffmask,-1,INDEX_NONE,
1423 & 'NO3runoffmask =',
1424 & ' /* mask for NO3runoff forcing */')
1425 ENDIF
1426
1427 CALL PRINT_MESSAGE( blkLin, standardMessageUnit,
1428 & SQUEEZE_RIGHT , myThid )
1429
1430
1431 IF ( NO2runofffile.NE.' ' ) THEN
1432 CALL EXF_FLD_SUMMARY( 'NO2runoff forcing',
1433 I NO2runofffile, NO2runoffRepCycle, NO2runoffperiod,
1434 I NO2runoffStartTime, useExfYearlyFields, addBlkLn, myThid )
1435 #ifdef USE_EXF_INTERPOLATION
1436 CALL EXF_PRINT_INTERP( 'NO2runoff',
1437 & NO2runoff_lon0, NO2runoff_lon_inc, NO2runoff_lat0, NO2runoff_lat
1438 &_inc,
1439 & NO2runoff_nlon, NO2runoff_nlat, NO2runoff_interpMethod, myThid )
1440 #endif
1441 CALL PRINT_MESSAGE( blkLin, standardMessageUnit,
1442 & SQUEEZE_RIGHT , myThid )
1443 CALL WRITE_0D_RL(NO2runoff_exfremo_intercept,INDEX_NONE,
1444 & 'NO2runoff_exfremo_intercept =',
1445 & ' /* intercept for NO2runoff forcing mean removal */')
1446 CALL WRITE_0D_RL(NO2runoff_exfremo_slope,INDEX_NONE,
1447 & 'NO2runoff_exfremo_slope =',
1448 & ' /* slope for NO2runoff forcing trend removal */')
1449 CALL WRITE_0D_RL(darwin_inscal_NO2runoff,INDEX_NONE,
1450 & 'darwin_inscal_NO2runoff =',
1451 & ' /* scaling factor for NO2runoff fields */')
1452 ELSE
1453 CALL WRITE_0D_RL(NO2runoffconst,INDEX_NONE,
1454 & 'NO2runoffconst =',
1455 & ' /* constant NO2runoff forcing */')
1456 ENDIF
1457
1458 IF ( NO2runofffile.NE.' ' .OR. NO2runoffconst.NE.0 _d 0 ) THEN
1459 CALL WRITE_0D_C(NO2runoffmask,-1,INDEX_NONE,
1460 & 'NO2runoffmask =',
1461 & ' /* mask for NO2runoff forcing */')
1462 ENDIF
1463
1464 CALL PRINT_MESSAGE( blkLin, standardMessageUnit,
1465 & SQUEEZE_RIGHT , myThid )
1466
1467
1468 IF ( NH4runofffile.NE.' ' ) THEN
1469 CALL EXF_FLD_SUMMARY( 'NH4runoff forcing',
1470 I NH4runofffile, NH4runoffRepCycle, NH4runoffperiod,
1471 I NH4runoffStartTime, useExfYearlyFields, addBlkLn, myThid )
1472 #ifdef USE_EXF_INTERPOLATION
1473 CALL EXF_PRINT_INTERP( 'NH4runoff',
1474 & NH4runoff_lon0, NH4runoff_lon_inc, NH4runoff_lat0, NH4runoff_lat
1475 &_inc,
1476 & NH4runoff_nlon, NH4runoff_nlat, NH4runoff_interpMethod, myThid )
1477 #endif
1478 CALL PRINT_MESSAGE( blkLin, standardMessageUnit,
1479 & SQUEEZE_RIGHT , myThid )
1480 CALL WRITE_0D_RL(NH4runoff_exfremo_intercept,INDEX_NONE,
1481 & 'NH4runoff_exfremo_intercept =',
1482 & ' /* intercept for NH4runoff forcing mean removal */')
1483 CALL WRITE_0D_RL(NH4runoff_exfremo_slope,INDEX_NONE,
1484 & 'NH4runoff_exfremo_slope =',
1485 & ' /* slope for NH4runoff forcing trend removal */')
1486 CALL WRITE_0D_RL(darwin_inscal_NH4runoff,INDEX_NONE,
1487 & 'darwin_inscal_NH4runoff =',
1488 & ' /* scaling factor for NH4runoff fields */')
1489 ELSE
1490 CALL WRITE_0D_RL(NH4runoffconst,INDEX_NONE,
1491 & 'NH4runoffconst =',
1492 & ' /* constant NH4runoff forcing */')
1493 ENDIF
1494
1495 IF ( NH4runofffile.NE.' ' .OR. NH4runoffconst.NE.0 _d 0 ) THEN
1496 CALL WRITE_0D_C(NH4runoffmask,-1,INDEX_NONE,
1497 & 'NH4runoffmask =',
1498 & ' /* mask for NH4runoff forcing */')
1499 ENDIF
1500
1501 CALL PRINT_MESSAGE( blkLin, standardMessageUnit,
1502 & SQUEEZE_RIGHT , myThid )
1503
4e9fe45e8e Oliv*1504
1505 IF ( IPrunofffile.NE.' ' ) THEN
1506 CALL EXF_FLD_SUMMARY( 'IPrunoff forcing',
1507 I IPrunofffile, IPrunoffRepCycle, IPrunoffperiod,
1508 I IPrunoffStartTime, useExfYearlyFields, addBlkLn, myThid )
1509 #ifdef USE_EXF_INTERPOLATION
1510 CALL EXF_PRINT_INTERP( 'IPrunoff',
1511 & IPrunoff_lon0, IPrunoff_lon_inc, IPrunoff_lat0, IPrunoff_lat_inc
1512 &,
1513 & IPrunoff_nlon, IPrunoff_nlat, IPrunoff_interpMethod, myThid )
1514 #endif
1515 CALL PRINT_MESSAGE( blkLin, standardMessageUnit,
1516 & SQUEEZE_RIGHT , myThid )
1517 CALL WRITE_0D_RL(IPrunoff_exfremo_intercept,INDEX_NONE,
1518 & 'IPrunoff_exfremo_intercept =',
1519 & ' /* intercept for IPrunoff forcing mean removal */')
1520 CALL WRITE_0D_RL(IPrunoff_exfremo_slope,INDEX_NONE,
1521 & 'IPrunoff_exfremo_slope =',
1522 & ' /* slope for IPrunoff forcing trend removal */')
1523 CALL WRITE_0D_RL(darwin_inscal_IPrunoff,INDEX_NONE,
1524 & 'darwin_inscal_IPrunoff =',
1525 & ' /* scaling factor for IPrunoff fields */')
1526 ELSE
1527 CALL WRITE_0D_RL(IPrunoffconst,INDEX_NONE,
1528 & 'IPrunoffconst =',
1529 & ' /* constant IPrunoff forcing */')
1530 ENDIF
1531
1532 IF ( IPrunofffile.NE.' ' .OR. IPrunoffconst.NE.0 _d 0 ) THEN
1533 CALL WRITE_0D_C(IPrunoffmask,-1,INDEX_NONE,
1534 & 'IPrunoffmask =',
1535 & ' /* mask for IPrunoff forcing */')
1536 ENDIF
1537
1538 CALL PRINT_MESSAGE( blkLin, standardMessageUnit,
1539 & SQUEEZE_RIGHT , myThid )
1540
1541
1542 IF ( DSirunofffile.NE.' ' ) THEN
1543 CALL EXF_FLD_SUMMARY( 'DSirunoff forcing',
1544 I DSirunofffile, DSirunoffRepCycle, DSirunoffperiod,
1545 I DSirunoffStartTime, useExfYearlyFields, addBlkLn, myThid )
1546 #ifdef USE_EXF_INTERPOLATION
1547 CALL EXF_PRINT_INTERP( 'DSirunoff',
1548 & DSirunoff_lon0, DSirunoff_lon_inc, DSirunoff_lat0, DSirunoff_lat
1549 &_inc,
1550 & DSirunoff_nlon, DSirunoff_nlat, DSirunoff_interpMethod, myThid )
1551 #endif
1552 CALL PRINT_MESSAGE( blkLin, standardMessageUnit,
1553 & SQUEEZE_RIGHT , myThid )
1554 CALL WRITE_0D_RL(DSirunoff_exfremo_intercept,INDEX_NONE,
1555 & 'DSirunoff_exfremo_intercept =',
1556 & ' /* intercept for DSirunoff forcing mean removal */')
1557 CALL WRITE_0D_RL(DSirunoff_exfremo_slope,INDEX_NONE,
1558 & 'DSirunoff_exfremo_slope =',
1559 & ' /* slope for DSirunoff forcing trend removal */')
1560 CALL WRITE_0D_RL(darwin_inscal_DSirunoff,INDEX_NONE,
1561 & 'darwin_inscal_DSirunoff =',
1562 & ' /* scaling factor for DSirunoff fields */')
1563 ELSE
1564 CALL WRITE_0D_RL(DSirunoffconst,INDEX_NONE,
1565 & 'DSirunoffconst =',
1566 & ' /* constant DSirunoff forcing */')
1567 ENDIF
1568
1569 IF ( DSirunofffile.NE.' ' .OR. DSirunoffconst.NE.0 _d 0 ) THEN
1570 CALL WRITE_0D_C(DSirunoffmask,-1,INDEX_NONE,
1571 & 'DSirunoffmask =',
1572 & ' /* mask for DSirunoff forcing */')
1573 ENDIF
1574
1575 CALL PRINT_MESSAGE( blkLin, standardMessageUnit,
1576 & SQUEEZE_RIGHT , myThid )
1577
1578
1579 IF ( POCrunofffile.NE.' ' ) THEN
1580 CALL EXF_FLD_SUMMARY( 'POCrunoff forcing',
1581 I POCrunofffile, POCrunoffRepCycle, POCrunoffperiod,
1582 I POCrunoffStartTime, useExfYearlyFields, addBlkLn, myThid )
1583 #ifdef USE_EXF_INTERPOLATION
1584 CALL EXF_PRINT_INTERP( 'POCrunoff',
1585 & POCrunoff_lon0, POCrunoff_lon_inc, POCrunoff_lat0, POCrunoff_lat
1586 &_inc,
1587 & POCrunoff_nlon, POCrunoff_nlat, POCrunoff_interpMethod, myThid )
1588 #endif
1589 CALL PRINT_MESSAGE( blkLin, standardMessageUnit,
1590 & SQUEEZE_RIGHT , myThid )
1591 CALL WRITE_0D_RL(POCrunoff_exfremo_intercept,INDEX_NONE,
1592 & 'POCrunoff_exfremo_intercept =',
1593 & ' /* intercept for POCrunoff forcing mean removal */')
1594 CALL WRITE_0D_RL(POCrunoff_exfremo_slope,INDEX_NONE,
1595 & 'POCrunoff_exfremo_slope =',
1596 & ' /* slope for POCrunoff forcing trend removal */')
1597 CALL WRITE_0D_RL(darwin_inscal_POCrunoff,INDEX_NONE,
1598 & 'darwin_inscal_POCrunoff =',
1599 & ' /* scaling factor for POCrunoff fields */')
1600 ELSE
1601 CALL WRITE_0D_RL(POCrunoffconst,INDEX_NONE,
1602 & 'POCrunoffconst =',
1603 & ' /* constant POCrunoff forcing */')
1604 ENDIF
1605
1606 IF ( POCrunofffile.NE.' ' .OR. POCrunoffconst.NE.0 _d 0 ) THEN
1607 CALL WRITE_0D_C(POCrunoffmask,-1,INDEX_NONE,
1608 & 'POCrunoffmask =',
1609 & ' /* mask for POCrunoff forcing */')
1610 ENDIF
1611
1612 CALL PRINT_MESSAGE( blkLin, standardMessageUnit,
1613 & SQUEEZE_RIGHT , myThid )
1614
1615
1616 IF ( POPrunofffile.NE.' ' ) THEN
1617 CALL EXF_FLD_SUMMARY( 'POPrunoff forcing',
1618 I POPrunofffile, POPrunoffRepCycle, POPrunoffperiod,
1619 I POPrunoffStartTime, useExfYearlyFields, addBlkLn, myThid )
1620 #ifdef USE_EXF_INTERPOLATION
1621 CALL EXF_PRINT_INTERP( 'POPrunoff',
1622 & POPrunoff_lon0, POPrunoff_lon_inc, POPrunoff_lat0, POPrunoff_lat
1623 &_inc,
1624 & POPrunoff_nlon, POPrunoff_nlat, POPrunoff_interpMethod, myThid )
1625 #endif
1626 CALL PRINT_MESSAGE( blkLin, standardMessageUnit,
1627 & SQUEEZE_RIGHT , myThid )
1628 CALL WRITE_0D_RL(POPrunoff_exfremo_intercept,INDEX_NONE,
1629 & 'POPrunoff_exfremo_intercept =',
1630 & ' /* intercept for POPrunoff forcing mean removal */')
1631 CALL WRITE_0D_RL(POPrunoff_exfremo_slope,INDEX_NONE,
1632 & 'POPrunoff_exfremo_slope =',
1633 & ' /* slope for POPrunoff forcing trend removal */')
1634 CALL WRITE_0D_RL(darwin_inscal_POPrunoff,INDEX_NONE,
1635 & 'darwin_inscal_POPrunoff =',
1636 & ' /* scaling factor for POPrunoff fields */')
1637 ELSE
1638 CALL WRITE_0D_RL(POPrunoffconst,INDEX_NONE,
1639 & 'POPrunoffconst =',
1640 & ' /* constant POPrunoff forcing */')
1641 ENDIF
1642
1643 IF ( POPrunofffile.NE.' ' .OR. POPrunoffconst.NE.0 _d 0 ) THEN
1644 CALL WRITE_0D_C(POPrunoffmask,-1,INDEX_NONE,
1645 & 'POPrunoffmask =',
1646 & ' /* mask for POPrunoff forcing */')
1647 ENDIF
1648
1649 CALL PRINT_MESSAGE( blkLin, standardMessageUnit,
1650 & SQUEEZE_RIGHT , myThid )
1651
1652
1653 IF ( PONrunofffile.NE.' ' ) THEN
1654 CALL EXF_FLD_SUMMARY( 'PONrunoff forcing',
1655 I PONrunofffile, PONrunoffRepCycle, PONrunoffperiod,
1656 I PONrunoffStartTime, useExfYearlyFields, addBlkLn, myThid )
1657 #ifdef USE_EXF_INTERPOLATION
1658 CALL EXF_PRINT_INTERP( 'PONrunoff',
1659 & PONrunoff_lon0, PONrunoff_lon_inc, PONrunoff_lat0, PONrunoff_lat
1660 &_inc,
1661 & PONrunoff_nlon, PONrunoff_nlat, PONrunoff_interpMethod, myThid )
1662 #endif
1663 CALL PRINT_MESSAGE( blkLin, standardMessageUnit,
1664 & SQUEEZE_RIGHT , myThid )
1665 CALL WRITE_0D_RL(PONrunoff_exfremo_intercept,INDEX_NONE,
1666 & 'PONrunoff_exfremo_intercept =',
1667 & ' /* intercept for PONrunoff forcing mean removal */')
1668 CALL WRITE_0D_RL(PONrunoff_exfremo_slope,INDEX_NONE,
1669 & 'PONrunoff_exfremo_slope =',
1670 & ' /* slope for PONrunoff forcing trend removal */')
1671 CALL WRITE_0D_RL(darwin_inscal_PONrunoff,INDEX_NONE,
1672 & 'darwin_inscal_PONrunoff =',
1673 & ' /* scaling factor for PONrunoff fields */')
1674 ELSE
1675 CALL WRITE_0D_RL(PONrunoffconst,INDEX_NONE,
1676 & 'PONrunoffconst =',
1677 & ' /* constant PONrunoff forcing */')
1678 ENDIF
1679
1680 IF ( PONrunofffile.NE.' ' .OR. PONrunoffconst.NE.0 _d 0 ) THEN
1681 CALL WRITE_0D_C(PONrunoffmask,-1,INDEX_NONE,
1682 & 'PONrunoffmask =',
1683 & ' /* mask for PONrunoff forcing */')
1684 ENDIF
1685
1686 CALL PRINT_MESSAGE( blkLin, standardMessageUnit,
1687 & SQUEEZE_RIGHT , myThid )
1688
1689
1690 IF ( DICrunofffile.NE.' ' ) THEN
1691 CALL EXF_FLD_SUMMARY( 'DICrunoff forcing',
1692 I DICrunofffile, DICrunoffRepCycle, DICrunoffperiod,
1693 I DICrunoffStartTime, useExfYearlyFields, addBlkLn, myThid )
1694 #ifdef USE_EXF_INTERPOLATION
1695 CALL EXF_PRINT_INTERP( 'DICrunoff',
1696 & DICrunoff_lon0, DICrunoff_lon_inc, DICrunoff_lat0, DICrunoff_lat
1697 &_inc,
1698 & DICrunoff_nlon, DICrunoff_nlat, DICrunoff_interpMethod, myThid )
1699 #endif
1700 CALL PRINT_MESSAGE( blkLin, standardMessageUnit,
1701 & SQUEEZE_RIGHT , myThid )
1702 CALL WRITE_0D_RL(DICrunoff_exfremo_intercept,INDEX_NONE,
1703 & 'DICrunoff_exfremo_intercept =',
1704 & ' /* intercept for DICrunoff forcing mean removal */')
1705 CALL WRITE_0D_RL(DICrunoff_exfremo_slope,INDEX_NONE,
1706 & 'DICrunoff_exfremo_slope =',
1707 & ' /* slope for DICrunoff forcing trend removal */')
1708 CALL WRITE_0D_RL(darwin_inscal_DICrunoff,INDEX_NONE,
1709 & 'darwin_inscal_DICrunoff =',
1710 & ' /* scaling factor for DICrunoff fields */')
1711 ELSE
1712 CALL WRITE_0D_RL(DICrunoffconst,INDEX_NONE,
1713 & 'DICrunoffconst =',
1714 & ' /* constant DICrunoff forcing */')
1715 ENDIF
1716
1717 IF ( DICrunofffile.NE.' ' .OR. DICrunoffconst.NE.0 _d 0 ) THEN
1718 CALL WRITE_0D_C(DICrunoffmask,-1,INDEX_NONE,
1719 & 'DICrunoffmask =',
1720 & ' /* mask for DICrunoff forcing */')
1721 ENDIF
1722
1723 CALL PRINT_MESSAGE( blkLin, standardMessageUnit,
1724 & SQUEEZE_RIGHT , myThid )
1725
1726
1727 CALL WRITE_0D_RL(R_ALK_DIC_runoff,INDEX_NONE,
1728 &'R_ALK_DIC_runoff =',
1729 &' /* [eq/mol C] ALK:DIC ratio in runoff */')
1730 CALL WRITE_0D_RL(R_NO3_DIN_runoff,INDEX_NONE,
1731 &'R_NO3_DIN_runoff =',
1732 &' /* [mol N/mol N] NO3 fraction of DIN in runoff */')
1733 CALL WRITE_0D_RL(R_NO2_DIN_runoff,INDEX_NONE,
1734 &'R_NO2_DIN_runoff =',
1735 &' /* [mol N/mol N] NO2 fraction of DIN in runoff */')
1736 CALL WRITE_0D_RL(R_NH4_DIN_runoff,INDEX_NONE,
1737 &'R_NH4_DIN_runoff =',
1738 &' /* [mol N/mol N] NH4 fraction of DIN in runoff */')
1739 CALL WRITE_0D_RL(R_DIP_IP_runoff,INDEX_NONE,
1740 &'R_DIP_IP_runoff =',
1741 &' /* [mol P/mol P] ratio of dissolved to total inorganic P in */'
1742 &)
1743 CALL WRITE_0D_RL(R_DFe_DIP_runoff,INDEX_NONE,
1744 &'R_DFe_DIP_runoff =',
1745 &' /* [mol Fe/mol P] Fe:P ratio for inorganic P in runoff */')
1746 CALL WRITE_0D_RL(R_DOFe_DOP_runoff,INDEX_NONE,
1747 &'R_DOFe_DOP_runoff =',
1748 &' /* [mol Fe/mol P] Fe:P ratio for dissolved organic matter in */'
1749 &)
1750 CALL WRITE_0D_RL(R_POFe_POP_runoff,INDEX_NONE,
1751 &'R_POFe_POP_runoff =',
1752 &' /* [mol Fe/mol P] Fe:P ratio for particulate organic matter */'
1753 &)
1754
1755
1756
1757
1758 CALL WRITE_0D_L(darwin_chlInitBalanced,INDEX_NONE,
1759 &'darwin_chlInitBalanced =',
1760 &' /* Initialize Chlorophyll to a balanced value following Geider *
1761 &/')
1762 CALL WRITE_0D_I(darwin_chlIter0,INDEX_NONE,
1763 &'darwin_chlIter0 =',
1764 &' /* Iteration number when to initialize Chlorophyll */')
1765 #ifdef DARWIN_ALLOW_CARBON
1766 CALL WRITE_0D_RL(Pa2Atm,INDEX_NONE,
1767 &'Pa2Atm =',
1768 &' /* Convert pressure in Pascal to atm */')
1769 CALL WRITE_0D_RL(ptr2mol,INDEX_NONE,
1770 &'ptr2mol =',
1771 &' /* convert ptracers (in mmol/m3) to mol/m3 */')
1772 CALL WRITE_0D_RL(sca1,INDEX_NONE,
1773 &'sca1 =',
1774 &' /* Schmidt no. coefficient for CO2 */')
1775 CALL WRITE_0D_RL(sca2,INDEX_NONE,
1776 &'sca2 =',
1777 &' /* Schmidt no. coefficient for CO2 */')
1778 CALL WRITE_0D_RL(sca3,INDEX_NONE,
1779 &'sca3 =',
1780 &' /* Schmidt no. coefficient for CO2 */')
1781 CALL WRITE_0D_RL(sca4,INDEX_NONE,
1782 &'sca4 =',
1783 &' /* Schmidt no. coefficient for CO2 */')
1784 CALL WRITE_0D_RL(sox1,INDEX_NONE,
1785 &'sox1 =',
1786 &' /* Schmidt no. coefficient for O2 [Keeling et al, GBC, 12, 141,'
1787 &' (1998)] */')
1788 CALL WRITE_0D_RL(sox2,INDEX_NONE,
1789 &'sox2 =',
1790 &' /* Schmidt no. coefficient for O2 [Keeling et al, GBC, 12, 141,'
1791 &' (1998)] */')
1792 CALL WRITE_0D_RL(sox3,INDEX_NONE,
1793 &'sox3 =',
1794 &' /* Schmidt no. coefficient for O2 [Keeling et al, GBC, 12, 141,'
1795 &' (1998)] */')
1796 CALL WRITE_0D_RL(sox4,INDEX_NONE,
1797 &'sox4 =',
1798 &' /* Schmidt no. coefficient for O2 [Keeling et al, GBC, 12, 141,'
1799 &' (1998)] */')
1800 CALL WRITE_0D_RL(oA0,INDEX_NONE,
1801 &'oA0 =',
1802 &' /* Coefficient for determining saturation O2 */')
1803 CALL WRITE_0D_RL(oA1,INDEX_NONE,
1804 &'oA1 =',
1805 &' /* Coefficient for determining saturation O2 */')
1806 CALL WRITE_0D_RL(oA2,INDEX_NONE,
1807 &'oA2 =',
1808 &' /* Coefficient for determining saturation O2 */')
1809 CALL WRITE_0D_RL(oA3,INDEX_NONE,
1810 &'oA3 =',
1811 &' /* Coefficient for determining saturation O2 */')
1812 CALL WRITE_0D_RL(oA4,INDEX_NONE,
1813 &'oA4 =',
1814 &' /* Coefficient for determining saturation O2 */')
1815 CALL WRITE_0D_RL(oA5,INDEX_NONE,
1816 &'oA5 =',
1817 &' /* Coefficient for determining saturation O2 */')
1818 CALL WRITE_0D_RL(oB0,INDEX_NONE,
1819 &'oB0 =',
1820 &' /* Coefficient for determining saturation O2 */')
1821 CALL WRITE_0D_RL(oB1,INDEX_NONE,
1822 &'oB1 =',
1823 &' /* Coefficient for determining saturation O2 */')
1824 CALL WRITE_0D_RL(oB2,INDEX_NONE,
1825 &'oB2 =',
1826 &' /* Coefficient for determining saturation O2 */')
1827 CALL WRITE_0D_RL(oB3,INDEX_NONE,
1828 &'oB3 =',
1829 &' /* Coefficient for determining saturation O2 */')
1830 CALL WRITE_0D_RL(oC0,INDEX_NONE,
1831 &'oC0 =',
1832 &' /* Coefficient for determining saturation O2 */')
1833 #endif
1834 CALL WRITE_0D_C(darwin_pickupSuff,-1,INDEX_NONE,
1835 &'darwin_pickupSuff =',
1836 &' /* pickup suffix for darwin; set to '' '' to disable reading at'
1837 &' PTRACERS_Iter0 */')
1838 CALL WRITE_0D_L(darwin_strict_check,INDEX_NONE,
1839 &'darwin_strict_check =',
1840 &' /* stop instead of issuing warnings */')
1841 CALL WRITE_0D_L(darwin_linFSConserve,INDEX_NONE,
1842 &'darwin_linFSConserve =',
1843 &' /* correct non-conservation due to linear free surface (globally
1844 &) */')
1845 CALL WRITE_0D_L(darwin_read_phos,INDEX_NONE,
1846 &'darwin_read_phos =',
1847 &' /* initial conditions for plankton biomass are in mmol P/m3 */')
1848 CALL WRITE_0D_I(darwin_seed,INDEX_NONE,
1849 &'darwin_seed =',
1850 &' /* seed for random number generator (for DARWIN_RANDOM_TRAITS) *
1851 &/')
1852 CALL WRITE_0D_I(iDEBUG,INDEX_NONE,
1853 &'iDEBUG =',
1854 &' /* index in x dimension for debug prints */')
1855 CALL WRITE_0D_I(jDEBUG,INDEX_NONE,
1856 &'jDEBUG =',
1857 &' /* index in y dimension for debug prints */')
1858 CALL WRITE_0D_I(kDEBUG,INDEX_NONE,
1859 &'kDEBUG =',
1860 &' /* index in z dimension for debug prints */')
1861 CALL WRITE_0D_RL(katten_w,INDEX_NONE,
1862 &'katten_w =',
1863 &' /* atten coefficient water (1/m) */')
1864 CALL WRITE_0D_RL(katten_chl,INDEX_NONE,
1865 &'katten_chl =',
1866 &' /* atten coefficient chl (m2/mg Chl) */')
1867 CALL WRITE_0D_RL(parfrac,INDEX_NONE,
1868 &'parfrac =',
1869 &' /* fraction Qsw that is PAR */')
1870 CALL WRITE_0D_RL(parconv,INDEX_NONE,
1871 &'parconv =',
1872 &' /* conversion from W/m2 to uEin/m2/s (uEin/s/W) */')
1873 CALL WRITE_0D_RL(tempnorm,INDEX_NONE,
1874 &'tempnorm =',
1875 &' /* set temperature function (was 1.0) */')
1876 CALL WRITE_0D_RL(TempAeArr,INDEX_NONE,
1877 &'TempAeArr =',
1878 &' /* slope for pseudo-Arrhenius (TEMP_VERSION 2) (K) */')
1879 CALL WRITE_0D_RL(TemprefArr,INDEX_NONE,
1880 &'TemprefArr =',
1881 &' /* reference temp for pseudo-Arrhenius (TEMP_VERSION 2) (K) */')
1882 CALL WRITE_0D_RL(TempCoeffArr,INDEX_NONE,
1883 &'TempCoeffArr =',
1884 &' /* pre-factor for pseudo-Arrhenius (TEMP_VERSION 2) */')
a092808e6b shlo*1885 CALL WRITE_0D_RL(TempAeArrMacromol,INDEX_NONE,
1886 &'TempAeArrMacromol =',
1887 &' /* temp effect on protein biosyn (MACROMOL GROWTH) (K) */')
4e9fe45e8e Oliv*1888 CALL WRITE_0D_RL(reminTempAe,INDEX_NONE,
1889 &'reminTempAe =',
1890 &' /* temperature coefficient for remineralization (TEMP_VERSION 4)
1891 & (1/K) */')
1892 CALL WRITE_0D_RL(mortTempAe,INDEX_NONE,
1893 &'mortTempAe =',
1894 &' /* temperature coefficient for linear mortality (TEMP_VERSION 4)
1895 & (1/K) */')
1896 CALL WRITE_0D_RL(mort2TempAe,INDEX_NONE,
1897 &'mort2TempAe =',
1898 &' /* temperature coefficient for quadr. mortality (TEMP_VERSION 4)
1899 & (1/K) */')
1900 CALL WRITE_0D_RL(uptakeTempAe,INDEX_NONE,
1901 &'uptakeTempAe =',
1902 &' /* temperature coefficient for uptake (TEMP_VERSION 4) (1/K) */'
1903 &)
1904 CALL WRITE_0D_RL(alpfe,INDEX_NONE,
1905 &'alpfe =',
1906 &' /* solubility of Fe dust */')
1907 CALL WRITE_0D_RL(ligand_tot,INDEX_NONE,
1908 &'ligand_tot =',
28ac947a3e Oliv*1909 &' /* total ligand concentration (mmol/m3) */')
4e9fe45e8e Oliv*1910 CALL WRITE_0D_RL(ligand_stab,INDEX_NONE,
1911 &'ligand_stab =',
28ac947a3e Oliv*1912 &' /* ligand stability rate ratio (m3/mmol) */')
4e9fe45e8e Oliv*1913 CALL WRITE_0D_RL(freefemax,INDEX_NONE,
1914 &'freefemax =',
28ac947a3e Oliv*1915 &' /* max concentration of free iron (mmol/m3) */')
66ade11a9e Oliv*1916 #ifdef DARWIN_PART_SCAV_POP
4e9fe45e8e Oliv*1917 CALL WRITE_0D_RL(scav_rat,INDEX_NONE,
1918 &'scav_rat =',
66ade11a9e Oliv*1919 &' /* rate conversion Th to iron (1/s) */')
4e9fe45e8e Oliv*1920 CALL WRITE_0D_RL(scav_inter,INDEX_NONE,
1921 &'scav_inter =',
66ade11a9e Oliv*1922 &' /* intercept of scavenging power law (L^e mg^-e) */')
4e9fe45e8e Oliv*1923 CALL WRITE_0D_RL(scav_exp,INDEX_NONE,
1924 &'scav_exp =',
66ade11a9e Oliv*1925 &' /* exponent e of scavenging power law */')
4e9fe45e8e Oliv*1926 CALL WRITE_0D_RL(scav_R_POPPOC,INDEX_NONE,
1927 &'scav_R_POPPOC =',
66ade11a9e Oliv*1928 &' /* POP:POC ratio for scavenging (mmol P / g) */')
1929 #elif defined(DARWIN_PART_SCAV)
1930 CALL WRITE_0D_RL(scav_tau,INDEX_NONE,
1931 &'scav_tau =',
1932 &' /* factor to go from Th scavenging rate to iron */')
1933 CALL WRITE_0D_RL(scav_inter,INDEX_NONE,
1934 &'scav_inter =',
1935 &' /* intercept of scavenging power law (L^e mg^-e s^-1) */')
1936 CALL WRITE_0D_RL(scav_exp,INDEX_NONE,
1937 &'scav_exp =',
1938 &' /* exponent e of scavenging power law */')
1939 CALL WRITE_0D_RL(scav_POC_wgt,INDEX_NONE,
1940 &'scav_POC_wgt =',
1941 &' /* weight of POC in POM for scavenging (g / mmol C) */')
28ac947a3e Oliv*1942 CALL WRITE_0D_RL(scav_PSi_wgt,INDEX_NONE,
1943 &'scav_PSi_wgt =',
1944 &' /* weight of PSi in POM for scavenging (g / mmol Si) */')
66ade11a9e Oliv*1945 CALL WRITE_0D_RL(scav_PIC_wgt,INDEX_NONE,
1946 &'scav_PIC_wgt =',
1947 &' /* weight of PIC in POM for scavenging (g / mmol C) */')
28ac947a3e Oliv*1948 CALL WRITE_0D_RL(scav_degrPOM,INDEX_NONE,
1949 &'scav_degrPOM =',
1950 &' /* concentration of non-labile POM for scavenging (g/m3) */')
66ade11a9e Oliv*1951 #else
1952 CALL WRITE_0D_RL(scav,INDEX_NONE,
1953 &'scav =',
1954 &' /* fixed iron scavenging rate (1/s) */')
1955 #endif
4e9fe45e8e Oliv*1956 CALL WRITE_0D_RL(depthfesed,INDEX_NONE,
1957 &'depthfesed =',
1958 &' /* depth above which to add sediment source (was -1000) (m) */')
1959 CALL WRITE_0D_RL(fesedflux,INDEX_NONE,
1960 &'fesedflux =',
1961 &' /* fixed iron flux from sediment (mmol Fe /m2/s) */')
1962 CALL WRITE_0D_RL(fesedflux_pcm,INDEX_NONE,
1963 &'fesedflux_pcm =',
1964 &' /* iron input per POC sinking into bottom for DARWIN_IRON_SED_SO
1965 &URCE_VARIABLE (mmol Fe / mmol C) */')
1966 CALL WRITE_0D_RL(fesedflux_min,INDEX_NONE,
1967 &'fesedflux_min =',
1968 &' /* min iron input rate subtracted from fesedflux_pcm*wc_sink*POC
1969 & (mmol Fe /s) */')
1970 CALL WRITE_0D_RL(R_CP_fesed,INDEX_NONE,
1971 &'R_CP_fesed =',
1972 &' /* POC:POP conversion for DARWIN_IRON_SED_SOURCE_POP (mmol C / m
1973 &mol P) */')
2c93eb88ef Oliv*1974 CALL WRITE_0D_RL(depthFeVent,INDEX_NONE,
1975 &'depthFeVent =',
1976 &' /* depth below which iron from hydrothermal vents is added (m) '
1977 &'*/')
1978 CALL WRITE_0D_RL(solFeVent,INDEX_NONE,
1979 &'solFeVent = ',
1980 &' /* solubility of iron from hydrothermal vents */')
1981 CALL WRITE_0D_RL(R_FeHe3_vent,INDEX_NONE,
1982 &'R_FeHe3_vent =',
1983 &' /* Fe:He3 ratio for hydrothermal vents (mol Fe / mol He3) */')
4e9fe45e8e Oliv*1984 CALL WRITE_0D_RL(Knita,INDEX_NONE,
1985 &'Knita =',
1986 &' /* ammonia oxidation rate (1/s) */')
1987 CALL WRITE_0D_RL(Knitb,INDEX_NONE,
1988 &'Knitb =',
1989 &' /* nitrite oxidation rate (1/s) */')
1990 CALL WRITE_0D_RL(PAR_oxi,INDEX_NONE,
1991 &'PAR_oxi =',
1992 &' /* critical light level after which oxidation starts (uEin/m2/s)
1993 & */')
1994 CALL WRITE_0D_RL(Kdoc,INDEX_NONE,
1995 &'Kdoc =',
1996 &' /* DOC remineralization rate (1/s) */')
1997 CALL WRITE_0D_RL(Kdop,INDEX_NONE,
1998 &'Kdop =',
1999 &' /* DON remineralization rate (1/s) */')
2000 CALL WRITE_0D_RL(Kdon,INDEX_NONE,
2001 &'Kdon =',
2002 &' /* DOP remineralization rate (1/s) */')
2003 CALL WRITE_0D_RL(KdoFe,INDEX_NONE,
2004 &'KdoFe =',
2005 &' /* DOFe remineralization rate (1/s) */')
2006 CALL WRITE_0D_RL(KPOC,INDEX_NONE,
2007 &'KPOC =',
2008 &' /* POC remineralization rate (1/s) */')
2009 CALL WRITE_0D_RL(KPON,INDEX_NONE,
2010 &'KPON =',
2011 &' /* PON remineralization rate (1/s) */')
2012 CALL WRITE_0D_RL(KPOP,INDEX_NONE,
2013 &'KPOP =',
2014 &' /* POP remineralization rate (1/s) */')
2015 CALL WRITE_0D_RL(KPOFe,INDEX_NONE,
2016 &'KPOFe =',
2017 &' /* POFe remineralization rate (1/s) */')
2018 CALL WRITE_0D_RL(KPOSi,INDEX_NONE,
2019 &'KPOSi =',
2020 &' /* POSi remineralization rate (1/s) */')
a092808e6b shlo*2021 CALL WRITE_0D_RL(ksatO2remin,INDEX_NONE,
2022 &'ksatO2remin =',
2023 &' /* O2 half saturation for remineralization (mmol O2 m^-3) */')
4e9fe45e8e Oliv*2024 CALL WRITE_0D_RL(wC_sink,INDEX_NONE,
2025 &'wC_sink =',
2026 &' /* sinking velocity for POC (m/s) */')
2027 CALL WRITE_0D_RL(wN_sink,INDEX_NONE,
2028 &'wN_sink =',
2029 &' /* sinking velocity for PON (m/s) */')
2030 CALL WRITE_0D_RL(wP_sink,INDEX_NONE,
2031 &'wP_sink =',
2032 &' /* sinking velocity for POP (m/s) */')
2033 CALL WRITE_0D_RL(wFe_sink,INDEX_NONE,
2034 &'wFe_sink =',
2035 &' /* sinking velocity for POFe (m/s) */')
2036 CALL WRITE_0D_RL(wSi_sink,INDEX_NONE,
2037 &'wSi_sink =',
2038 &' /* sinking velocity for POSi (m/s) */')
2039 CALL WRITE_0D_RL(wPIC_sink,INDEX_NONE,
2040 &'wPIC_sink =',
2041 &' /* sinking velocity for PIC (m/s) */')
ba0b6d5d33 Oliv*2042 CALL WRITE_0D_I(darwin_disscSelect,INDEX_NONE,
2043 &'darwin_disscSelect = ',
2044 &' /* Switch for PIC dissolution rate formulation */')
2045 IF (darwin_disscSelect .EQ. 0) THEN
2046 CALL WRITE_0D_RL(Kdissc,INDEX_NONE,
2047 & 'Kdissc =',
2048 & ' /* dissolution rate for PIC (1/s) */')
2049 ELSEIF (darwin_disscSelect .EQ. 1) THEN
2050 CALL WRITE_0D_RL(darwin_KeirCoeff,INDEX_NONE,
2051 & 'darwin_KeirCoeff =',
2052 & ' /* Keir PIC dissolution rate coefficient (1/s) */')
2053 CALL WRITE_0D_RL(darwin_KeirExp,INDEX_NONE,
2054 & 'darwin_KeirExp =',
2055 & ' /* Keir PIC dissolution rate exponent */')
2056 ENDIF
4e9fe45e8e Oliv*2057 #ifdef DARWIN_ALLOW_CARBON
2058 CALL WRITE_0D_RL(R_OP,INDEX_NONE,
2059 &'R_OP =',
2060 &' /* O:P ratio for respiration and consumption (mmol O2 / mmol P)'
2061 &' */')
2062 CALL WRITE_0D_RL(R_OC,INDEX_NONE,
2063 &'R_OC =',
2064 &' /* NOT USED (mmol O2 / mmol C) */')
2065 CALL WRITE_0D_RL(m3perkg,INDEX_NONE,
2066 &'m3perkg =',
2067 &' /* constant for converting per kg to per m^3 (m3/kg) */')
2068 CALL WRITE_0D_RL(surfSaltMinInit,INDEX_NONE,
2069 &'surfSaltMinInit =',
2070 &' /* minimum salt for carbon solver at initialization (ppt) */')
2071 CALL WRITE_0D_RL(surfSaltMaxInit,INDEX_NONE,
2072 &'surfSaltMaxInit =',
2073 &' /* maximum salt for carbon solver at initialization (ppt) */')
2074 CALL WRITE_0D_RL(surfTempMinInit,INDEX_NONE,
2075 &'surfTempMinInit =',
2076 &' /* minimum temp for carbon solver at initialization (degrees C)'
2077 &' */')
2078 CALL WRITE_0D_RL(surfTempMaxInit,INDEX_NONE,
2079 &'surfTempMaxInit =',
2080 &' /* maximum temp for carbon solver at initialization (degrees C)'
2081 &' */')
2082 CALL WRITE_0D_RL(surfDICMinInit,INDEX_NONE,
2083 &'surfDICMinInit =',
2084 &' /* minimum DIC for carbon solver at initialization (mmol C m^-3)
2085 & */')
2086 CALL WRITE_0D_RL(surfDICMaxInit,INDEX_NONE,
2087 &'surfDICMaxInit =',
2088 &' /* maximum DIC for carbon solver at initialization (mmol C m^-3)
2089 & */')
2090 CALL WRITE_0D_RL(surfALKMinInit,INDEX_NONE,
2091 &'surfALKMinInit =',
2092 &' /* minimum alkalinity for carbon solver at initialization (meq m
2093 &^-3) */')
2094 CALL WRITE_0D_RL(surfALKMaxInit,INDEX_NONE,
2095 &'surfALKMaxInit =',
2096 &' /* maximum alkalinity for carbon solver at initialization (meq m
2097 &^-3) */')
2098 CALL WRITE_0D_RL(surfPO4MinInit,INDEX_NONE,
2099 &'surfPO4MinInit =',
2100 &' /* minimum PO4 for carbon solver at initialization (mmol P m^-3)
2101 & */')
2102 CALL WRITE_0D_RL(surfPO4MaxInit,INDEX_NONE,
2103 &'surfPO4MaxInit =',
2104 &' /* maximum PO4 for carbon solver at initialization (mmol P m^-3)
2105 & */')
2106 CALL WRITE_0D_RL(surfSiMinInit,INDEX_NONE,
2107 &'surfSiMinInit =',
2108 &' /* minimum SiO2 for carbon solver at initialization (mmol Si m^-
2109 &3) */')
2110 CALL WRITE_0D_RL(surfSiMaxInit,INDEX_NONE,
2111 &'surfSiMaxInit =',
2112 &' /* maximum SiO2 for carbon solver at initialization (mmol Si m^-
2113 &3) */')
2114 CALL WRITE_0D_RL(surfSaltMin,INDEX_NONE,
2115 &'surfSaltMin =',
2116 &' /* minimum salt for carbon solver during run (ppt) */')
2117 CALL WRITE_0D_RL(surfSaltMax,INDEX_NONE,
2118 &'surfSaltMax =',
2119 &' /* maximum salt for carbon solver during run (ppt) */')
2120 CALL WRITE_0D_RL(surfTempMin,INDEX_NONE,
2121 &'surfTempMin =',
2122 &' /* minimum temp for carbon solver during run (degrees C) */')
2123 CALL WRITE_0D_RL(surfTempMax,INDEX_NONE,
2124 &'surfTempMax =',
2125 &' /* maximum temp for carbon solver during run (degrees C) */')
2126 CALL WRITE_0D_RL(surfDICMin,INDEX_NONE,
2127 &'surfDICMin =',
2128 &' /* minimum DIC for carbon solver during run (mmol C m^-3) */')
2129 CALL WRITE_0D_RL(surfDICMax,INDEX_NONE,
2130 &'surfDICMax =',
2131 &' /* maximum DIC for carbon solver during run (mmol C m^-3) */')
2132 CALL WRITE_0D_RL(surfALKMin,INDEX_NONE,
2133 &'surfALKMin =',
2134 &' /* minimum alkalinity for carbon solver during run (meq m^-3) */
2135 &')
2136 CALL WRITE_0D_RL(surfALKMax,INDEX_NONE,
2137 &'surfALKMax =',
2138 &' /* maximum alkalinity for carbon solver during run (meq m^-3) */
2139 &')
2140 CALL WRITE_0D_RL(surfPO4Min,INDEX_NONE,
2141 &'surfPO4Min =',
2142 &' /* minimum PO4 for carbon solver during run (mmol P m^-3) */')
2143 CALL WRITE_0D_RL(surfPO4Max,INDEX_NONE,
2144 &'surfPO4Max =',
2145 &' /* maximum PO4 for carbon solver during run (mmol P m^-3) */')
2146 CALL WRITE_0D_RL(surfSiMin,INDEX_NONE,
2147 &'surfSiMin =',
2148 &' /* minimum SiO2 for carbon solver during run (mmol Si m^-3) */')
2149 CALL WRITE_0D_RL(surfSiMax,INDEX_NONE,
2150 &'surfSiMax =',
2151 &' /* maximum SiO2 for carbon solver during run (mmol Si m^-3) */')
2152 #endif
2153 CALL WRITE_0D_RL(diaz_ini_fac,INDEX_NONE,
2154 &'diaz_ini_fac =',
2155 &' /* reduce tracer concentrations by this factor on initialization
2156 & */')
2157 CALL WRITE_0D_RL(O2crit,INDEX_NONE,
2158 &'O2crit =',
2159 &' /* critical oxygen for O2/NO3 remineralization (mmol O2 m-3) */'
2160 &)
2161 CALL WRITE_0D_RL(denit_NP,INDEX_NONE,
2162 &'denit_NP =',
2163 &' /* ratio of n to p in denitrification process (mmol N / mmol P)'
2164 &' */')
2165 CALL WRITE_0D_RL(denit_NO3,INDEX_NONE,
2166 &'denit_NO3 =',
2167 &' /* ratio of NO3 uptake to phos remineralization in denitrificati
2168 &on (mmol N / mmol P) */')
2169 CALL WRITE_0D_RL(NO3crit,INDEX_NONE,
2170 &'NO3crit =',
2171 &' /* critical nitrate below which no denit (or remin) happens (mmo
2172 &l N m-3) */')
2173 CALL WRITE_0D_RL(PARmin,INDEX_NONE,
2174 &'PARmin =',
2175 &' /* minimum light for photosynthesis; for non-Geider: 1.0 (uEin/m
2176 &2/s) */')
2177 CALL WRITE_0D_RL(aphy_chl_ave,INDEX_NONE,
2178 &'aphy_chl_ave =',
2179 &' /* Chl-specific absorption coefficient (m2/mg Chl) */')
e4eb55147a Oliv*2180 CALL WRITE_0D_RL(Chl2Nmax,INDEX_NONE,
2181 &'Chl2Nmax =',
4e9fe45e8e Oliv*2182 &' /* max Chl:N ratio for Chl synthesis following Moore 2002 (mg Ch
2183 &l / mmol N) */')
2184 CALL WRITE_0D_RL(synthcost,INDEX_NONE,
2185 &'synthcost =',
2186 &' /* cost of biosynthesis (mmol C / mmol N) */')
2187 CALL WRITE_0D_RL(inhib_graz,INDEX_NONE,
2188 &'inhib_graz =',
2189 &' /* inverse decay scale for grazing inhibition ((mmol C m-3)-1) *
2190 &/')
2191 CALL WRITE_0D_RL(inhib_graz_exp,INDEX_NONE,
2192 &'inhib_graz_exp =',
2193 &' /* exponent for grazing inhibition (0 to turn off inhibition) */
2194 &')
2195 CALL WRITE_0D_RL(hillnumGraz,INDEX_NONE,
2196 &'hillnumGraz =',
2197 &' /* exponent for limiting quota uptake in grazing */')
2198 CALL WRITE_0D_RL(hollexp,INDEX_NONE,
2199 &'hollexp =',
2200 &' /* grazing exponential 1= "Holling 2", 2= "Holling 3" */')
2201 CALL WRITE_0D_RL(phygrazmin,INDEX_NONE,
2202 &'phygrazmin =',
2203 &' /* minimum total prey conc for grazing to occur (mmol C m-3) */'
2204 &)
2205 CALL WRITE_0D_RL(pcoefO2,INDEX_NONE,
2206 &'pcoefO2 =',
2207 &' /* max O2-specific O2 uptake rate for aerobic bacteria (m3/mmol'
2208 &' O2/s) */')
2209 CALL WRITE_0D_RL(pmaxDIN,INDEX_NONE,
2210 &'pmaxDIN =',
2211 &' /* max DIN uptake rate for denitrifying bacteria (1/s) */')
2212 CALL WRITE_0D_RL(ksatDIN,INDEX_NONE,
2213 &'ksatDIN =',
2214 &' /* half-saturation conc of dissolved inorganic nitrogen (mmol N'
2215 &' m-3) */')
2216 CALL WRITE_0D_RL(alpha_hydrol,INDEX_NONE,
2217 &'alpha_hydrol =',
2218 &' /* increase in POM needed due to hydrolysis */')
2219 CALL WRITE_0D_RL(yod,INDEX_NONE,
2220 &'yod =',
2221 &' /* organic matter yield of aerobic bacteria */')
2222 CALL WRITE_0D_RL(yoe,INDEX_NONE,
2223 &'yoe =',
2224 &' /* energy yield of aerobic bacteria */')
2225 CALL WRITE_0D_RL(ynd,INDEX_NONE,
2226 &'ynd =',
2227 &' /* organic matter yield of denitrifying bacteria */')
2228 CALL WRITE_0D_RL(yne,INDEX_NONE,
2229 &'yne =',
2230 &' /* energy yield of denitrifying bacteria */')
2231 CALL WRITE_0D_RL(depthdenit,INDEX_NONE,
2232 &'depthdenit =',
2233 &' /* not implemented (depth for denitrification relaxation to star
2234 &t) (m) */')
2235 #ifdef DARWIN_ALLOW_CDOM
2236 CALL WRITE_0D_RL(fracCDOM,INDEX_NONE,
2237 &'fracCDOM =',
2238 &' /* fraction of remineralized POP contributing to CDOM */')
2239 CALL WRITE_0D_RL(CDOMdegrd,INDEX_NONE,
2240 &'CDOMdegrd =',
2241 &' /* CDOM degradation rate (1/s) */')
2242 CALL WRITE_0D_RL(CDOMbleach,INDEX_NONE,
2243 &'CDOMbleach =',
2244 &' /* CDOM bleaching rate (1/s) */')
2245 CALL WRITE_0D_RL(PARCDOM,INDEX_NONE,
2246 &'PARCDOM =',
2247 &' /* PAR where CDOM bleaching becomes maximal (uEin/m2/s) */')
2248 # ifdef DARWIN_CDOM_UNITS_CARBON
2249 CALL WRITE_0D_RL(R_NC_CDOM,INDEX_NONE,
2250 &'R_NC_CDOM =',
2251 &' /* CDOM N:C ratio (mmol N / mmol C) */')
2252 CALL WRITE_0D_RL(R_FeC_CDOM,INDEX_NONE,
2253 &'R_FeC_CDOM =',
2254 &' /* CDOM Fe:C ratio (mmol Fe / mmol C) */')
2255 CALL WRITE_0D_RL(R_PC_CDOM,INDEX_NONE,
2256 &'R_PC_CDOM =',
2257 &' /* CDOM P:C ratio (mmol P / mmol C) */')
2258 # else
2259 CALL WRITE_0D_RL(R_NP_CDOM,INDEX_NONE,
2260 &'R_NP_CDOM =',
2261 &' /* CDOM N:P ratio (mmol N / mmol P) */')
2262 CALL WRITE_0D_RL(R_FeP_CDOM,INDEX_NONE,
2263 &'R_FeP_CDOM =',
2264 &' /* CDOM Fe:P ratio (mmol Fe / mmol P) */')
2265 CALL WRITE_0D_RL(R_CP_CDOM,INDEX_NONE,
2266 &'R_CP_CDOM =',
2267 &' /* CDOM C:P ratio (mmol C / mmol P) */')
2268 # endif
2269 CALL WRITE_0D_RL(CDOMcoeff,INDEX_NONE,
2270 &'CDOMcoeff =',
2271 &' /* P-specific absorption coefficient of CDOM (m2 / mmol P) */')
2272 #endif /* DARWIN_ALLOW_CDOM */
2273 #ifdef ALLOW_RADTRANS
2274 #ifndef DARWIN_ALLOW_CDOM
2275 CALL WRITE_0D_I(laCDOM,INDEX_NONE,
2276 &'laCDOM =',
2277 &' /* index of reference waveband for CDOM absorption spectrum */')
2278 #endif
2279 #endif
2280 CALL WRITE_0D_I(kMinFeSed,INDEX_NONE,
2281 &'kMinFeSed =',
2282 &' /* minimum level index for iron sedimentation */')
2283 CALL WRITE_0D_I(kMaxFeSed,INDEX_NONE,
2284 &'kMaxFeSed =',
2285 &' /* maximum level index for iron sedimentation */')
2c93eb88ef Oliv*2286 CALL WRITE_0D_I(kMinFeVent,INDEX_NONE,
2287 &'kMinFeVent =',
2288 &' /* minimum level index for hydrothermal vents */')
4e9fe45e8e Oliv*2289
2290
2291
2292
2293 CALL WRITE_1D_I(isPhoto,nplank,INDEX_NONE,
2294 &'isPhoto =',
2295 &' /* 1: does photosynthesis, 0: not */')
2296 CALL WRITE_1D_I(bactType,nplank,INDEX_NONE,
2297 &'bactType =',
2298 &' /* 1: particle associated, 2: free living bacteria, 0: not bacte
2299 &ria */')
2300 CALL WRITE_1D_I(isAerobic,nplank,INDEX_NONE,
2301 &'isAerobic =',
2302 &' /* 1: is aerobic bacteria (also set bactType), 0: not */')
2303 CALL WRITE_1D_I(isDenit,nplank,INDEX_NONE,
2304 &'isDenit =',
2305 &' /* 1: is dentrifying bacteria (also set (bactType), 0: not */')
2306 CALL WRITE_1D_I(hasSi,nplank,INDEX_NONE,
2307 &'hasSi =',
2308 &' /* 1: uses silica (Diatom), 0: not */')
2309 CALL WRITE_1D_I(hasPIC,nplank,INDEX_NONE,
2310 &'hasPIC =',
2311 &' /* 1: calcifying, 0: set R_PICPOC to zero */')
2312 CALL WRITE_1D_I(diazo,nplank,INDEX_NONE,
2313 &'diazo =',
2314 &' /* 1: use molecular instead of mineral nitrogen, 0: not */')
2315 CALL WRITE_1D_I(useNH4,nplank,INDEX_NONE,
2316 &'useNH4 =',
2317 &' /* 1: can use ammonia, 0: not */')
2318 CALL WRITE_1D_I(useNO2,nplank,INDEX_NONE,
2319 &'useNO2 =',
2320 &' /* 1: can use nitrite, 0: not */')
2321 CALL WRITE_1D_I(useNO3,nplank,INDEX_NONE,
2322 &'useNO3 =',
2323 &' /* 1: can use nitrate, 0: not */')
2324 CALL WRITE_1D_I(combNO,nplank,INDEX_NONE,
2325 &'combNO =',
2326 &' /* 1: combined nitrite/nitrate limitation, 0: not */')
2327 CALL WRITE_1D_I(isPrey,nplank,INDEX_NONE,
2328 &'isPrey =',
2329 &' /* 1: can be grazed, 0: not */')
2330 CALL WRITE_1D_I(isPred,nplank,INDEX_NONE,
2331 &'isPred =',
2332 &' /* 1: can graze, 0: not */')
2333 CALL WRITE_1D_I(tempMort,nplank,INDEX_NONE,
2334 &'tempMort =',
2335 &' /* 1: mortality is temperature dependent, 0: turn dependence off
2336 & */')
2337 CALL WRITE_1D_I(tempMort2,nplank,INDEX_NONE,
2338 &'tempMort2 =',
2339 &' /* 1: quadratic mortality is temperature dependent, 0: turn depe
2340 &ndence off */')
2341 CALL WRITE_1D_I(tempGraz,nplank,INDEX_NONE,
2342 &'tempGraz =',
2343 &' /* 1: grazing is temperature dependent, 0: turn dependence off *
2344 &/')
2345 CALL WRITE_1D_RL(Xmin,nplank,INDEX_NONE,
2346 &'Xmin =',
2347 &' /* minimum abundance for mortality, respiration and exudation (m
2348 &mol C m^-3) */')
2349 CALL WRITE_1D_RL(amminhib,nplank,INDEX_NONE,
2350 &'amminhib =',
2351 &' /* coefficient for NH4 inhibition of NO uptake ((mmol N m^-3)^-1
2352 &) */')
2353 CALL WRITE_1D_RL(acclimtimescl,nplank,INDEX_NONE,
2354 &'acclimtimescl =',
2355 &' /* rate of chlorophyll acclimation (s^-1) */')
2356 CALL WRITE_1D_RL(mort,nplank,INDEX_NONE,
2357 &'mort =',
2358 &' /* linear mortality rate (s^-1) */')
2359 CALL WRITE_1D_RL(mort2,nplank,INDEX_NONE,
2360 &'mort2 =',
2361 &' /* quadratic mortality coefficient ((mmol C m^-3)^-1 s^-1) */')
2362 CALL WRITE_1D_RL(ExportFracMort,nplank,INDEX_NONE,
2363 &'ExportFracMort =',
2364 &' /* fraction of linear mortality to POM */')
2365 CALL WRITE_1D_RL(ExportFracMort2,nplank,INDEX_NONE,
2366 &'ExportFracMort2 =',
2367 &' /* fraction of quadratic mortality to POM */')
2368 CALL WRITE_1D_RL(ExportFracExude,nplank,INDEX_NONE,
2369 &'ExportFracExude =',
2370 &' /* fraction of exudation to POM */')
2371 CALL WRITE_1D_RL(FracExudeC,nplank,INDEX_NONE,
2372 &'FracExudeC =',
2373 &' /* fraction of excess C exuded */')
2374 CALL WRITE_1D_RL(phytoTempCoeff,nplank,INDEX_NONE,
2375 &'phytoTempCoeff =',
2376 &' /* coefficient for DARWIN_TEMP_VERSION 1 */')
2377 CALL WRITE_1D_RL(phytoTempExp1,nplank,INDEX_NONE,
2378 &'phytoTempExp1 =',
2379 &' /* coefficient for DARWIN_TEMP_VERSION 1 (exp(1/degrees C)) */')
2380 CALL WRITE_1D_RL(phytoTempExp2,nplank,INDEX_NONE,
2381 &'phytoTempExp2 =',
2382 &' /* coefficient for DARWIN_TEMP_RANGE */')
2383 CALL WRITE_1D_RL(phytoTempOptimum,nplank,INDEX_NONE,
2384 &'phytoTempOptimum =',
2385 &' /* coefficient for DARWIN_TEMP_RANGE (degrees C) */')
2386 CALL WRITE_1D_RL(phytoDecayPower,nplank,INDEX_NONE,
2387 &'phytoDecayPower =',
2388 &' /* coefficient for DARWIN_TEMP_RANGE */')
2389 CALL WRITE_1D_RL(phytoTempAe,nplank,INDEX_NONE,
2390 &'phytoTempAe =',
2391 &' /* coefficient for DARWIN_TEMP_VERSION 4 (1/degrees C) */')
2392 CALL WRITE_1D_RL(hetTempAe,nplank,INDEX_NONE,
2393 &'hetTempAe =',
2394 &' /* coefficient for DARWIN_TEMP_VERSION 4 (1/degrees C) */')
2395 CALL WRITE_1D_RL(hetTempExp2,nplank,INDEX_NONE,
2396 &'hetTempExp2 =',
2397 &' /* coefficient for DARWIN_TEMP_VERSION 4 */')
2398 CALL WRITE_1D_RL(hetTempOptimum,nplank,INDEX_NONE,
2399 &'hetTempOptimum =',
2400 &' /* coefficient for DARWIN_TEMP_VERSION 4 (degrees C) */')
2401 CALL WRITE_1D_RL(hetDecayPower,nplank,INDEX_NONE,
2402 &'hetDecayPower =',
2403 &' /* coefficient for DARWIN_TEMP_VERSION 4 */')
2404 CALL WRITE_1D_RL(grazTempAe,nplank,INDEX_NONE,
2405 &'grazTempAe =',
2406 &' /* coefficient for DARWIN_TEMP_VERSION 4 (1/degrees C) */')
2407 CALL WRITE_1D_RL(grazTempExp2,nplank,INDEX_NONE,
2408 &'grazTempExp2 =',
2409 &' /* coefficient for DARWIN_TEMP_VERSION 4 */')
2410 CALL WRITE_1D_RL(grazTempOptimum,nplank,INDEX_NONE,
2411 &'grazTempOptimum =',
2412 &' /* coefficient for DARWIN_TEMP_VERSION 4 (degrees C) */')
2413 CALL WRITE_1D_RL(grazDecayPower,nplank,INDEX_NONE,
2414 &'grazDecayPower =',
2415 &' /* coefficient for DARWIN_TEMP_VERSION 4 */')
2416 CALL WRITE_1D_RL(R_NC,nplank,INDEX_NONE,
2417 &'R_NC =',
2418 &' /* nitrogen-carbon ratio (not used with DARWIN_ALLOW_NQUOTA) (mm
2419 &ol N (mmol C)^-1) */')
2420 CALL WRITE_1D_RL(R_PC,nplank,INDEX_NONE,
2421 &'R_PC =',
2422 &' /* phosphorus-carbon ratio (not used with DARWIN_ALLOW_PQUOTA) (
2423 &mmol P (mmol C)^-1) */')
2424 CALL WRITE_1D_RL(R_SiC,nplank,INDEX_NONE,
2425 &'R_SiC =',
2426 &' /* silica-carbon ratio (not used with DARWIN_ALLOW_SIQUOTA) (mmo
2427 &l Si (mmol C)^-1) */')
2428 CALL WRITE_1D_RL(R_FeC,nplank,INDEX_NONE,
2429 &'R_FeC =',
2430 &' /* iron-carbon ratio (not used with DARWIN_ALLOW_FEQUOTA) (mmol'
2431 &' Fe (mmol C)^-1) */')
2432 CALL WRITE_1D_RL(R_ChlC,nplank,INDEX_NONE,
2433 &'R_ChlC =',
2434 &' /* chlorophyll-carbon ratio (not used with DARWIN_ALLOW_CHLQUOTA
2435 &) (mg Chl (mmol C)^-1) */')
2436 CALL WRITE_1D_RL(R_PICPOC,nplank,INDEX_NONE,
2437 &'R_PICPOC =',
2438 &' /* inorganic-organic carbon ratio (mmol PIC (mmol POC)^-1) */')
2439 CALL WRITE_1D_RL(biosink,nplank,INDEX_NONE,
2440 &'biosink =',
2441 &' /* sinking velocity (positive downwards) (m s^-1) */')
2442 CALL WRITE_1D_RL(bioswim,nplank,INDEX_NONE,
2443 &'bioswim =',
2444 &' /* upward swimming velocity (positive upwards) (m s^-1) */')
2445 CALL WRITE_1D_RL(respRate,nplank,INDEX_NONE,
2446 &'respRate =',
2447 &' /* respiration rate (s^-1) */')
2448 CALL WRITE_1D_RL(PCmax,nplank,INDEX_NONE,
2449 &'PCmax =',
2450 &' /* maximum carbon-specific growth rate (s^-1) */')
2451 CALL WRITE_1D_RL(Qnmax,nplank,INDEX_NONE,
2452 &'Qnmax =',
2453 &' /* maximum nitrogen quota (only with DARWIN_ALLOW_NQUOTA) (mmol'
2454 &' N (mmol C)^-1) */')
2455 CALL WRITE_1D_RL(Qnmin,nplank,INDEX_NONE,
2456 &'Qnmin =',
2457 &' /* minimum nitrogen quota (only with DARWIN_ALLOW_NQUOTA) (mmol'
2458 &' N (mmol C)^-1) */')
2459 CALL WRITE_1D_RL(Qpmax,nplank,INDEX_NONE,
2460 &'Qpmax =',
2461 &' /* maximum phosphorus quota (only with DARWIN_ALLOW_PQUOTA) (mmo
2462 &l P (mmol C)^-1) */')
2463 CALL WRITE_1D_RL(Qpmin,nplank,INDEX_NONE,
2464 &'Qpmin =',
2465 &' /* minimum phosphorus quota (only with DARWIN_ALLOW_PQUOTA) (mmo
2466 &l P (mmol C)^-1) */')
2467 CALL WRITE_1D_RL(Qsimax,nplank,INDEX_NONE,
2468 &'Qsimax =',
2469 &' /* maximum silica quota (only with DARWIN_ALLOW_SIQUOTA) (mmol S
2470 &i (mmol C)^-1) */')
2471 CALL WRITE_1D_RL(Qsimin,nplank,INDEX_NONE,
2472 &'Qsimin =',
2473 &' /* minimum silica quota (only with DARWIN_ALLOW_SIQUOTA) (mmol S
2474 &i (mmol C)^-1) */')
2475 CALL WRITE_1D_RL(Qfemax,nplank,INDEX_NONE,
2476 &'Qfemax =',
2477 &' /* maximum iron quota (only with DARWIN_ALLOW_FEQUOTA) (mmol Fe'
2478 &' (mmol C)^-1) */')
2479 CALL WRITE_1D_RL(Qfemin,nplank,INDEX_NONE,
2480 &'Qfemin =',
2481 &' /* minimum iron quota (only with DARWIN_ALLOW_FEQUOTA) (mmol Fe'
2482 &' (mmol C)^-1) */')
2483 CALL WRITE_1D_RL(VmaxNH4,nplank,INDEX_NONE,
2484 &'VmaxNH4 =',
2485 &' /* maximum ammonia uptake rate (only with DARWIN_ALLOW_NQUOTA) (
2486 &mmol N (mmol C)^-1 s^-1) */')
2487 CALL WRITE_1D_RL(VmaxNO2,nplank,INDEX_NONE,
2488 &'VmaxNO2 =',
2489 &' /* maximum nitrite uptake rate (only with DARWIN_ALLOW_NQUOTA) (
2490 &mmol N (mmol C)^-1 s^-1) */')
2491 CALL WRITE_1D_RL(VmaxNO3,nplank,INDEX_NONE,
2492 &'VmaxNO3 =',
2493 &' /* maximum nitrate uptake rate (only with DARWIN_ALLOW_NQUOTA) (
2494 &mmol N (mmol C)^-1 s^-1) */')
2495 CALL WRITE_1D_RL(VmaxN,nplank,INDEX_NONE,
2496 &'VmaxN =',
2497 &' /* maximum nitrogen uptake rate for diazotrophs (only with DARWI
2498 &N_ALLOW_NQUOTA) (mmol N (mmol C)^-1 s^-1) */')
2499 CALL WRITE_1D_RL(VmaxPO4,nplank,INDEX_NONE,
2500 &'VmaxPO4 =',
2501 &' /* maximum phosphate uptake rate (only with DARWIN_ALLOW_PQUOTA)
2502 & (mmol P (mmol C)^-1 s^-1) */')
2503 CALL WRITE_1D_RL(VmaxSiO2,nplank,INDEX_NONE,
2504 &'VmaxSiO2 =',
2505 &' /* maximum silica uptake rate (only with DARWIN_ALLOW_SIQUOTA) (
2506 &mmol Si (mmol C)^-1 s^-1) */')
2507 CALL WRITE_1D_RL(VmaxFeT,nplank,INDEX_NONE,
2508 &'VmaxFeT =',
2509 &' /* maximum iron uptake rate (only with DARWIN_ALLOW_FEQUOTA) (mm
2510 &ol Fe (mmol C)^-1 s^-1) */')
2511 CALL WRITE_1D_RL(ksatNH4,nplank,INDEX_NONE,
2512 &'ksatNH4 =',
2513 &' /* half-saturation conc. for ammonia uptake/limitation (mmol N m
2514 &^-3) */')
2515 CALL WRITE_1D_RL(ksatNO2,nplank,INDEX_NONE,
2516 &'ksatNO2 =',
2517 &' /* half-saturation conc. for nitrite uptake/limitation (mmol N m
2518 &^-3) */')
2519 CALL WRITE_1D_RL(ksatNO3,nplank,INDEX_NONE,
2520 &'ksatNO3 =',
2521 &' /* half-saturation conc. for nitrate uptake/limitation (mmol N m
2522 &^-3) */')
2523 CALL WRITE_1D_RL(ksatPO4,nplank,INDEX_NONE,
2524 &'ksatPO4 =',
2525 &' /* half-saturation conc. for phosphate uptake/limitation (mmol P
2526 & m^-3) */')
2527 CALL WRITE_1D_RL(ksatSiO2,nplank,INDEX_NONE,
2528 &'ksatSiO2 =',
2529 &' /* half-saturation conc. for silica uptake/limitation (mmol Si m
2530 &^-3) */')
2531 CALL WRITE_1D_RL(ksatFeT,nplank,INDEX_NONE,
2532 &'ksatFeT =',
2533 &' /* half-saturation conc. for iron uptake/limitation (mmol Fe m^-
2534 &3) */')
a092808e6b shlo*2535 CALL WRITE_1D_RL(hillnumDIN,nphoto,INDEX_NONE,
2536 &'hillnumDIN =',
2537 &' /* exponent for limiting quota uptake in DIN uptake */')
2538 CALL WRITE_1D_RL(hillnumPO4,nphoto,INDEX_NONE,
2539 &'hillnumPO4 =',
2540 &' /* exponent for limiting quota uptake in PO4 uptake */')
2541 CALL WRITE_1D_RL(hillnumFeT,nphoto,INDEX_NONE,
2542 &'hillnumFeT =',
2543 &' /* exponent for limiting quota uptake in FeT uptake */')
2544 CALL WRITE_1D_RL(hillnumSiO2,nphoto,INDEX_NONE,
2545 &'hillnumSiO2 =',
2546 &' /* exponent for limiting quota uptake in SiO2 uptake */')
4e9fe45e8e Oliv*2547 CALL WRITE_1D_RL(kexcc,nplank,INDEX_NONE,
2548 &'kexcc =',
2549 &' /* exudation rate for carbon (s^-1) */')
2550 CALL WRITE_1D_RL(kexcn,nplank,INDEX_NONE,
2551 &'kexcn =',
2552 &' /* exudation rate for nitrogen (s^-1) */')
2553 CALL WRITE_1D_RL(kexcp,nplank,INDEX_NONE,
2554 &'kexcp =',
2555 &' /* exudation rate for phosphorus (s^-1) */')
2556 CALL WRITE_1D_RL(kexcsi,nplank,INDEX_NONE,
2557 &'kexcsi =',
2558 &' /* exudation rate for silica (s^-1) */')
2559 CALL WRITE_1D_RL(kexcfe,nplank,INDEX_NONE,
2560 &'kexcfe =',
2561 &' /* exudation rate for iron (s^-1) */')
2562 #ifdef DARWIN_ALLOW_GEIDER
2563 CALL WRITE_1D_RL(inhibGeider,nplank,INDEX_NONE,
2564 &'inhibGeider =',
2565 &' /* photo-inhibition coefficient for Geider growth */')
2566 #else
2567 CALL WRITE_1D_RL(ksatPAR,nplank,INDEX_NONE,
2568 &'ksatPAR =',
2569 &' /* saturation coefficient for PAR (w/o GEIDER) ((uEin m^-2 s^-1)
2570 &^-1) */')
2571 CALL WRITE_1D_RL(kinhPAR,nplank,INDEX_NONE,
2572 &'kinhPAR =',
2573 &' /* inhibition coefficient for PAR (w/o GEIDER) ((uEin m^-2 s^-1)
2574 &^-1) */')
2575 #endif
2576 CALL WRITE_1D_RL(mQyield,nplank,INDEX_NONE,
2577 &'mQyield =',
2578 &' /* maximum quantum yield (mmol C (uEin)^-1) */')
2579 CALL WRITE_1D_RL(chl2cmax,nplank,INDEX_NONE,
2580 &'chl2cmax =',
2581 &' /* maximum Chlorophyll-carbon ratio (mg Chl (mmol C)^-1) */')
2582 CALL WRITE_1D_RL(grazemax,nplank,INDEX_NONE,
2583 &'grazemax =',
2584 &' /* maximum grazing rate (s^-1) */')
2585 CALL WRITE_1D_RL(kgrazesat,nplank,INDEX_NONE,
2586 &'kgrazesat =',
2587 &' /* grazing half-saturation concentration (mmol C m^-3) */')
2588 DO l=1,nplank
2589 WRITE(msgBuf,'(A,I4,A)')'palat(:,', l, ') ='
2590 CALL WRITE_1D_RL(palat(1,l),nplank,INDEX_NONE,
2591 &msgBuf,
2592 &' /* palatability matrix */')
2593 ENDDO
2594 DO l=1,nplank
2595 WRITE(msgBuf,'(A,I4,A)')'asseff(:,', l, ') ='
2596 CALL WRITE_1D_RL(asseff(1,l),nplank,INDEX_NONE,
2597 &msgBuf,
2598 &' /* assimilation efficiency matrix */')
2599 ENDDO
2600 DO l=1,nplank
2601 WRITE(msgBuf,'(A,I4,A)')'ExportFracPreyPred(:,', l, ') ='
2602 CALL WRITE_1D_RL(ExportFracPreyPred(1,l),nplank,INDEX_NONE,
2603 &msgBuf,
2604 &' /* fraction of unassimilated prey becoming particulate organic m
2605 &atter */')
2606 ENDDO
2607 CALL WRITE_1D_RL(yield,nplank,INDEX_NONE,
2608 &'yield =',
2609 &' /* bacterial growth yield for all organic matter */')
2610 CALL WRITE_1D_RL(yieldO2,nplank,INDEX_NONE,
2611 &'yieldO2 =',
2612 &' /* bacterial growth yield for oxygen */')
2613 CALL WRITE_1D_RL(yieldNO3,nplank,INDEX_NONE,
2614 &'yieldNO3 =',
2615 &' /* bacterial growth yield for nitrate */')
2616 CALL WRITE_1D_RL(ksatPON,nplank,INDEX_NONE,
2617 &'ksatPON =',
2618 &' /* half-saturation of PON for bacterial growth (mmol N m^-3) */'
2619 &)
2620 CALL WRITE_1D_RL(ksatPOC,nplank,INDEX_NONE,
2621 &'ksatPOC =',
2622 &' /* half-saturation of POC for bacterial growth (mmol C m^-3) */'
2623 &)
2624 CALL WRITE_1D_RL(ksatPOP,nplank,INDEX_NONE,
2625 &'ksatPOP =',
2626 &' /* half-saturation of POP for bacterial growth (mmol P m^-3) */'
2627 &)
2628 CALL WRITE_1D_RL(ksatPOFe,nplank,INDEX_NONE,
2629 &'ksatPOFe =',
2630 &' /* half-saturation of POFe for bacterial growth (mmol Fe m^-3) *
2631 &/')
2632 CALL WRITE_1D_RL(ksatDON,nplank,INDEX_NONE,
2633 &'ksatDON =',
2634 &' /* half-saturation of DON for bacterial growth (mmol N m^-3) */'
2635 &)
2636 CALL WRITE_1D_RL(ksatDOC,nplank,INDEX_NONE,
2637 &'ksatDOC =',
2638 &' /* half-saturation of DOC for bacterial growth (mmol C m^-3) */'
2639 &)
2640 CALL WRITE_1D_RL(ksatDOP,nplank,INDEX_NONE,
2641 &'ksatDOP =',
2642 &' /* half-saturation of DOP for bacterial growth (mmol P m^-3) */'
2643 &)
2644 CALL WRITE_1D_RL(ksatDOFe,nplank,INDEX_NONE,
2645 &'ksatDOFe =',
2646 &' /* half-saturation of DOFe for bacterial growth (mmol Fe m^-3) *
2647 &/')
2648 #ifndef DARWIN_RANDOM_TRAITS
2649 CALL WRITE_1D_I(group,nplank,INDEX_NONE,
2650 &'group =',
2651 &' /* which group this type belongs to */')
2652 CALL WRITE_1D_I(igroup,nplank,INDEX_NONE,
2653 &'igroup =',
2654 &' /* index within group */')
2655 CALL WRITE_1D_RL(biovol,nplank,INDEX_NONE,
2656 &'biovol =',
2657 &' /* volume (um^3) */')
2658 CALL WRITE_1D_RL(qcarbon,nplank,INDEX_NONE,
2659 &'qcarbon =',
2660 &' /* cellular carbon content (mmol C/cell) */')
2661 #endif
2662 #ifdef ALLOW_RADTRANS
2663 CALL WRITE_1D_I(aptype,nplank,INDEX_NONE,
2664 &'aptype =',
2665 &' /* optical type (for absorption/scattering spectra) */')
2666 #endif
2667 #ifndef DARWIN_ALLOW_GEIDER
2668 CALL WRITE_1D_RL(normI,nplank,INDEX_NONE,
2669 &'normI =',
2670 &' /* normalization factor for non-Geider light curve */')
2671 #endif
a092808e6b shlo*2672 #ifdef DARWIN_MACROMOLECULAR_GROWTH
2673 CALL WRITE_1D_RL(Y_CP_Plip,nplank,INDEX_NONE,
2674 &'Y_CP_Plip = ',
2675 &' /* C/P molar ratio of PG: Phosphatidyl glycerol (molC molP^-1) *
2676 &/')
2677 CALL WRITE_1D_RL(Y_CN_protein,nplank,INDEX_NONE,
2678 &'Y_CN_protein = ',
2679 &' /* C/N molar ratio in protein (molC molN^-1) */')
2680 CALL WRITE_1D_RL(Y_NC_chl,nplank,INDEX_NONE,
2681 &'Y_NC_chl = ',
2682 &' /* N/C molar ratio in chlorophyll (molN molC^-1) */')
2683 CALL WRITE_1D_RL(Y_CN_cyano,nplank,INDEX_NONE,
2684 &'Y_CN_cyano = ',
2685 &' /* C/N molar ratio of cyanophycin (molC molN^-1) */')
2686 CALL WRITE_1D_RL(Y_PN_nucacid,nplank,INDEX_NONE,
2687 &'Y_PN_nucacid = ',
2688 &' /* P/N molar ratio of RNA (molP molN^-1) */')
2689 CALL WRITE_1D_RL(Y_CN_DNA,nplank,INDEX_NONE,
2690 &'Y_CN_DNA = ',
2691 &' /* C/N molar ratio of DNA (molC molN^-1) */')
2692 CALL WRITE_1D_RL(Y_CN_RNA,nplank,INDEX_NONE,
2693 &'Y_CN_RNA = ',
2694 &' /* C/N molar ratio of RNA (molC molN^-1) */')
2695 CALL WRITE_1D_RL(Y_THY_P,nplank,INDEX_NONE,
2696 &'Y_THY_P = ',
2697 &' /* the stoichiometric ratio for cell phosphorus in thylakoid mem
2698 &brane to chlorophyll ((molP)/(molC in chl)^-1) */')
2699 CALL WRITE_1D_RL(Y_FeN_photo,nplank,INDEX_NONE,
2700 &'Y_FeN_photo = ',
2701 &' /* Fe/N ratio in photosystem iron (molFe mol N^-1) */')
2702 CALL WRITE_1D_RL(ECo2Prod,nplank,INDEX_NONE,
2703 &'ECo2Prod = ',
2704 &' /* CO2 production ratio (dimensionless) */')
2705 CALL WRITE_1D_RL(maintConsum,nplank,INDEX_NONE,
2706 &'maintConsum = ',
2707 &' /* maintenance carbohydrate consumption (s^-1) */')
2708 CALL WRITE_1D_RL(VI_max,nplank,INDEX_NONE,
2709 &'VI_max = ',
2710 &' /* carbon fixing rate (molC (molC in Chl)^-1 s^-1) */')
2711 CALL WRITE_1D_RL(A_I,nplank,INDEX_NONE,
2712 &'A_I = ',
2713 &' /* coefficient characterizing the absorption cross section (umol
2714 &^-1 m2 s) */')
2715 CALL WRITE_1D_RL(QC_other,nplank,INDEX_NONE,
2716 &'QC_other = ',
2717 &' /* essential carbon (lipid membrane, etc.) (molC molC^-1) */')
2718 CALL WRITE_1D_RL(QC_pro_other,nplank,INDEX_NONE,
2719 &'QC_pro_other = ',
2720 &' /* (molC molC^-1) */')
2721 CALL WRITE_1D_RL(QP_other,nplank,INDEX_NONE,
2722 &'QP_other = ',
2723 &' /* constant part of phosphorus (molP molC^-1) */')
2724 CALL WRITE_1D_RL(QP_RNA_min,nplank,INDEX_NONE,
2725 &'QP_RNA_min = ',
2726 &' /* (molP molC^-1) */')
2727 CALL WRITE_1D_RL(QC_DNA,nplank,INDEX_NONE,
2728 &'QC_DNA = ',
2729 &' /* constant part of DNA in carbon (molC molC^-1) */')
2730 CALL WRITE_1D_RL(QN_pro_other,nplank,INDEX_NONE,
2731 &'QN_pro_other = ',
2732 &' /* (molN molC^-1) */')
2733 CALL WRITE_1D_RL(QN_RNA_min,nplank,INDEX_NONE,
2734 &'QN_RNA_min = ',
2735 &' /* constant part of RNA in nitrogen (molN molC^-1) */')
2736 CALL WRITE_1D_RL(QC_RNA_min,nplank,INDEX_NONE,
2737 &'QC_RNA_min = ',
2738 &' /* constant part of RNA in carbon (molN molC^-1) */')
2739 CALL WRITE_1D_RL(QN_DNA,nplank,INDEX_NONE,
2740 &'QN_DNA = ',
2741 &' /* DNA in nitrogen (molN molC^-1) */')
2742 CALL WRITE_1D_RL(QP_DNA,nplank,INDEX_NONE,
2743 &'QP_DNA = ',
2744 &' /* DNA in phosphorous (molP molC^-1) */')
2745 CALL WRITE_1D_RL(QN_sto_max,nplank,INDEX_NONE,
2746 &'QN_sto_max = ',
2747 &' /* maximum nitrogen storage (molN molC^-1) */')
2748 CALL WRITE_1D_RL(Qp_max,nplank,INDEX_NONE,
2749 &'Qp_max = ',
2750 &' /* maximum phosphorus quota (molP molC^-1) */')
2751 CALL WRITE_1D_RL(Qfe_max,nplank,INDEX_NONE,
2752 &'Qfe_max = ',
2753 &' /* maximum iron quota (molFe molC^-1) */')
2754 CALL WRITE_1D_RL(A_pho,nplank,INDEX_NONE,
2755 &'A_pho = ',
2756 &' /* A constant of proportionalty ((molC)/(molC in chl)^-1) */')
2757 CALL WRITE_1D_RL(A_bio,nplank,INDEX_NONE,
2758 &'A_bio = ',
2759 &' /* constant for variable part of biosynthesis protein (molC molC
2760 &^-1 s) */')
2761 CALL WRITE_1D_RL(AP_RNA,nplank,INDEX_NONE,
2762 &'AP_RNA = ',
2763 &' /* constant for Variable part of RNA (molP molC^-1 s) */')
2764 CALL WRITE_1D_RL(AN_RNA,nplank,INDEX_NONE,
2765 &'AN_RNA = ',
2766 &' /* constant for Variable part of RNA (molN molN^-1 s) */')
2767 CALL WRITE_1D_RL(A_thy,nplank,INDEX_NONE,
2768 &'A_thy = ',
2769 &' /* (molC (molC in chl)^-1) */')
2770 CALL WRITE_1D_RL(Sf,nplank,INDEX_NONE,
2771 &'Sf = ',
2772 &' /* enhancement of photosynthesis due to size */')
2773 CALL WRITE_1D_RL(VI_min,nplank,INDEX_NONE,
2774 &'VI_min = ',
2775 &' /* minimum photosynthesis rate (molC (molC in Chl)^-1 s^-1) */')
2776 CALL WRITE_1D_RL(QC_chlMax,nplank,INDEX_NONE,
2777 &'QC_chlMax = ',
2778 &' /* maximum chlorophyll concentration at minimum light (molC molC
2779 &^-1) */')
2780 CALL WRITE_1D_RL(QnNoChl,nplank,INDEX_NONE,
2781 &'QnNoChl = ',
2782 &' /* minimum QN at zero growth rate (molN molC^-1) */')
2783 CALL WRITE_1D_RL(QpNoChl,nplank,INDEX_NONE,
2784 &'QpNoChl = ',
2785 &' /* minimum QP at zero growth rate (molP molC^-1) */')
2786 CALL WRITE_1D_RL(QfeNoChl,nplank,INDEX_NONE,
2787 &'QfeNoChl = ',
2788 &' /* minimum QFe at zero growth rate (molFe molC^-1) */')
2789 CALL WRITE_1D_RL(QC_const,nplank,INDEX_NONE,
2790 &'QC_const =',
2791 &' /* constant portion of the cell (molC molC^-1) */')
2792 #endif
2793
2794
2795
4e9fe45e8e Oliv*2796 CALL WRITE_1D_RL(alpha_mean,nplank,INDEX_NONE,
2797 &'alpha_mean =',
2798 &' /* mean initial slope of light curve (over wavebands) (mmol C s-
2799 &1 (uEin m^-2 s^-1)^-1 (mg Chl)^-1) */')
2800 CALL WRITE_1D_RL(chl2cmin,nplank,INDEX_NONE,
2801 &'chl2cmin =',
2802 &' /* minimum Chl:C ratio (function of chl2cmax and alpha_mean) (mg
2803 & Chl (mmol C)^-1) */')
2804
2805
2806
2807
2808 #ifdef ALLOW_RADTRANS
2809 CALL WRITE_0D_L(darwin_allomSpectra,INDEX_NONE,
2810 &'darwin_allomSpectra =',
2811 &' /* enable/disable allometric scaling of plankton absorption and'
2812 &' scattering spectra */')
2813 CALL WRITE_0D_C(darwin_waterAbsorbFile,-1,INDEX_NONE,
2814 &'darwin_waterAbsorbFile =',
2815 &' /* filename for reading water absorption and scattering spectra'
2816 &' */')
2817 CALL WRITE_0D_C(darwin_phytoAbsorbFile,-1,INDEX_NONE,
2818 &'darwin_phytoAbsorbFile =',
2819 &' /* filename for reading plankton absorption and scattering spect
2820 &ra */')
2821 CALL WRITE_0D_C(darwin_particleAbsorbFile,-1,INDEX_NONE,
2822 &'darwin_particleAbsorbFile =',
2823 &' /* filename for reading particle absorption and scattering spect
2824 &ra */')
2825 CALL WRITE_0D_RL(darwin_part_size_P,INDEX_NONE,
2826 &'darwin_part_size_P =',
2827 &' /* conversion factor for particle absorption and scattering spec
2828 &tra (mmol P/particle) */')
2829 CALL WRITE_0D_RL(darwin_bbmin,INDEX_NONE,
2830 &'darwin_bbmin =',
2831 &' /* minimum backscattering ratio (1/m) */')
2832 CALL WRITE_0D_RL(darwin_bbw,INDEX_NONE,
2833 &'darwin_bbw =',
2834 &' /* backscattering ratio of water */')
2835 CALL WRITE_0D_RL(darwin_lambda_aCDOM,INDEX_NONE,
2836 &'darwin_lambda_aCDOM =',
2837 &' /* reference wavelength for CDOM absorption spectra (nm) */')
2838 CALL WRITE_0D_RL(darwin_Sdom,INDEX_NONE,
2839 &'darwin_Sdom =',
2840 &' /* coefficient for CDOM absorption spectra (1/nm) */')
2841 CALL WRITE_0D_RL(darwin_aCDOM_fac,INDEX_NONE,
2842 &'darwin_aCDOM_fac =',
2843 &' /* factor for computing aCDOM from water+Chlorophyll absorption'
2844 &' */')
2845 CALL WRITE_0D_RL(darwin_rCDOM,INDEX_NONE,
2846 &'darwin_rCDOM =',
2847 &' /* recalcitrant CDOM concentration (mmol P/m3) */')
2848 CALL WRITE_0D_RL(darwin_RPOC,INDEX_NONE,
2849 &'darwin_RPOC =',
2850 &' /* recalcitrant POC concentration (mmol C/m3) */')
2851 CALL WRITE_0D_RL(darwin_aCarCell,INDEX_NONE,
2852 &'darwin_aCarCell =',
2853 &' /* coefficient coefficient for scaling plankton spectra (mg C/ce
2854 &ll) */')
2855 CALL WRITE_0D_RL(darwin_bCarCell,INDEX_NONE,
2856 &'darwin_bCarCell =',
2857 &' /* coefficient coefficient for scaling plankton spectra */')
2858 CALL WRITE_0D_RL(darwin_absorpSlope,INDEX_NONE,
2859 &'darwin_absorpSlope =',
2860 &' /* slope for scaled absorption spectra */')
2861 CALL WRITE_0D_RL(darwin_bbbSlope,INDEX_NONE,
2862 &'darwin_bbbSlope =',
2863 &' /* slope for scaled backscattering ratio spectra */')
2864 CALL WRITE_1D_RL(darwin_scatSwitchSizeLog,nlam,INDEX_NONE,
2865 &'darwin_scatSwitchSizeLog =',
2866 &' /* log of size for switching slopes (log10(um)) */')
2867 CALL WRITE_1D_RL(darwin_scatSlopeSmall,nlam,INDEX_NONE,
2868 &'darwin_scatSlopeSmall =',
2869 &' /* slope for small plankton */')
2870 CALL WRITE_1D_RL(darwin_scatSlopeLarge,nlam,INDEX_NONE,
2871 &'darwin_scatSlopeLarge =',
2872 &' /* slope for large plankton */')
2873 CALL WRITE_1D_RL(aw,nlam,INDEX_NONE,
2874 &'aw =',
2875 &' /* absorption coefficient for water */')
2876 CALL WRITE_1D_RL(bw,nlam,INDEX_NONE,
2877 &'bw =',
2878 &' /* total scattering coefficient for water */')
2879 CALL WRITE_1D_RL(apart_P,nlam,INDEX_NONE,
2880 &'apart_P =',
2881 &' /* P-specific absorption coefficient for detritus */')
2882 CALL WRITE_1D_RL(bpart_P,nlam,INDEX_NONE,
2883 &'bpart_P =',
2884 &' /* P-specific total scattering coefficient for detritus */')
2885 CALL WRITE_1D_RL(bbpart_P,nlam,INDEX_NONE,
2886 &'bbpart_P =',
2887 &' /* P-specific backscattering coefficient for detritus */')
2888 CALL WRITE_1D_RL(exCDOM,nlam,INDEX_NONE,
2889 &'exCDOM =',
2890 &' /* wavelength-dependent part of CDOM absorption spectrum */')
2891 DO l=1,nlam
2892 WRITE(msgBuf,'(A,I4,A)')'aphy_chl(:,', l, ') ='
2893 CALL WRITE_1D_RL(aphy_chl(1,l),nplank,INDEX_NONE,
2894 &msgBuf,
2895 &' /* phytoplankton Chl-specific absorption coefficient (m^2 (mg Ch
2896 &l)^-1) */')
2897 ENDDO
2898 DO l=1,nlam
2899 WRITE(msgBuf,'(A,I4,A)')'aphy_chl_ps(:,', l, ') ='
2900 CALL WRITE_1D_RL(aphy_chl_ps(1,l),nplank,INDEX_NONE,
2901 &msgBuf,
2902 &' /* part of aphy_chl that is used in photosynthesis (m^2 (mg Chl)
2903 &^-1) */')
2904 ENDDO
2905 DO l=1,nlam
2906 WRITE(msgBuf,'(A,I4,A)')'aphy_mgC(:,', l, ') ='
2907 CALL WRITE_1D_RL(aphy_mgC(1,l),nplank,INDEX_NONE,
2908 &msgBuf,
2909 &' /* plankton carbon-specific absorption coefficient (m^2 (mg C)^-
2910 &1) */')
2911 ENDDO
2912 DO l=1,nlam
2913 WRITE(msgBuf,'(A,I4,A)')'bphy_mgC(:,', l, ') ='
2914 CALL WRITE_1D_RL(bphy_mgC(1,l),nplank,INDEX_NONE,
2915 &msgBuf,
2916 &' /* carbon-specific total scattering coefficient (m^2 (mg C)^-1)'
2917 &' */')
2918 ENDDO
2919 DO l=1,nlam
2920 WRITE(msgBuf,'(A,I4,A)')'bbphy_mgC(:,', l, ') ='
2921 CALL WRITE_1D_RL(bbphy_mgC(1,l),nplank,INDEX_NONE,
2922 &msgBuf,
2923 &' /* carbon-specific backscattering coefficient (m^2 (mg C)^-1) */
2924 &')
2925 ENDDO
2926 #endif /* ALLOW_RADTRANS */
2927 DO l=1,nlam
2928 WRITE(msgBuf,'(A,I4,A)')'alphachl(:,', l, ') ='
2929 CALL WRITE_1D_RL(alphachl(1,l),nplank,INDEX_NONE,
2930 &msgBuf,
2931 &' /* Chlorophyll-specific initial slope for photosynthesis */')
2932 ENDDO
2933
2934
8fbfd1f382 Oliv*2935
2936 WRITE(msgBuf,'(A)')
2937 & 'DARWIN_CHECK: iPtr darwin PTRACERS_names'
2938 CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,
2939 & SQUEEZE_RIGHT,myThid)
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958 WRITE(msgBuf,'(A,I4,X,A,A32)') 'DARWIN_CHECK: ',
2959 & iDIC ,'DIC ', PTRACERS_names(iDIC )
2960 CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,
2961 & SQUEEZE_RIGHT,myThid)
2962
2963 WRITE(msgBuf,'(A,I4,X,A,A32)') 'DARWIN_CHECK: ',
2964 & iNO3 ,'NO3 ', PTRACERS_names(iNO3 )
2965 CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,
2966 & SQUEEZE_RIGHT,myThid)
2967
2968 WRITE(msgBuf,'(A,I4,X,A,A32)') 'DARWIN_CHECK: ',
2969 & iNO2 ,'NO2 ', PTRACERS_names(iNO2 )
2970 CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,
2971 & SQUEEZE_RIGHT,myThid)
2972
2973 WRITE(msgBuf,'(A,I4,X,A,A32)') 'DARWIN_CHECK: ',
2974 & iNH4 ,'NH4 ', PTRACERS_names(iNH4 )
2975 CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,
2976 & SQUEEZE_RIGHT,myThid)
2977
2978 WRITE(msgBuf,'(A,I4,X,A,A32)') 'DARWIN_CHECK: ',
2979 & iPO4 ,'PO4 ', PTRACERS_names(iPO4 )
2980 CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,
2981 & SQUEEZE_RIGHT,myThid)
2982
2983 WRITE(msgBuf,'(A,I4,X,A,A32)') 'DARWIN_CHECK: ',
2984 & iFeT ,'FeT ', PTRACERS_names(iFeT )
2985 CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,
2986 & SQUEEZE_RIGHT,myThid)
2987
2988 WRITE(msgBuf,'(A,I4,X,A,A32)') 'DARWIN_CHECK: ',
2989 & iSiO2 ,'SiO2 ', PTRACERS_names(iSiO2 )
2990 CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,
2991 & SQUEEZE_RIGHT,myThid)
2992
2993 WRITE(msgBuf,'(A,I4,X,A,A32)') 'DARWIN_CHECK: ',
2994 & iDOC ,'DOC ', PTRACERS_names(iDOC )
2995 CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,
2996 & SQUEEZE_RIGHT,myThid)
2997
2998 WRITE(msgBuf,'(A,I4,X,A,A32)') 'DARWIN_CHECK: ',
2999 & iDON ,'DON ', PTRACERS_names(iDON )
3000 CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,
3001 & SQUEEZE_RIGHT,myThid)
3002
3003 WRITE(msgBuf,'(A,I4,X,A,A32)') 'DARWIN_CHECK: ',
3004 & iDOP ,'DOP ', PTRACERS_names(iDOP )
3005 CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,
3006 & SQUEEZE_RIGHT,myThid)
3007
3008 WRITE(msgBuf,'(A,I4,X,A,A32)') 'DARWIN_CHECK: ',
3009 & iDOFe ,'DOFe ', PTRACERS_names(iDOFe )
3010 CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,
3011 & SQUEEZE_RIGHT,myThid)
3012
3013 WRITE(msgBuf,'(A,I4,X,A,A32)') 'DARWIN_CHECK: ',
3014 & iPOC ,'POC ', PTRACERS_names(iPOC )
3015 CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,
3016 & SQUEEZE_RIGHT,myThid)
3017
3018 WRITE(msgBuf,'(A,I4,X,A,A32)') 'DARWIN_CHECK: ',
3019 & iPON ,'PON ', PTRACERS_names(iPON )
3020 CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,
3021 & SQUEEZE_RIGHT,myThid)
3022
3023 WRITE(msgBuf,'(A,I4,X,A,A32)') 'DARWIN_CHECK: ',
3024 & iPOP ,'POP ', PTRACERS_names(iPOP )
3025 CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,
3026 & SQUEEZE_RIGHT,myThid)
3027
3028 WRITE(msgBuf,'(A,I4,X,A,A32)') 'DARWIN_CHECK: ',
3029 & iPOFe ,'POFe ', PTRACERS_names(iPOFe )
3030 CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,
3031 & SQUEEZE_RIGHT,myThid)
3032
3033 WRITE(msgBuf,'(A,I4,X,A,A32)') 'DARWIN_CHECK: ',
3034 & iPOSi ,'POSi ', PTRACERS_names(iPOSi )
3035 CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,
3036 & SQUEEZE_RIGHT,myThid)
3037
3038 WRITE(msgBuf,'(A,I4,X,A,A32)') 'DARWIN_CHECK: ',
3039 & iPIC ,'PIC ', PTRACERS_names(iPIC )
3040 CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,
3041 & SQUEEZE_RIGHT,myThid)
3042
3043 #ifdef DARWIN_ALLOW_CARBON
3044 WRITE(msgBuf,'(A,I4,X,A,A32)') 'DARWIN_CHECK: ',
3045 & iALK ,'ALK ', PTRACERS_names(iALK )
3046 CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,
3047 & SQUEEZE_RIGHT,myThid)
3048 #endif
3049
3050 #ifdef DARWIN_ALLOW_CARBON
3051 WRITE(msgBuf,'(A,I4,X,A,A32)') 'DARWIN_CHECK: ',
3052 & iO2 ,'O2 ', PTRACERS_names(iO2 )
3053 CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,
3054 & SQUEEZE_RIGHT,myThid)
3055 #endif
3056
3057 #ifdef DARWIN_ALLOW_CDOM
3058 DO j = 1, eCDOM+1-iCDOM
3059 iPtr = iCDOM + j - 1
3060 WRITE(msgBuf,'(A,I4,X,A,I4,X,A32)') 'DARWIN_CHECK: ',
3061 & iPtr, 'CDOM ', j, PTRACERS_names(iPtr)
3062 CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,
3063 & SQUEEZE_RIGHT,myThid)
3064 ENDDO
3065 #endif
3066
3067 DO j = 1, ec+1-ic
3068 iPtr = ic + j - 1
3069 WRITE(msgBuf,'(A,I4,X,A,I4,X,A32)') 'DARWIN_CHECK: ',
3070 & iPtr, 'c ', j, PTRACERS_names(iPtr)
3071 CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,
3072 & SQUEEZE_RIGHT,myThid)
3073 ENDDO
3074
3075 #ifdef DARWIN_ALLOW_NQUOTA
3076 DO j = 1, en+1-in
3077 iPtr = in + j - 1
3078 WRITE(msgBuf,'(A,I4,X,A,I4,X,A32)') 'DARWIN_CHECK: ',
3079 & iPtr, 'n ', j, PTRACERS_names(iPtr)
3080 CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,
3081 & SQUEEZE_RIGHT,myThid)
3082 ENDDO
3083 #endif
3084
3085 #ifdef DARWIN_ALLOW_PQUOTA
3086 DO j = 1, ep+1-ip
3087 iPtr = ip + j - 1
3088 WRITE(msgBuf,'(A,I4,X,A,I4,X,A32)') 'DARWIN_CHECK: ',
3089 & iPtr, 'p ', j, PTRACERS_names(iPtr)
3090 CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,
3091 & SQUEEZE_RIGHT,myThid)
3092 ENDDO
3093 #endif
3094
3095 #ifdef DARWIN_ALLOW_FEQUOTA
3096 DO j = 1, efe+1-ife
3097 iPtr = ife + j - 1
3098 WRITE(msgBuf,'(A,I4,X,A,I4,X,A32)') 'DARWIN_CHECK: ',
3099 & iPtr, 'fe ', j, PTRACERS_names(iPtr)
3100 CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,
3101 & SQUEEZE_RIGHT,myThid)
3102 ENDDO
3103 #endif
3104
3105 #ifdef DARWIN_ALLOW_SIQUOTA
3106 DO j = 1, esi+1-isi
3107 iPtr = isi + j - 1
3108 WRITE(msgBuf,'(A,I4,X,A,I4,X,A32)') 'DARWIN_CHECK: ',
3109 & iPtr, 'si ', j, PTRACERS_names(iPtr)
3110 CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,
3111 & SQUEEZE_RIGHT,myThid)
3112 ENDDO
3113 #endif
3114
3115 #ifdef DARWIN_ALLOW_CHLQUOTA
3116 DO j = 1, eChl+1-iChl
3117 iPtr = iChl + j - 1
3118 WRITE(msgBuf,'(A,I4,X,A,I4,X,A32)') 'DARWIN_CHECK: ',
3119 & iPtr, 'Chl ', j, PTRACERS_names(iPtr)
3120 CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,
3121 & SQUEEZE_RIGHT,myThid)
3122 ENDDO
3123 #endif
8fb4461f75 Oliv*3124
3125 #ifdef DARWIN_ALLOW_CSTORE
3126 DO j = 1, ech+1-ich
3127 iPtr = ich + j - 1
3128 WRITE(msgBuf,'(A,I4,X,A,I4,X,A32)') 'DARWIN_CHECK: ',
3129 & iPtr, 'ch ', j, PTRACERS_names(iPtr)
3130 CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,
3131 & SQUEEZE_RIGHT,myThid)
3132 ENDDO
3133 #endif
3134
8fbfd1f382 Oliv*3135
30cf4ad023 Oliv*3136
3137
3138
3139 #ifndef DARWIN_RANDOM_TRAITS
3140 WRITE(msgBuf,'(A)') 'DARWIN_CHECK:'
3141 CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,
3142 & SQUEEZE_RIGHT,myThid)
3143 WRITE(msgBuf,'(A,A4,X,A4,X,A24,X,A4,X,A32)')
3144 & 'DARWIN_CHECK: ','iPtr','iPlk','ESD','grp','grp_name'
3145 CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,
3146 & SQUEEZE_RIGHT,myThid)
3147 DO j = 1, ec+1-ic
3148 iPtr = ic + j - 1
3149 dm = (6 _d 0*biovol(j))**(1 _d 0/3 _d 0)
3150 g = group(j)
3151 gname = grp_names(g)
3152 WRITE(msgBuf,'(A,I4,X,I4,X,E24.16,X,I4,X,A32)')
3153 & 'DARWIN_CHECK: ', iPtr, j, dm, g, gname
3154 CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,
3155 & SQUEEZE_RIGHT,myThid)
3156 ENDDO
3157 #endif
3158
674bd6922c Oliv*3159
3160
3161
3162 #ifdef DARWIN_DEBUG
3163 DO np = 1, nPx*nPy
3164 DO bj=1,nSy
3165 DO bi=1,nSx
3166 iGjLoc = 0
3167 jGjLoc = 1
3168 #ifdef ALLOW_USE_MPI
3169 iBase = mpi_myXGlobalLo(np)-1 + (bi-1)*sNx
3170 jBase = mpi_myYGlobalLo(np)-1 + (bj-1)*sNy
3171 #else
3172 iBase = myXGlobalLo-1 + (bi-1)*sNx
3173 jBase = myYGlobalLo-1 + (bj-1)*sNy
3174 #endif
3175 #ifdef ALLOW_EXCH2
3176 IF ( W2_useE2ioLayOut ) THEN
3177 tN = W2_procTileList(bi,bj,np)
3178 iBase = exch2_txGlobalo(tN)-1
3179 jBase = exch2_tyGlobalo(tN)-1
3180 IF ( exch2_mydNx(tN) .GT. exch2_global_Nx ) THEN
3181
3182 iGjLoc = 0
3183 jGjLoc = exch2_mydNx(tN) / exch2_global_Nx
3184 ELSEIF ( exch2_tNy(tN) .GT. exch2_global_Ny ) THEN
3185
3186 iGjLoc = exch2_mydNx(tN)
3187 jGjLoc = 0
3188 ELSE
3189
3190 iGjLoc = 0
3191 jGjLoc = 1
3192 ENDIF
3193 ENDIF
3194 #endif /* ALLOW_EXCH2 */
3195 DO j=1,sNy
3196 iG = iBase + (j-1)*iGjLoc
3197 jG = jBase + (j-1)*jGjLoc + 1
3198 DO i=1,sNx
3199 IF (iG+i.EQ.iDEBUG.AND.jG.EQ.jDEBUG) THEN
3200 CALL PRINT_MESSAGE(' ',standardMessageUnit,
3201 & SQUEEZE_RIGHT,myThid)
3202 WRITE(msgBuf,'(A,2I10)')'DARWIN_DEBUG: iG jG',
3203 & iDEBUG,jDEBUG
3204 CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,
3205 & SQUEEZE_RIGHT,myThid)
3206 WRITE(msgBuf,'(A,I10)')'DARWIN_DEBUG: proc ',np-1
3207 CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,
3208 & SQUEEZE_RIGHT,myThid)
3209 WRITE(msgBuf,'(A,2I10)')'DARWIN_DEBUG: bi bj',bi,bj
3210 CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,
3211 & SQUEEZE_RIGHT,myThid)
3212 WRITE(msgBuf,'(A,2I10)')'DARWIN_DEBUG: i j ',i,j
3213 CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,
3214 & SQUEEZE_RIGHT,myThid)
3215 WRITE(msgBuf,'(A,2I10)')'DARWIN_DEBUG: iBase jBase',
3216 & iBase,jBase
3217 CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,
3218 & SQUEEZE_RIGHT,myThid)
3219 bufl(1) = XC(i,j,bi,bj)
3220 bufl(2) = YC(i,j,bi,bj)
3221 bufl(3) = R_low(i,j,bi,bj)
3222 CALL GATHER_VEC_R8(bufg, bufl, 3, myThid)
3223 #ifdef ALLOW_USE_MPI
3224 IF( mpiMyId .EQ. 0 ) THEN
3225 #else
3226 IF( .TRUE. ) THEN
3227 #endif
3228 WRITE(msgBuf,'(A,2E24.16)')'DARWIN_DEBUG: XC YC',
3229 & bufg(1,np), bufg(2,np)
3230 CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,
3231 & SQUEEZE_RIGHT,myThid)
3232 WRITE(msgBuf,'(A,E24.16)')'DARWIN_DEBUG: R_low',
3233 & bufg(3,np)
3234 CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,
3235 & SQUEEZE_RIGHT,myThid)
3236 ENDIF
3237 ENDIF
3238
3239 ENDDO
3240
3241 ENDDO
3242
3243 ENDDO
3244 ENDDO
3245
3246 ENDDO
3247 #endif /* ALLOW_DEBUG */
3248
3249 _END_MASTER( myThid )
8fbfd1f382 Oliv*3250
3251 #endif /* ALLOW_DARWIN */
3252
3253 RETURN
3254 END