- Timestamp:
- 2017-05-19T15:32:50+02:00 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/CO6_KD490_amm7_oper_fabm/NEMOGCM/NEMO/OPA_SRC/DIA/dia25h.F90
r7590 r8049 21 21 #endif 22 22 USE diatmb 23 #if defined key_fabm 24 USE trc, ONLY: trn 25 USE par_fabm 26 USE fabm, ONLY: fabm_get_bulk_diagnostic_data 27 #endif 23 28 24 29 IMPLICIT NONE … … 39 44 #if defined key_zdfgls 40 45 REAL(wp),SAVE, ALLOCATABLE, DIMENSION(:,:,:) :: rmxln_25h 46 #endif 47 #if defined key_fabm 48 REAL(wp),SAVE, ALLOCATABLE, DIMENSION(:,:,:,:) :: fabm3d_25h 41 49 #endif 42 50 INTEGER, SAVE :: cnt_25h ! Counter for 25 hour means … … 145 153 CALL ctl_stop( 'dia_25h: unable to allocate sshn_25h' ) ; RETURN 146 154 ENDIF 155 #if defined key_fabm 156 ALLOCATE( fabm3d_25h(jpi,jpj,jpk,jp_fabmdia_3dout), STAT=ierror ) 157 IF( ierror > 0 ) THEN 158 CALL ctl_stop( 'dia_tide: unable to allocate fabm3d_25h' ) ; RETURN 159 ENDIF 160 #endif 147 161 ! ------------------------- ! 148 162 ! 2 - Assign Initial Values ! … … 169 183 rmxln_25h(:,:,:) = mxln(:,:,:) 170 184 #endif 185 #if defined key_fabm 186 fabm3d_25h(:,:,:,1) = trn(:,:,:,jp_fabm_m1+jp_fabm_n1p) 187 fabm3d_25h(:,:,:,2) = trn(:,:,:,jp_fabm_m1+jp_fabm_n3n) 188 fabm3d_25h(:,:,:,3) = trn(:,:,:,jp_fabm_m1+jp_fabm_n4n) 189 fabm3d_25h(:,:,:,4) = trn(:,:,:,jp_fabm_m1+jp_fabm_n5s) 190 fabm3d_25h(:,:,:,5) = trn(:,:,:,jp_fabm_m1+jp_fabm_o2o) 191 fabm3d_25h(:,:,:,6)= fabm_get_bulk_diagnostic_data(model, jp_fabm_o3ph) 192 fabm3d_25h(:,:,:,7)= fabm_get_bulk_diagnostic_data(model, jp_fabm_o3pc) 193 fabm3d_25h(:,:,:,8)= fabm_get_bulk_diagnostic_data(model, jp_fabmdia_chltot) 194 fabm3d_25h(:,:,:,9)= fabm_get_bulk_diagnostic_data(model, jp_fabmdia_netpp) 195 fabm3d_25h(:,:,:,10)= fabm_get_bulk_diagnostic_data(model, jp_fabm_xeps) 196 fabm3d_25h(:,:,:,11)= fabm_get_bulk_diagnostic_data(model, jp_fabmdia_phytot) 197 #endif 171 198 #if defined key_lim3 || defined key_lim2 172 199 CALL ctl_stop('STOP', 'dia_25h not setup yet to do tidemean ice') … … 268 295 rmxln_25h(:,:,:) = rmxln_25h(:,:,:) + mxln(:,:,:) 269 296 #endif 297 #if defined key_fabm 298 fabm3d_25h(:,:,:,1) = fabm3d_25h(:,:,:,1) + trn(:,:,:,jp_fabm_m1+jp_fabm_n1p) ! phosphate 299 fabm3d_25h(:,:,:,2) = fabm3d_25h(:,:,:,2) + trn(:,:,:,jp_fabm_m1+jp_fabm_n3n) ! nitrate 300 fabm3d_25h(:,:,:,3) = fabm3d_25h(:,:,:,3) + trn(:,:,:,jp_fabm_m1+jp_fabm_n4n) ! ammonium 301 fabm3d_25h(:,:,:,4) = fabm3d_25h(:,:,:,4) + trn(:,:,:,jp_fabm_m1+jp_fabm_n5s) ! silicate 302 fabm3d_25h(:,:,:,5) = fabm3d_25h(:,:,:,5) + trn(:,:,:,jp_fabm_m1+jp_fabm_o2o) ! oxygen 303 fabm3d_25h(:,:,:,6)= fabm3d_25h(:,:,:,6) + fabm_get_bulk_diagnostic_data(model, jp_fabm_o3ph) ! pH 304 fabm3d_25h(:,:,:,7)= fabm3d_25h(:,:,:,7) + fabm_get_bulk_diagnostic_data(model, jp_fabm_o3pc) ! pCO2 305 fabm3d_25h(:,:,:,8)= fabm3d_25h(:,:,:,8) + fabm_get_bulk_diagnostic_data(model, jp_fabmdia_chltot) ! total Chl 306 fabm3d_25h(:,:,:,9)= fabm3d_25h(:,:,:,9) + fabm_get_bulk_diagnostic_data(model, jp_fabmdia_netpp) ! netPP 307 fabm3d_25h(:,:,:,10)= fabm3d_25h(:,:,:,10) + fabm_get_bulk_diagnostic_data(model, jp_fabm_xeps) ! light attenuation 308 fabm3d_25h(:,:,:,11)= fabm3d_25h(:,:,:,11) + fabm_get_bulk_diagnostic_data(model, jp_fabmdia_phytot) ! total phytoplankton 309 #endif 270 310 cnt_25h = cnt_25h + 1 271 311 … … 300 340 # if defined key_zdfgls 301 341 rmxln_25h(:,:,:) = rmxln_25h(:,:,:) / 25.0_wp 342 #endif 343 #if defined key_fabm 344 fabm3d_25h(:,:,:,:) = fabm3d_25h(:,:,:,:) / 25.0_wp 302 345 #endif 303 346 … … 319 362 CALL iom_put( "ssh25h", zw2d ) ! sea surface 320 363 364 #if defined key_fabm 365 ! Write ERSEM variables 366 zw3d(:,:,:) = fabm3d_25h(:,:,:,1)*tmask(:,:,:) + zmdi*(1.0-tmask(:,:,:)) 367 CALL iom_put( "N1p25h", zw3d ) ! phosphate 368 zw3d(:,:,:) = fabm3d_25h(:,:,:,2)*tmask(:,:,:) + zmdi*(1.0-tmask(:,:,:)) 369 CALL iom_put( "N3n25h", zw3d ) ! nitrate 370 zw3d(:,:,:) = fabm3d_25h(:,:,:,3)*tmask(:,:,:) + zmdi*(1.0-tmask(:,:,:)) 371 CALL iom_put( "N4n25h", zw3d ) ! ammonium 372 zw3d(:,:,:) = fabm3d_25h(:,:,:,4)*tmask(:,:,:) + zmdi*(1.0-tmask(:,:,:)) 373 CALL iom_put( "N5s25h", zw3d ) ! silicate 374 zw3d(:,:,:) = fabm3d_25h(:,:,:,5)*tmask(:,:,:) + zmdi*(1.0-tmask(:,:,:)) 375 CALL iom_put( "O2o25h", zw3d ) ! oxygen 376 zw3d(:,:,:) = fabm3d_25h(:,:,:,6)*tmask(:,:,:) + zmdi*(1.0-tmask(:,:,:)) 377 CALL iom_put( "pH25h", zw3d ) ! pH 378 zw3d(:,:,:) = fabm3d_25h(:,:,:,7)*tmask(:,:,:) + zmdi*(1.0-tmask(:,:,:)) 379 CALL iom_put( "pCO2_25h", zw3d ) ! pCO2 380 zw3d(:,:,:) = fabm3d_25h(:,:,:,8)*tmask(:,:,:) + zmdi*(1.0-tmask(:,:,:)) 381 CALL iom_put( "CHL25h", zw3d ) ! total Chl 382 zw3d(:,:,:) = fabm3d_25h(:,:,:,9)*tmask(:,:,:) + zmdi*(1.0-tmask(:,:,:)) 383 CALL iom_put( "netPP25h", zw3d ) ! netPP 384 zw3d(:,:,:) = (1.7/fabm3d_25h(:,:,:,10))*tmask(:,:,:) + zmdi*(1.0-tmask(:,:,:)) 385 CALL iom_put( "visib25h", zw3d ) ! light attenuation convert to visibility 386 zw3d(:,:,:) = fabm3d_25h(:,:,:,11)*tmask(:,:,:) + zmdi*(1.0-tmask(:,:,:)) 387 CALL iom_put( "PhytoC25h", zw3d ) ! total phytoplankton 388 #endif 321 389 322 390 ! Write velocities (instantaneous) … … 362 430 rmxln_25h(:,:,:) = mxln(:,:,:) 363 431 #endif 432 #if defined key_fabm 433 fabm3d_25h(:,:,:,1) = trn(:,:,:,jp_fabm_m1+jp_fabm_n1p) 434 fabm3d_25h(:,:,:,2) = trn(:,:,:,jp_fabm_m1+jp_fabm_n3n) 435 fabm3d_25h(:,:,:,3) = trn(:,:,:,jp_fabm_m1+jp_fabm_n4n) 436 fabm3d_25h(:,:,:,4) = trn(:,:,:,jp_fabm_m1+jp_fabm_n5s) 437 fabm3d_25h(:,:,:,5) = trn(:,:,:,jp_fabm_m1+jp_fabm_o2o) 438 fabm3d_25h(:,:,:,6)= fabm_get_bulk_diagnostic_data(model, jp_fabm_o3ph) 439 fabm3d_25h(:,:,:,7)= fabm_get_bulk_diagnostic_data(model, jp_fabm_o3pc) 440 fabm3d_25h(:,:,:,8)= fabm_get_bulk_diagnostic_data(model, jp_fabmdia_chltot) 441 fabm3d_25h(:,:,:,9)= fabm_get_bulk_diagnostic_data(model, jp_fabmdia_netpp) 442 fabm3d_25h(:,:,:,10)= fabm_get_bulk_diagnostic_data(model, jp_fabm_xeps) 443 fabm3d_25h(:,:,:,11)= fabm_get_bulk_diagnostic_data(model, jp_fabmdia_phytot) 444 #endif 364 445 cnt_25h = 1 365 446 IF (lwp) WRITE(numout,*) 'dia_wri_tide : After 25hr mean write, reset sum to current value and cnt_25h to one for overlapping average',cnt_25h
Note: See TracChangeset
for help on using the changeset viewer.