Changeset 7646 for trunk/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsbc.F90
- Timestamp:
- 2017-02-06T10:25:03+01:00 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsbc.F90
r6962 r7646 5 5 !!====================================================================== 6 6 !! History : 3.5 ! 2012-07 (O. Aumont, C. Ethe) Original code 7 !!----------------------------------------------------------------------8 #if defined key_pisces9 !!----------------------------------------------------------------------10 !! 'key_pisces' PISCES bio-model11 7 !!---------------------------------------------------------------------- 12 8 !! p4z_sbc : Read and interpolate time-varying nutrients fluxes … … 41 37 REAL(wp), PUBLIC :: concfediaz !: Fe half-saturation Cste for diazotrophs 42 38 REAL(wp) :: hratio !: Fe:3He ratio assumed for vent iron supply 39 REAL(wp), PUBLIC :: fep_rats !: Fep/Fer ratio from sed sources 40 REAL(wp), PUBLIC :: fep_rath !: Fep/Fer ratio from hydro sources 41 REAL(wp), PUBLIC :: lgw_rath !: Weak ligand ratio from hydro sources 42 43 43 44 44 LOGICAL , PUBLIC :: ll_sbc … … 70 70 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: rivdic, rivalk !: river input fields 71 71 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: rivdin, rivdip !: river input fields 72 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: rivdon, rivdop !: river input fields 73 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: rivdoc !: river input fields 72 74 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: rivdsi !: river input fields 73 75 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: nitdep !: atmospheric N deposition … … 134 136 IF( kt == nit000 .OR. ( kt /= nit000 .AND. ntimes_riv > 1 ) ) THEN 135 137 CALL fld_read( kt, 1, sf_river ) 136 DO jj = 1, jpj 137 DO ji = 1, jpi 138 zcoef = ryyss * e1e2t(ji,jj) * h_rnf(ji,jj) 139 rivalk(ji,jj) = sf_river(jr_dic)%fnow(ji,jj,1) & 140 & * 1.E3 / ( 12. * zcoef + rtrn ) 141 rivdic(ji,jj) = ( sf_river(jr_dic)%fnow(ji,jj,1) + sf_river(jr_doc)%fnow(ji,jj,1) ) & 142 & * 1.E3 / ( 12. * zcoef + rtrn ) 143 rivdin(ji,jj) = ( sf_river(jr_din)%fnow(ji,jj,1) + sf_river(jr_don)%fnow(ji,jj,1) ) & 144 & * 1.E3 / rno3 / ( 14. * zcoef + rtrn ) 145 rivdip(ji,jj) = ( sf_river(jr_dip)%fnow(ji,jj,1) + sf_river(jr_dop)%fnow(ji,jj,1) ) & 146 & * 1.E3 / po4r / ( 31. * zcoef + rtrn ) 147 rivdsi(ji,jj) = sf_river(jr_dsi)%fnow(ji,jj,1) & 148 & * 1.E3 / ( 28.1 * zcoef + rtrn ) 138 IF( ln_p4z ) THEN 139 DO jj = 1, jpj 140 DO ji = 1, jpi 141 zcoef = ryyss * e1e2t(ji,jj) * h_rnf(ji,jj) 142 rivalk(ji,jj) = sf_river(jr_dic)%fnow(ji,jj,1) & 143 & * 1.E3 / ( 12. * zcoef + rtrn ) 144 rivdic(ji,jj) = ( sf_river(jr_dic)%fnow(ji,jj,1) + sf_river(jr_doc)%fnow(ji,jj,1) ) & 145 & * 1.E3 / ( 12. * zcoef + rtrn ) 146 rivdin(ji,jj) = ( sf_river(jr_din)%fnow(ji,jj,1) + sf_river(jr_don)%fnow(ji,jj,1) ) & 147 & * 1.E3 / rno3 / ( 14. * zcoef + rtrn ) 148 rivdip(ji,jj) = ( sf_river(jr_dip)%fnow(ji,jj,1) + sf_river(jr_dop)%fnow(ji,jj,1) ) & 149 & * 1.E3 / po4r / ( 31. * zcoef + rtrn ) 150 rivdsi(ji,jj) = sf_river(jr_dsi)%fnow(ji,jj,1) & 151 & * 1.E3 / ( 28.1 * zcoef + rtrn ) 152 END DO 149 153 END DO 150 END DO 154 ELSE ! ln_p5z 155 DO jj = 1, jpj 156 DO ji = 1, jpi 157 zcoef = ryyss * e1e2t(ji,jj) * h_rnf(ji,jj) 158 rivalk(ji,jj) = sf_river(jr_dic)%fnow(ji,jj,1) & 159 & * 1.E3 / ( 12. * zcoef + rtrn ) 160 rivdic(ji,jj) = ( sf_river(jr_dic)%fnow(ji,jj,1) ) & 161 & * 1.E3 / ( 12. * zcoef + rtrn ) * tmask(ji,jj,1) 162 rivdin(ji,jj) = ( sf_river(jr_din)%fnow(ji,jj,1) ) & 163 & * 1.E3 / rno3 / ( 14. * zcoef + rtrn ) * tmask(ji,jj,1) 164 rivdip(ji,jj) = ( sf_river(jr_dip)%fnow(ji,jj,1) ) & 165 & * 1.E3 / po4r / ( 31. * zcoef + rtrn ) * tmask(ji,jj,1) 166 rivdoc(ji,jj) = ( sf_river(jr_doc)%fnow(ji,jj,1) ) & 167 & * 1.E3 / ( 12. * zcoef + rtrn ) * tmask(ji,jj,1) 168 rivdon(ji,jj) = ( sf_river(jr_don)%fnow(ji,jj,1) ) & 169 & * 1.E3 / rno3 / ( 14. * zcoef + rtrn ) * tmask(ji,jj,1) 170 rivdop(ji,jj) = ( sf_river(jr_dop)%fnow(ji,jj,1) ) & 171 & * 1.E3 / po4r / ( 31. * zcoef + rtrn ) * tmask(ji,jj,1) 172 END DO 173 END DO 174 ENDIF 151 175 ENDIF 152 176 ENDIF … … 205 229 & sn_riverdip, sn_riverdop, sn_riverdsi, sn_ndepo, sn_ironsed, sn_hydrofe, & 206 230 & ln_dust, ln_solub, ln_river, ln_ndepo, ln_ironsed, ln_ironice, ln_hydrofe, & 207 & sedfeinput, dustsolub, icefeinput, wdust, mfrac, nitrfix, diazolight, concfediaz, hratio 231 & sedfeinput, dustsolub, icefeinput, wdust, mfrac, nitrfix, diazolight, concfediaz, & 232 & hratio, fep_rats, fep_rath, lgw_rath 208 233 !!---------------------------------------------------------------------- 209 234 ! … … 249 274 WRITE(numout,*) ' fe half-saturation cste for diazotrophs concfediaz = ', concfediaz 250 275 WRITE(numout,*) ' Fe to 3He ratio assumed for vent iron supply hratio = ', hratio 276 IF( ln_ligand ) THEN 277 WRITE(numout,*) ' Fep/Fer ratio from sed sources fep_rats = ', fep_rats 278 WRITE(numout,*) ' Fep/Fer ratio from sed hydro sources fep_rath = ', fep_rath 279 WRITE(numout,*) ' Weak ligand ratio from sed hydro sources lgw_rath = ', lgw_rath 280 ENDIF 251 281 END IF 252 282 … … 261 291 ! set the number of level over which river runoffs are applied 262 292 ! online configuration : computed in sbcrnf 263 IF( l k_offline ) THEN293 IF( l_offline ) THEN 264 294 nk_rnf(:,:) = 1 265 295 h_rnf (:,:) = gdept_n(:,:,1) … … 291 321 END DO 292 322 CALL iom_close( numdust ) 293 ztimes_dust = 1._wp / FLOAT( ntimes_dust)323 ztimes_dust = 1._wp / REAL(ntimes_dust, wp) 294 324 sumdepsi = 0.e0 295 325 DO jm = 1, ntimes_dust … … 334 364 ! 335 365 ALLOCATE( rivdic(jpi,jpj), rivalk(jpi,jpj), rivdin(jpi,jpj), rivdip(jpi,jpj), rivdsi(jpi,jpj) ) 366 IF( ln_p5z ) ALLOCATE( rivdon(jpi,jpj), rivdop(jpi,jpj), rivdoc(jpi,jpj) ) 336 367 ! 337 368 ALLOCATE( sf_river(jpriv), rivinput(jpriv), STAT=ierr1 ) !* allocate and fill sf_river (forcing structure) with sn_river_ … … 355 386 END DO 356 387 CALL iom_close( numriv ) 357 ztimes_riv = 1._wp / FLOAT(ntimes_riv)388 ztimes_riv = 1._wp / REAL(ntimes_riv, wp) 358 389 DO jm = 1, ntimes_riv 359 390 rivinput(ifpr) = rivinput(ifpr) + glob_sum( zriver(:,:,jm) * tmask(:,:,1) * ztimes_riv ) … … 402 433 END DO 403 434 CALL iom_close( numdepo ) 404 ztimes_ndep = 1._wp / FLOAT( ntimes_ndep)435 ztimes_ndep = 1._wp / REAL(ntimes_ndep, wp) 405 436 nitdepinput = 0._wp 406 437 DO jm = 1, ntimes_ndep … … 508 539 END SUBROUTINE p4z_sbc_init 509 540 510 #else511 !!======================================================================512 !! Dummy module : No PISCES bio-model513 !!======================================================================514 CONTAINS515 SUBROUTINE p4z_sbc ! Empty routine516 END SUBROUTINE p4z_sbc517 #endif518 519 541 !!====================================================================== 520 542 END MODULE p4zsbc
Note: See TracChangeset
for help on using the changeset viewer.