File indexing completed on 2025-12-02 20:42:57 UTC
view on githubraw file Latest commit a092808e on 2025-12-02 20:09:45 UTC
8fbfd1f382 Oliv*0001 #include "DARWIN_OPTIONS.h"
0002
0003 SUBROUTINE DARWIN_READ_TRAITS(iUnit,oUnit,myThid)
0004 IMPLICIT NONE
0005 #include "SIZE.h"
0006 #include "EEPARAMS.h"
0007 #include "PARAMS.h"
0008 #ifdef ALLOW_RADTRANS
0009 #include "RADTRANS_SIZE.h"
0010 #include "RADTRANS_PARAMS.h"
0011 #endif
0012 #include "DARWIN_SIZE.h"
0013 #include "DARWIN_INDICES.h"
0014 #include "DARWIN_RADTRANS.h"
0015 #include "DARWIN_PARAMS.h"
0016 #include "DARWIN_TRAITPARAMS.h"
0017 #include "DARWIN_TRAITS.h"
0018
0019 CHARACTER*(MAX_LEN_MBUF) msgBuf
0020 INTEGER iUnit,oUnit,myThid
0021
0022 #ifdef ALLOW_DARWIN
0023
0024 INTEGER jp
0025 INTEGER jp2
0026 INTEGER jz
0027 INTEGER l
0028 INTEGER iopt
0029
0030 NAMELIST/DARWIN_TRAITS/
0031 & isPhoto,
0032 & bactType,
0033 & isAerobic,
0034 & isDenit,
0035 & hasSi,
0036 & hasPIC,
0037 & diazo,
0038 & useNH4,
0039 & useNO2,
0040 & useNO3,
0041 & combNO,
0042 & isPrey,
0043 & isPred,
5910c7e5d2 Oliv*0044 & tempMort,
0045 & tempMort2,
0046 & tempGraz,
8fbfd1f382 Oliv*0047 & Xmin,
0048 & amminhib,
0049 & acclimtimescl,
0050 & mort,
0051 & mort2,
0052 & ExportFracMort,
0053 & ExportFracMort2,
0054 & ExportFracExude,
c7b6c66d45 Oliv*0055 & FracExudeC,
8fbfd1f382 Oliv*0056 & phytoTempCoeff,
0057 & phytoTempExp1,
09b16dd232 Oliv*0058 & phytoTempAe,
8fbfd1f382 Oliv*0059 & phytoTempExp2,
0060 & phytoTempOptimum,
0061 & phytoDecayPower,
09b16dd232 Oliv*0062 & hetTempAe,
0063 & hetTempExp2,
0064 & hetTempOptimum,
0065 & hetDecayPower,
0066 & grazTempAe,
0067 & grazTempExp2,
0068 & grazTempOptimum,
0069 & grazDecayPower,
8fbfd1f382 Oliv*0070 & R_NC,
0071 & R_PC,
0072 & R_SiC,
0073 & R_FeC,
0074 & R_ChlC,
0075 & R_PICPOC,
0076 & biosink,
0077 & bioswim,
5e7acb36b1 daat*0078 & bioswimDVM,
8fbfd1f382 Oliv*0079 & respRate,
0080 & PCmax,
0081 & Qnmax,
0082 & Qnmin,
0083 & Qpmax,
0084 & Qpmin,
0085 & Qsimax,
0086 & Qsimin,
0087 & Qfemax,
0088 & Qfemin,
0089 & VmaxNH4,
0090 & VmaxNO2,
0091 & VmaxNO3,
0092 & VmaxN,
0093 & VmaxPO4,
0094 & VmaxSiO2,
0095 & VmaxFeT,
0096 & ksatNH4,
0097 & ksatNO2,
0098 & ksatNO3,
0099 & ksatPO4,
0100 & ksatSiO2,
0101 & ksatFeT,
a092808e6b shlo*0102 & hillnumDIN,
0103 & hillnumPO4,
0104 & hillnumFeT,
0105 & hillnumSiO2,
8fbfd1f382 Oliv*0106 & kexcc,
0107 & kexcn,
0108 & kexcp,
0109 & kexcsi,
0110 & kexcfe,
0111 #ifdef DARWIN_ALLOW_GEIDER
0112 & inhibGeider,
0113 #else
0114 & ksatPAR,
0115 & kinhPAR,
0116 #endif
0117 & mQyield,
0118 & chl2cmax,
0119 & grazemax,
0120 & kgrazesat,
0121 & palat,
0122 & asseff,
0123 & ExportFracPreyPred,
0124 & yield,
0125 & yieldO2,
0126 & yieldNO3,
0127 & ksatPON,
0128 & ksatPOC,
0129 & ksatPOP,
0130 & ksatPOFe,
0131 & ksatDON,
0132 & ksatDOC,
0133 & ksatDOP,
5e7acb36b1 daat*0134 & ksatDOFe,
0135 & PARpref,
0136 & mortmaxDVM,
0137 & ksatDVM,
0138 & ksatPARDVM,
0139 & fracPARmort,
0140 & ExportFracDVM
a092808e6b shlo*0141 #ifdef DARWIN_MACROMOLECULAR_GROWTH
0142 & ,Y_CP_Plip,
0143 & Y_CN_protein,
0144 & Y_NC_chl,
0145 & Y_CN_cyano,
0146 & Y_PN_nucacid,
0147 & Y_CN_DNA,
0148 & Y_CN_RNA,
0149 & Y_THY_P,
0150 & Y_FeN_photo,
0151 & ECo2Prod,
0152 & maintConsum,
0153 & VI_max,
0154 & A_I,
0155 & QC_other,
0156 & QC_pro_other,
0157 & QP_other,
0158 & QP_RNA_min,
0159 & QC_DNA,
0160 & QN_sto_max,
0161 & Qp_max,
0162 & Qfe_max,
0163 & A_pho,
0164 & A_bio,
0165 & AP_RNA,
0166 & Sf
0167 #endif
8fbfd1f382 Oliv*0168
0169 NAMELIST/DARWIN_DEPENDENT_TRAITS/
0170 #ifndef DARWIN_ALLOW_GEIDER
0171 & normI,
0172 #endif
0173 #ifdef ALLOW_RADTRANS
0174 & aptype,
0175 #endif
0176 & biovol,
0177 & group,
0178 & igroup,
0179 & qcarbon,
0180 & biovol_bygroup,
0181 & alpha_mean,
7e97ec2956 Oliv*0182 & chl2cmin
a092808e6b shlo*0183 #ifdef DARWIN_MACROMOLECULAR_GROWTH
0184 & ,QN_pro_other
0185 & ,QN_RNA_min
0186 & ,QC_RNA_min
0187 & ,QN_DNA
0188 & ,QP_DNA
0189 & ,A_thy
0190 & ,AN_RNA
0191 & ,VI_min
0192 & ,QC_chlMax
0193 & ,QnNoChl
0194 & ,QpNoChl
0195 & ,QfeNoChl
0196 & ,QC_const
0197 #endif
8fbfd1f382 Oliv*0198
0199
0200 #ifdef ALLOW_RADTRANS
0201 NAMELIST/DARWIN_RADTRANS_TRAITS/
0202 & aphy_chl,
0203 & aphy_chl_ps,
f61b1017e2 Oliv*0204 & aphy_mgC,
8fbfd1f382 Oliv*0205 & bphy_mgC,
0206 & bbphy_mgC
0207 #endif
0208
0209 NAMELIST/DARWIN_RT_DEPTRAITS/
0210 & alphachl
0211
0212
0213
0214
0215
0216 READ(UNIT=iUnit, NML=DARWIN_TRAITS)
0217
0218
0219
0220
0221
0222 #ifdef ALLOW_RADTRANS
0223 READ(UNIT=iUnit, NML=DARWIN_RADTRANS_TRAITS)
0224 #endif
0225
b3165fc3b9 Oliv*0226
0227
0228
8fbfd1f382 Oliv*0229
0230 DO jp = 1,nPlank
0231 vmaxNH4(jp) = vmaxNH4(jp) * useNH4(jp)
0232 vmaxNO2(jp) = vmaxNO2(jp) * useNO2(jp)
0233 vmaxNO3(jp) = vmaxNO3(jp) * useNO3(jp)
0234 #ifndef DARWIN_ALLOW_NQUOTA
0235 IF (diazo(jp).NE.0) THEN
0236 useNH4(jp) = 0
0237 useNO2(jp) = 0
0238 useNO3(jp) = 0
0239 ENDIF
0240 #endif
0241 IF (useNO3(jp).EQ.0 .OR. useNO2(jp).EQ.0) THEN
0242 combNO(jp)=0
0243 ENDIF
7d9a808b68 Oliv*0244
8fbfd1f382 Oliv*0245 IF (hasSi(jp) .EQ. 0) THEN
0246 vmaxSiO2(jp) = 0.0 _d 0
0247 ksatSiO2(jp) = 0.0 _d 0
0248 R_SiC(jp) = 0.0 _d 0
0249 ENDIF
7d9a808b68 Oliv*0250
8fbfd1f382 Oliv*0251 IF (hasPIC(jp) .EQ. 0) THEN
0252 R_PICPOC(jp) = 0.0 _d 0
0253 ENDIF
0254 ENDDO
0255
0256 #ifdef ALLOW_RADTRANS
0257
0258 DO jp = 1, nPhoto
0259 alpha_mean(jp) = 0.0 _d 0
0260 DO l = 1, nlam
0261 alphachl(jp,l) = mQyield(jp) * aphy_chl_ps(jp,l)
0262 alpha_mean(jp) = alpha_mean(jp) + RT_wbWidths(l)*alphachl(jp,l)
0263 ENDDO
0264 alpha_mean(jp) = alpha_mean(jp)/RT_wbTotalWidth
0265 ENDDO
0266 #else
0267 DO jp = 1, nPhoto
0268 alphachl(jp,1) = mQyield(jp) * aphy_chl_ave
0269 alpha_mean(jp) = alphachl(jp,1)
0270 ENDDO
0271 #endif /* ALLOW_RADTRANS */
0272
0273 #ifdef ALLOW_RADTRANS
0274 DO jp = 1, nplank
c0e8b2e1c0 Oliv*0275 IF (pcmax(jp) .GT. 0 _d 0) THEN
0276 chl2cmin(jp)=chl2cmax(jp)/
0277 & (1+(chl2cmax(jp)* alpha_mean(jp) *2000. _d 0)/(2*pcmax(jp)))
0278 ELSE
0279 chl2cmin(jp) = 0 _d 0
0280 ENDIF
8fbfd1f382 Oliv*0281 ENDDO
0282 #else
0283 DO jp = 1, nPhoto
0284 chl2cmin(jp) = 0. _d 0
0285 ENDDO
0286 #endif
0287
0288 #ifndef DARWIN_ALLOW_GEIDER
0289 DO jp = 1, nplank
0290 IF (ksatPAR(jp)*kinhPAR(jp) .GT. 0.0) THEN
0291 normI(jp) = 1.0/(ksatPAR(jp)/(ksatPAR(jp)+kinhPAR(jp))*
0292 & EXP(kinhPAR(jp)/ksatPAR(jp)*
0293 & LOG(kinhPAR(jp)/(ksatPAR(jp)+kinhPAR(jp)))))
0294 ELSE
0295 normI(jp) = 1.0
0296 ENDIF
0297 ENDDO
0298 #endif
0299
a092808e6b shlo*0300 #ifdef DARWIN_MACROMOLECULAR_GROWTH
0301 DO jp = 1,nplank
0302 QN_pro_other(jp) = QC_pro_other(jp)/Y_CN_protein(jp)
0303 QN_RNA_min(jp) = QP_RNA_min(jp)/Y_PN_nucacid(jp)
0304 QC_RNA_min(jp) = QN_RNA_min(jp)*Y_CN_RNA(jp)
0305 QN_DNA(jp) = QC_DNA(jp)/Y_CN_DNA(jp)
0306 QP_DNA(jp) = QN_DNA(jp)*Y_PN_nucacid(jp)
0307 A_thy(jp) = Y_THY_P(jp)*Y_CP_Plip(jp)
0308 AN_RNA(jp) = AP_RNA(jp)*Y_CN_protein(jp)/Y_PN_nucacid(jp)
0309
0310 QC_const(jp) = QC_pro_other(jp) + QN_RNA_min(jp)*Y_CN_RNA(jp) +
0311 & QC_DNA(jp) + QC_other(jp)
0312 VI_min(jp) = maintConsum(jp)*
0313 & (1. + A_thy(jp) + A_pho(jp))/(1 - QC_const(jp))
0314 QC_chlMax(jp) = maintConsum(jp)/VI_min(jp)
0315
0316 QnNoChl(jp) = QN_DNA(jp) + QN_RNA_min(jp) + QN_pro_other(jp)
0317 QpNoChl(jp) = QP_RNA_min(jp) + QN_DNA(jp)*Y_PN_nucacid(jp)
0318 & + QP_other(jp)
0319 QfeNoChl(jp) = 0.0 _d 0
0320 ENDDO
0321 #endif
0322
7d9a808b68 Oliv*0323
0324
0325
8fbfd1f382 Oliv*0326
7d9a808b68 Oliv*0327
8fbfd1f382 Oliv*0328 DO jp=1,nplank
0329 IF (isPhoto(jp) .NE. 0) THEN
0330 IF (jp.GT.nPhoto) THEN
0331 WRITE(msgBuf,'(2A,I4)') 'DARWIN_READTRAITS: ERROR: ',
0332 & 'isPhoto set for type outside of photo range: ', jp
0333 CALL PRINT_ERROR( msgBuf , 1)
0334 STOP 'ABNORMAL END: S/R DARWIN_READTRAITS'
0335 ENDIF
0336 #ifdef DARWIN_ALLOW_CHLQUOTA
0337 IF (jp.GT.nPhoto) THEN
0338 WRITE(msgBuf,'(2A,I4)') 'DARWIN_READTRAITS: ERROR: ',
0339 & 'isPhoto set for type outside of Chl range: ', jp
0340 CALL PRINT_ERROR( msgBuf , 1)
0341 STOP 'ABNORMAL END: S/R DARWIN_READTRAITS'
0342 ENDIF
0343 #endif
0344 ELSE
28fd60052e Oliv*0345 IF (bacttype(jp) .EQ. 0) THEN
0346 PCmax(jp) = 0 _d 0
0347 ENDIF
8fbfd1f382 Oliv*0348 vmaxPO4(jp) = 0 _d 0
0349 vmaxNO3(jp) = 0 _d 0
0350 vmaxNO2(jp) = 0 _d 0
0351 vmaxNH4(jp) = 0 _d 0
0352 vmaxFeT(jp) = 0 _d 0
0353 vmaxSiO2(jp) = 0 _d 0
0354 ENDIF
0355
0356 IF (bactType(jp) .NE. 0) THEN
0357 IF (isAerobic(jp).NE.0 .AND. isDenit(jp).NE.0) THEN
0358 WRITE(msgBuf,'(2A,I4)') 'DARWIN_READTRAITS: ERROR: ',
0359 & 'isAerobic and isDenit both set: ', jp
0360 CALL PRINT_ERROR( msgBuf , 1)
0361 STOP 'ABNORMAL END: S/R DARWIN_READTRAITS'
0362 ENDIF
d698ad5f8a Oliv*0363 IF (R_SiC(jp).NE.0) THEN
0364 WRITE(msgBuf,'(2A,I4)') 'DARWIN_READTRAITS: ERROR: ',
0365 & 'bacteria has R_SiC.NE.0: ', jp
0366 CALL PRINT_ERROR( msgBuf , 1)
0367 STOP 'ABNORMAL END: S/R DARWIN_READTRAITS'
0368 ENDIF
72b872d655 Oliv*0369 IF (R_PICPOC(jp).NE.0) THEN
0370 WRITE(msgBuf,'(2A,I4)') 'DARWIN_READTRAITS: ERROR: ',
0371 & 'bacteria has R_PICPOC.NE.0: ', jp
0372 CALL PRINT_ERROR( msgBuf , 1)
0373 STOP 'ABNORMAL END: S/R DARWIN_READTRAITS'
0374 ENDIF
8fbfd1f382 Oliv*0375 ELSE
0376 IF (isAerobic(jp).NE.0) THEN
0377 WRITE(msgBuf,'(2A,I4)') 'DARWIN_READTRAITS: ERROR: ',
0378 & 'isAerobic set for non-bacteria type: ', jp
0379 CALL PRINT_ERROR( msgBuf , 1)
0380 STOP 'ABNORMAL END: S/R DARWIN_READTRAITS'
0381 ENDIF
0382 IF (isDenit(jp).NE.0) THEN
0383 WRITE(msgBuf,'(2A,I4)') 'DARWIN_READTRAITS: ERROR: ',
0384 & 'isDenit set for non-bacteria type: ', jp
0385 CALL PRINT_ERROR( msgBuf , 1)
0386 STOP 'ABNORMAL END: S/R DARWIN_READTRAITS'
0387 ENDIF
0388 ENDIF
0389
0390 DO jz=1,nplank
0391 IF (palat(jp,jz) .NE. 0.) THEN
0392 IF (isPrey(jp) .EQ. 0) THEN
0393 WRITE(msgBuf,'(2A,2I4)') 'DARWIN_READTRAITS: WARNING: ',
0394 & 'palat set for type outside of prey range: ', jp, jz
0395 CALL PRINT_ERROR( msgBuf , 1)
0396 IF (darwin_strict_check) THEN
0397 STOP 'palat set outside of prey range'
0398 ELSE
0399 palat(jp,jz) = 0. _d 0
0400 ENDIF
0401 ENDIF
0402 IF (isPred(jz) .EQ. 0) THEN
0403 WRITE(msgBuf,'(2A,2I4)') 'DARWIN_READTRAITS: WARNING: ',
0404 & 'palat set for type outside of predator range: ', jp, jz
0405 CALL PRINT_ERROR( msgBuf , 1)
0406 IF (darwin_strict_check) THEN
0407 STOP 'palat set outside of predator range'
0408 ELSE
0409 palat(jp,jz) = 0. _d 0
0410 ENDIF
0411 ENDIF
0412 ENDIF
0413 ENDDO
0414 ENDDO
0415
0416
0417 DO jp=1,nplank
0418 isPrey(jp) = 0
0419 isPred(jp) = 0
0420 ENDDO
0421 DO jp=1,nplank
0422 DO jz=1,nplank
0423 IF (palat(jp,jz) .NE. 0.) THEN
0424 isPrey(jp) = 1
0425 isPred(jz) = 1
0426 ENDIF
0427 ENDDO
0428 ENDDO
0429
72b872d655 Oliv*0430 DO jz=1,nplank
0431 IF (isPred(jz) .NE. 0 .AND. R_PICPOC(jz).NE.0) THEN
0432 WRITE(msgBuf,'(2A,I4)') 'DARWIN_READTRAITS: ERROR: ',
0433 & 'predator has R_PICPOC.NE.0: ', jz
0434 CALL PRINT_ERROR( msgBuf , 1)
0435 STOP 'ABNORMAL END: S/R DARWIN_READTRAITS'
0436 ENDIF
0437 ENDDO
0438
7d9a808b68 Oliv*0439
0440
0441
8fbfd1f382 Oliv*0442 DO jp=1,nplank
0443 #ifndef DARWIN_ALLOW_NQUOTA
c7b6c66d45 Oliv*0444 #ifndef DARWIN_ALLOW_CSTORE
8fbfd1f382 Oliv*0445 vmaxNH4(jp) = DARWIN_UNUSED
0446 vmaxNO2(jp) = DARWIN_UNUSED
0447 vmaxNO3(jp) = DARWIN_UNUSED
0448 vmaxN(jp) = DARWIN_UNUSED
c7b6c66d45 Oliv*0449 #endif
8fbfd1f382 Oliv*0450 Qnmax(jp) = DARWIN_UNUSED
0451 Qnmin(jp) = DARWIN_UNUSED
0452 #endif
0453 #ifndef DARWIN_ALLOW_PQUOTA
c7b6c66d45 Oliv*0454 #ifndef DARWIN_ALLOW_CSTORE
8fbfd1f382 Oliv*0455 vmaxPO4(jp) = DARWIN_UNUSED
c7b6c66d45 Oliv*0456 #endif
8fbfd1f382 Oliv*0457 Qpmax(jp) = DARWIN_UNUSED
0458 Qpmin(jp) = DARWIN_UNUSED
0459 #endif
0460 #ifndef DARWIN_ALLOW_FEQUOTA
c7b6c66d45 Oliv*0461 #ifndef DARWIN_ALLOW_CSTORE
8fbfd1f382 Oliv*0462 vmaxFeT(jp) = DARWIN_UNUSED
c7b6c66d45 Oliv*0463 #endif
8fbfd1f382 Oliv*0464 Qfemax(jp) = DARWIN_UNUSED
0465 Qfemin(jp) = DARWIN_UNUSED
0466 #endif
c7b6c66d45 Oliv*0467 #ifndef DARWIN_ALLOW_SIQUOTA
0468 #ifndef DARWIN_ALLOW_CSTORE
0469 vmaxSiO2(jp) = DARWIN_UNUSED
0470 #endif
0471 Qsimax(jp) = DARWIN_UNUSED
0472 Qsimin(jp) = DARWIN_UNUSED
0473 #endif
8fbfd1f382 Oliv*0474 #ifndef DARWIN_ALLOW_EXUDE
0475 kexcc(jp) = DARWIN_UNUSED
0476 kexcn(jp) = DARWIN_UNUSED
0477 kexcp(jp) = DARWIN_UNUSED
0478 kexcsi(jp) = DARWIN_UNUSED
0479 kexcfe(jp) = DARWIN_UNUSED
0480 #endif
0481 IF (jp.GT.nPhoto) THEN
0482 diazo(jp) = DARWIN_UNUSED
0483 useNH4(jp) = DARWIN_UNUSED
0484 useNO2(jp) = DARWIN_UNUSED
0485 useNO3(jp) = DARWIN_UNUSED
0486 combNO(jp) = DARWIN_UNUSED
0487 amminhib(jp) = DARWIN_UNUSED
0488 acclimtimescl(jp) = DARWIN_UNUSED
0489
0490 phytoTempCoeff(jp) = DARWIN_UNUSED
0491 phytoTempExp1(jp) = DARWIN_UNUSED
09b16dd232 Oliv*0492 phytoTempAe(jp) = DARWIN_UNUSED
8fbfd1f382 Oliv*0493 phytoTempExp2(jp) = DARWIN_UNUSED
0494 phytoTempOptimum(jp) = DARWIN_UNUSED
0495 phytoDecayPower(jp) = DARWIN_UNUSED
0496
0497 vmaxNH4(jp) = DARWIN_UNUSED
0498 vmaxNO2(jp) = DARWIN_UNUSED
0499 vmaxNO3(jp) = DARWIN_UNUSED
0500 vmaxPO4(jp) = DARWIN_UNUSED
0501 vmaxSiO2(jp) = DARWIN_UNUSED
0502 vmaxFeT(jp) = DARWIN_UNUSED
0503
0504 ksatNH4(jp) = DARWIN_UNUSED
0505 ksatNO2(jp) = DARWIN_UNUSED
0506 ksatNO3(jp) = DARWIN_UNUSED
0507 ksatPO4(jp) = DARWIN_UNUSED
0508 ksatSiO2(jp) = DARWIN_UNUSED
0509 ksatFeT(jp) = DARWIN_UNUSED
0510
a092808e6b shlo*0511 hillnumDIN(jp) = DARWIN_UNUSED
0512 hillnumPO4(jp) = DARWIN_UNUSED
0513 hillnumFeT(jp) = DARWIN_UNUSED
0514 hillnumSiO2(jp) = DARWIN_UNUSED
0515
8fbfd1f382 Oliv*0516 #ifdef DARWIN_ALLOW_GEIDER
0517 inhibGeider(jp) = DARWIN_UNUSED
0518 #else
0519 ksatPAR(jp) = DARWIN_UNUSED
0520 kinhPAR(jp) = DARWIN_UNUSED
0521 normI(jp) = DARWIN_UNUSED
0522 #endif
0523 mQyield(jp) = DARWIN_UNUSED
0524 chl2cmax(jp) = DARWIN_UNUSED
0525 chl2cmin(jp) = DARWIN_UNUSED
0526 DO l=1,nlam
0527 alphachl(jp,l) = DARWIN_UNUSED
0528 ENDDO
0529 alpha_mean(jp) = DARWIN_UNUSED
0530 ENDIF
0531 IF (isPred(jp) .EQ. 0) THEN
0532 grazemax(jp) = DARWIN_UNUSED
0533 kgrazesat(jp) = DARWIN_UNUSED
0534 ENDIF
0535 DO jp2=1,nplank
0536 IF (isPred(jp).EQ.0 .OR. isPrey(jp2).EQ.0) THEN
0537 palat(jp2,jp) = DARWIN_UNUSED
0538 asseff(jp2,jp) = DARWIN_UNUSED
0539 ExportFracPreyPred(jp2,jp) = DARWIN_UNUSED
0540 ENDIF
0541 ENDDO
0542 ENDDO
0543
0544
0545
0546
0547 IF ( oUnit .GE. 0 ) THEN
0548 WRITE(UNIT=oUnit, NML=DARWIN_TRAITS)
0549 WRITE(UNIT=oUnit, NML=DARWIN_DEPENDENT_TRAITS)
0550 #ifdef ALLOW_RADTRANS
0551 WRITE(UNIT=oUnit, NML=DARWIN_RADTRANS_TRAITS)
0552 #endif
0553 WRITE(UNIT=oUnit, NML=DARWIN_RT_DEPTRAITS)
0554 ENDIF
0555
0556 #endif /* ALLOW_DARWIN */
0557
0558 RETURN
0559 END