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 7646 for trunk/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsbc.F90 – NEMO

Ignore:
Timestamp:
2017-02-06T10:25:03+01:00 (7 years ago)
Author:
timgraham
Message:

Merge of dev_merge_2016 into trunk. UPDATE TO ARCHFILES NEEDED for XIOS2.
LIM_SRC_s/limrhg.F90 to follow in next commit due to change of kind (I'm unable to do it in this commit).
Merged using the following steps:

1) svn merge --reintegrate svn+ssh://forge.ipsl.jussieu.fr/ipsl/forge/projets/nemo/svn/trunk .
2) Resolve minor conflicts in sette.sh and namelist_cfg for ORCA2LIM3 (due to a change in trunk after branch was created)
3) svn commit
4) svn switch svn+ssh://forge.ipsl.jussieu.fr/ipsl/forge/projets/nemo/svn/trunk
5) svn merge svn+ssh://forge.ipsl.jussieu.fr/ipsl/forge/projets/nemo/svn/branches/2016/dev_merge_2016 .
6) At this stage I checked out a clean copy of the branch to compare against what is about to be committed to the trunk.
6) svn commit #Commit code to the trunk

In this commit I have also reverted a change to Fcheck_archfile.sh which was causing problems on the Paris machine.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsbc.F90

    r6962 r7646  
    55   !!====================================================================== 
    66   !! History :   3.5  !  2012-07 (O. Aumont, C. Ethe) Original code 
    7    !!---------------------------------------------------------------------- 
    8 #if defined key_pisces 
    9    !!---------------------------------------------------------------------- 
    10    !!   'key_pisces'                                       PISCES bio-model 
    117   !!---------------------------------------------------------------------- 
    128   !!   p4z_sbc        :  Read and interpolate time-varying nutrients fluxes 
     
    4137   REAL(wp), PUBLIC  :: concfediaz  !: Fe half-saturation Cste for diazotrophs  
    4238   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 
    4343 
    4444   LOGICAL , PUBLIC  :: ll_sbc 
     
    7070   REAL(wp), PUBLIC, ALLOCATABLE, SAVE,   DIMENSION(:,:) :: rivdic, rivalk    !: river input fields 
    7171   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 
    7274   REAL(wp), PUBLIC, ALLOCATABLE, SAVE,   DIMENSION(:,:) :: rivdsi    !: river input fields 
    7375   REAL(wp), PUBLIC, ALLOCATABLE, SAVE,   DIMENSION(:,:) :: nitdep    !: atmospheric N deposition  
     
    134136         IF( kt == nit000 .OR. ( kt /= nit000 .AND. ntimes_riv > 1 ) ) THEN 
    135137            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 
    149153               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 
    151175         ENDIF 
    152176      ENDIF 
     
    205229        &                sn_riverdip, sn_riverdop, sn_riverdsi, sn_ndepo, sn_ironsed, sn_hydrofe, & 
    206230        &                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 
    208233      !!---------------------------------------------------------------------- 
    209234      ! 
     
    249274         WRITE(numout,*) '    fe half-saturation cste for diazotrophs  concfediaz  = ', concfediaz 
    250275         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 
    251281      END IF 
    252282 
     
    261291      ! set the number of level over which river runoffs are applied  
    262292      ! online configuration : computed in sbcrnf 
    263       IF( lk_offline ) THEN 
     293      IF( l_offline ) THEN 
    264294        nk_rnf(:,:) = 1 
    265295        h_rnf (:,:) = gdept_n(:,:,1) 
     
    291321            END DO 
    292322            CALL iom_close( numdust ) 
    293             ztimes_dust = 1._wp / FLOAT( ntimes_dust )  
     323            ztimes_dust = 1._wp / REAL(ntimes_dust, wp)  
    294324            sumdepsi = 0.e0 
    295325            DO jm = 1, ntimes_dust 
     
    334364         ! 
    335365         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) ) 
    336367         ! 
    337368         ALLOCATE( sf_river(jpriv), rivinput(jpriv), STAT=ierr1 )           !* allocate and fill sf_river (forcing structure) with sn_river_ 
     
    355386               END DO 
    356387               CALL iom_close( numriv ) 
    357                ztimes_riv = 1._wp / FLOAT(ntimes_riv)  
     388               ztimes_riv = 1._wp / REAL(ntimes_riv, wp)  
    358389               DO jm = 1, ntimes_riv 
    359390                  rivinput(ifpr) = rivinput(ifpr) + glob_sum( zriver(:,:,jm) * tmask(:,:,1) * ztimes_riv )  
     
    402433            END DO 
    403434            CALL iom_close( numdepo ) 
    404             ztimes_ndep = 1._wp / FLOAT( ntimes_ndep )  
     435            ztimes_ndep = 1._wp / REAL(ntimes_ndep, wp)  
    405436            nitdepinput = 0._wp 
    406437            DO jm = 1, ntimes_ndep 
     
    508539   END SUBROUTINE p4z_sbc_init 
    509540 
    510 #else 
    511    !!====================================================================== 
    512    !!  Dummy module :                                   No PISCES bio-model 
    513    !!====================================================================== 
    514 CONTAINS 
    515    SUBROUTINE p4z_sbc                         ! Empty routine 
    516    END SUBROUTINE p4z_sbc 
    517 #endif  
    518  
    519541   !!====================================================================== 
    520542END MODULE p4zsbc 
Note: See TracChangeset for help on using the changeset viewer.