New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 7162 for branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsbc.F90 – NEMO

Ignore:
Timestamp:
2016-11-01T14:23:51+01:00 (7 years ago)
Author:
cetlod
Message:

new top interface : Add PISCES quota model

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsbc.F90

    r7068 r7162  
    3737   REAL(wp), PUBLIC  :: concfediaz  !: Fe half-saturation Cste for diazotrophs  
    3838   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 
    3942 
    4043   LOGICAL , PUBLIC  :: ll_sbc 
     
    6669   REAL(wp), PUBLIC, ALLOCATABLE, SAVE,   DIMENSION(:,:) :: rivdic, rivalk    !: river input fields 
    6770   REAL(wp), PUBLIC, ALLOCATABLE, SAVE,   DIMENSION(:,:) :: rivdin, rivdip    !: river input fields 
     71   REAL(wp), PUBLIC, ALLOCATABLE, SAVE,   DIMENSION(:,:) :: rivdon, rivdop    !: river input fields 
     72   REAL(wp), PUBLIC, ALLOCATABLE, SAVE,   DIMENSION(:,:) :: rivdoc    !: river input fields 
    6873   REAL(wp), PUBLIC, ALLOCATABLE, SAVE,   DIMENSION(:,:) :: rivdsi    !: river input fields 
    6974   REAL(wp), PUBLIC, ALLOCATABLE, SAVE,   DIMENSION(:,:) :: nitdep    !: atmospheric N deposition  
     
    130135         IF( kt == nit000 .OR. ( kt /= nit000 .AND. ntimes_riv > 1 ) ) THEN 
    131136            CALL fld_read( kt, 1, sf_river ) 
    132             DO jj = 1, jpj 
    133                DO ji = 1, jpi 
    134                   zcoef = ryyss * e1e2t(ji,jj) * h_rnf(ji,jj)  
    135                   rivalk(ji,jj) =   sf_river(jr_dic)%fnow(ji,jj,1)                                    & 
    136                      &              * 1.E3        / ( 12. * zcoef + rtrn ) 
    137                   rivdic(ji,jj) = ( sf_river(jr_dic)%fnow(ji,jj,1) + sf_river(jr_doc)%fnow(ji,jj,1) ) & 
    138                      &              * 1.E3         / ( 12. * zcoef + rtrn ) 
    139                   rivdin(ji,jj) = ( sf_river(jr_din)%fnow(ji,jj,1) + sf_river(jr_don)%fnow(ji,jj,1) ) & 
    140                      &              * 1.E3 / rno3 / ( 14. * zcoef + rtrn ) 
    141                   rivdip(ji,jj) = ( sf_river(jr_dip)%fnow(ji,jj,1) + sf_river(jr_dop)%fnow(ji,jj,1) ) & 
    142                      &              * 1.E3 / po4r / ( 31. * zcoef + rtrn ) 
    143                   rivdsi(ji,jj) =   sf_river(jr_dsi)%fnow(ji,jj,1)                                    & 
    144                      &              * 1.E3        / ( 28.1 * zcoef + rtrn ) 
     137            IF( ln_p4z ) THEN 
     138               DO jj = 1, jpj 
     139                  DO ji = 1, jpi 
     140                     zcoef = ryyss * e1e2t(ji,jj) * h_rnf(ji,jj)  
     141                     rivalk(ji,jj) =   sf_river(jr_dic)%fnow(ji,jj,1)                                    & 
     142                        &              * 1.E3        / ( 12. * zcoef + rtrn ) 
     143                     rivdic(ji,jj) = ( sf_river(jr_dic)%fnow(ji,jj,1) + sf_river(jr_doc)%fnow(ji,jj,1) ) & 
     144                        &              * 1.E3         / ( 12. * zcoef + rtrn ) 
     145                     rivdin(ji,jj) = ( sf_river(jr_din)%fnow(ji,jj,1) + sf_river(jr_don)%fnow(ji,jj,1) ) & 
     146                        &              * 1.E3 / rno3 / ( 14. * zcoef + rtrn ) 
     147                     rivdip(ji,jj) = ( sf_river(jr_dip)%fnow(ji,jj,1) + sf_river(jr_dop)%fnow(ji,jj,1) ) & 
     148                        &              * 1.E3 / po4r / ( 31. * zcoef + rtrn ) 
     149                     rivdsi(ji,jj) =   sf_river(jr_dsi)%fnow(ji,jj,1)                                    & 
     150                        &              * 1.E3        / ( 28.1 * zcoef + rtrn ) 
     151                  END DO 
    145152               END DO 
    146             END DO 
     153            ELSE    !  ln_p5z 
     154               DO jj = 1, jpj 
     155                  DO ji = 1, jpi 
     156                     zcoef = ryyss * e1e2t(ji,jj) * h_rnf(ji,jj)  
     157                     rivalk(ji,jj) =   sf_river(jr_dic)%fnow(ji,jj,1)                                    & 
     158                        &              * 1.E3        / ( 12. * zcoef + rtrn ) 
     159                     rivdic(ji,jj) = ( sf_river(jr_dic)%fnow(ji,jj,1) ) & 
     160                        &              * 1.E3 / ( 12. * zcoef + rtrn ) * tmask(ji,jj,1) 
     161                     rivdin(ji,jj) = ( sf_river(jr_din)%fnow(ji,jj,1) ) & 
     162                        &              * 1.E3 / rno3 / ( 14. * zcoef + rtrn ) * tmask(ji,jj,1) 
     163                     rivdip(ji,jj) = ( sf_river(jr_dip)%fnow(ji,jj,1) ) & 
     164                        &              * 1.E3 / po4r / ( 31. * zcoef + rtrn ) * tmask(ji,jj,1) 
     165                     rivdoc(ji,jj) = ( sf_river(jr_doc)%fnow(ji,jj,1) ) & 
     166                        &              * 1.E3 / ( 12. * zcoef + rtrn ) * tmask(ji,jj,1) 
     167                     rivdon(ji,jj) = ( sf_river(jr_don)%fnow(ji,jj,1) ) & 
     168                        &              * 1.E3 / rno3 / ( 14. * zcoef + rtrn ) * tmask(ji,jj,1) 
     169                     rivdop(ji,jj) = ( sf_river(jr_dop)%fnow(ji,jj,1) ) & 
     170                        &              * 1.E3 / po4r / ( 31. * zcoef + rtrn ) * tmask(ji,jj,1) 
     171                  END DO 
     172               END DO 
     173            ENDIF 
    147174         ENDIF 
    148175      ENDIF 
     
    201228        &                sn_riverdip, sn_riverdop, sn_riverdsi, sn_ndepo, sn_ironsed, sn_hydrofe, & 
    202229        &                ln_dust, ln_solub, ln_river, ln_ndepo, ln_ironsed, ln_ironice, ln_hydrofe,    & 
    203         &                sedfeinput, dustsolub, icefeinput, wdust, mfrac, nitrfix, diazolight, concfediaz, hratio 
     230        &                sedfeinput, dustsolub, icefeinput, wdust, mfrac, nitrfix, diazolight, concfediaz, & 
     231        &                hratio, fep_rats, fep_rath 
    204232      !!---------------------------------------------------------------------- 
    205233      ! 
     
    245273         WRITE(numout,*) '    fe half-saturation cste for diazotrophs  concfediaz  = ', concfediaz 
    246274         WRITE(numout,*) '    Fe to 3He ratio assumed for vent iron supply hratio  = ', hratio 
     275         IF( ln_ligand ) THEN 
     276            WRITE(numout,*) '    Fep/Fer ratio from sed sources                       = ', fep_rats 
     277            WRITE(numout,*) '    Fep/Fer ratio from sed hydro sources                 = ', fep_rath 
     278         ENDIF 
    247279      END IF 
    248280 
     
    330362         ! 
    331363         ALLOCATE( rivdic(jpi,jpj), rivalk(jpi,jpj), rivdin(jpi,jpj), rivdip(jpi,jpj), rivdsi(jpi,jpj) )  
     364         IF( ln_p5z )  ALLOCATE( rivdon(jpi,jpj), rivdop(jpi,jpj), rivdoc(jpi,jpj) ) 
    332365         ! 
    333366         ALLOCATE( sf_river(jpriv), rivinput(jpriv), STAT=ierr1 )           !* allocate and fill sf_river (forcing structure) with sn_river_ 
Note: See TracChangeset for help on using the changeset viewer.