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 9169 for branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zbio.F90 – NEMO

Ignore:
Timestamp:
2017-12-26T17:32:56+01:00 (7 years ago)
Author:
gm
Message:

dev_merge_2017: all SRC: finalize the removal of useless warning when reading namelist_cfg + remove all nn_closea + nn_msh replaced by a logical

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zbio.F90

    r9125 r9169  
    1313   USE oce_trc         ! 
    1414   USE trc             !  
    15    USE sms_pisces 
    16    USE p2zopt 
     15   USE sms_pisces      ! 
     16   USE p2zopt          ! 
     17   USE trd_oce         ! 
     18   USE trdtrc          ! 
     19   ! 
    1720   USE lbclnk          !  
    1821   USE prtctl_trc      ! Print control for debbuging 
    19    USE trd_oce 
    20    USE trdtrc 
    21    USE iom 
     22   USE iom             ! 
    2223    
    2324   IMPLICIT NONE 
     
    8384      !!         
    8485      !!--------------------------------------------------------------------- 
    85       !! 
    8686      INTEGER, INTENT( in ) ::   kt      ! ocean time-step index       
    87       !! 
     87      ! 
    8888      INTEGER  ::   ji, jj, jk, jl 
    8989      REAL(wp) ::   zdet, zzoo, zphy, zno3, znh4, zdom      ! now concentrations 
     
    9696      REAL(wp) ::   znh4a, zdeta, zdoma, zzoobod, zboddet, zdomaju 
    9797      REAL(wp) ::   ze3t 
    98       REAL(wp), ALLOCATABLE,   DIMENSION(:,:,:) :: zw2d 
    99       REAL(wp), ALLOCATABLE, DIMENSION(:,:,:,:) :: zw3d 
     98      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:)   ::  zw2d 
     99      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:,:) ::   zw3d 
    100100      CHARACTER (len=25) :: charout 
    101101      !!--------------------------------------------------------------------- 
     
    103103      IF( ln_timing )   CALL timing_start('p2z_bio') 
    104104      ! 
    105       IF( lk_iomput ) ALLOCATE( zw2d(jpi,jpj,17), zw3d(jpi,jpj,jpk,3) ) 
     105      IF( lk_iomput )   ALLOCATE( zw2d(jpi,jpj,17), zw3d(jpi,jpj,jpk,3) ) 
    106106 
    107107      IF( kt == nittrc000 ) THEN 
     
    113113      xksi(:,:) = 0.e0        ! zooplakton closure ( fbod) 
    114114      IF( lk_iomput ) THEN 
    115          zw2d  (:,:,:) = 0.e0 
    116          zw3d(:,:,:,:) = 0.e0 
     115         zw2d  (:,:,:) = 0._wp 
     116         zw3d(:,:,:,:) = 0._wp 
    117117      ENDIF 
    118118 
     
    311311               tra(ji,jj,jk,jpdom) = tra(ji,jj,jk,jpdom) + zdoma 
    312312               ! 
    313                 IF( lk_iomput ) THEN 
    314                   ! convert fluxes in per day 
     313                IF( lk_iomput ) THEN                  ! convert fluxes in per day 
    315314                  ze3t = e3t_n(ji,jj,jk) * 86400._wp 
    316315                  zw2d(ji,jj,1)  = zw2d(ji,jj,1)  + zno3phy * ze3t 
     
    335334                  zw3d(ji,jj,jk,2) = znh4phy * 86400._wp 
    336335                  zw3d(ji,jj,jk,3) = znh4no3 * 86400._wp 
    337                    ! 
    338                 ENDIF 
     336                  ! 
     337               ENDIF 
    339338            END DO 
    340339         END DO 
    341340      END DO 
    342  
     341      ! 
    343342      IF( lk_iomput ) THEN 
    344         CALL lbc_lnk( zw2d(:,:,:),'T', 1. ) 
    345         CALL lbc_lnk_multi( zw3d(:,:,:,1),'T', 1., zw3d(:,:,:,2),'T', 1., zw3d(:,:,:,3),'T', 1. ) 
    346         ! Save diagnostics 
    347         CALL iom_put( "TNO3PHY", zw2d(:,:,1) ) 
    348         CALL iom_put( "TNH4PHY", zw2d(:,:,2) ) 
    349         CALL iom_put( "TPHYDOM", zw2d(:,:,3) ) 
    350         CALL iom_put( "TPHYNH4", zw2d(:,:,4) ) 
    351         CALL iom_put( "TPHYZOO", zw2d(:,:,5) ) 
    352         CALL iom_put( "TPHYDET", zw2d(:,:,6) ) 
    353         CALL iom_put( "TDETZOO", zw2d(:,:,7) ) 
    354         CALL iom_put( "TZOODET", zw2d(:,:,8) ) 
    355         CALL iom_put( "TZOOBOD", zw2d(:,:,9) ) 
    356         CALL iom_put( "TZOONH4", zw2d(:,:,10) ) 
    357         CALL iom_put( "TZOODOM", zw2d(:,:,11) ) 
    358         CALL iom_put( "TNH4NO3", zw2d(:,:,12) ) 
    359         CALL iom_put( "TDOMNH4", zw2d(:,:,13) ) 
    360         CALL iom_put( "TDETNH4", zw2d(:,:,14) ) 
    361         CALL iom_put( "TPHYTOT", zw2d(:,:,15) ) 
    362         CALL iom_put( "TZOOTOT", zw2d(:,:,16) ) 
     343         CALL lbc_lnk( zw2d(:,:,:),'T', 1. ) 
     344         CALL lbc_lnk_multi( zw3d(:,:,:,1),'T', 1., zw3d(:,:,:,2),'T', 1., zw3d(:,:,:,3),'T', 1. ) 
     345         ! Save diagnostics 
     346         CALL iom_put( "TNO3PHY", zw2d(:,:,1) ) 
     347         CALL iom_put( "TNH4PHY", zw2d(:,:,2) ) 
     348         CALL iom_put( "TPHYDOM", zw2d(:,:,3) ) 
     349         CALL iom_put( "TPHYNH4", zw2d(:,:,4) ) 
     350         CALL iom_put( "TPHYZOO", zw2d(:,:,5) ) 
     351         CALL iom_put( "TPHYDET", zw2d(:,:,6) ) 
     352         CALL iom_put( "TDETZOO", zw2d(:,:,7) ) 
     353         CALL iom_put( "TZOODET", zw2d(:,:,8) ) 
     354         CALL iom_put( "TZOOBOD", zw2d(:,:,9) ) 
     355         CALL iom_put( "TZOONH4", zw2d(:,:,10) ) 
     356         CALL iom_put( "TZOODOM", zw2d(:,:,11) ) 
     357         CALL iom_put( "TNH4NO3", zw2d(:,:,12) ) 
     358         CALL iom_put( "TDOMNH4", zw2d(:,:,13) ) 
     359         CALL iom_put( "TDETNH4", zw2d(:,:,14) ) 
     360         CALL iom_put( "TPHYTOT", zw2d(:,:,15) ) 
     361         CALL iom_put( "TZOOTOT", zw2d(:,:,16) ) 
    363362         !  
    364         CALL iom_put( "FNO3PHY", zw3d(:,:,:,1) ) 
    365         CALL iom_put( "FNH4PHY", zw3d(:,:,:,2) ) 
    366         CALL iom_put( "FNH4NO3", zw3d(:,:,:,3) ) 
     363         CALL iom_put( "FNO3PHY", zw3d(:,:,:,1) ) 
     364         CALL iom_put( "FNH4PHY", zw3d(:,:,:,2) ) 
     365         CALL iom_put( "FNH4NO3", zw3d(:,:,:,3) ) 
    367366         ! 
    368367      ENDIF 
     
    374373      ENDIF 
    375374      ! 
    376       IF( lk_iomput ) DEALLOCATE( zw2d, zw3d ) 
     375      IF( lk_iomput )   DEALLOCATE( zw2d, zw3d ) 
    377376      ! 
    378377      IF( ln_timing )  CALL timing_stop('p2z_bio') 
     
    390389      !! 
    391390      !!---------------------------------------------------------------------- 
     391      INTEGER ::   ios   ! Local integer 
     392      !! 
    392393      NAMELIST/namlobphy/ tmumax, rgamma, fphylab, tmminp, aki 
    393394      NAMELIST/namlobnut/ akno3, aknh4, taunn, psinut 
    394395      NAMELIST/namlobzoo/ rppz, taus, aks, rpnaz, rdnaz, tauzn, fzoolab, fdbod, tmminz 
    395       NAMELIST/namlobdet/  taudn, fdetlab 
     396      NAMELIST/namlobdet/ taudn, fdetlab 
    396397      NAMELIST/namlobdom/ taudomn 
    397       INTEGER :: ios                 ! Local integer output status for namelist read 
    398398      !!---------------------------------------------------------------------- 
    399  
     399      ! 
     400      IF(lwp) WRITE(numout,*) 
     401      IF(lwp) WRITE(numout,*) ' p2z_bio_init : LOBSTER bio-model initialization' 
     402      IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~~' 
     403      ! 
    400404      REWIND( numnatp_ref )              ! Namelist namlobphy in reference namelist : Lobster biological parameters 
    401405      READ  ( numnatp_ref, namlobphy, IOSTAT = ios, ERR = 901) 
    402 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namlobphy in reference namelist', lwp ) 
    403  
     406901   IF( ios /= 0 )   CALL ctl_nam ( ios , 'namlobphy in reference namelist', lwp ) 
    404407      REWIND( numnatp_cfg )              ! Namelist namlobphy in configuration namelist : Lobster biological parameters 
    405408      READ  ( numnatp_cfg, namlobphy, IOSTAT = ios, ERR = 902 ) 
    406 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namlobphy in configuration namelist', lwp ) 
     409902   IF( ios >  0 )  CALL ctl_nam ( ios , 'namlobphy in configuration namelist', lwp ) 
    407410      IF(lwm) WRITE ( numonp, namlobphy ) 
    408  
     411      ! 
    409412      IF(lwp) THEN 
    410           WRITE(numout,*) ' Namelist namlobphy' 
    411           WRITE(numout,*) '    phyto max growth rate                                tmumax    =', 86400 * tmumax, ' d' 
    412           WRITE(numout,*) '    phytoplankton exudation fraction                     rgamma    =', rgamma 
    413           WRITE(numout,*) '    NH4 fraction of phytoplankton exsudation             fphylab   =', fphylab 
    414           WRITE(numout,*) '    minimal phyto mortality rate                         tmminp    =', 86400 * tmminp 
    415           WRITE(numout,*) '    light hlaf saturation constant                       aki       =', aki 
    416           WRITE(numout,*) ' ' 
     413         WRITE(numout,*) '   Namelist namlobphy' 
     414         WRITE(numout,*) '      phyto max growth rate                                tmumax    =', 86400 * tmumax, ' d' 
     415         WRITE(numout,*) '      phytoplankton exudation fraction                     rgamma    =', rgamma 
     416         WRITE(numout,*) '      NH4 fraction of phytoplankton exsudation             fphylab   =', fphylab 
     417         WRITE(numout,*) '      minimal phyto mortality rate                         tmminp    =', 86400 * tmminp 
     418         WRITE(numout,*) '      light hlaf saturation constant                       aki       =', aki 
    417419      ENDIF 
    418420 
    419421      REWIND( numnatp_ref )              ! Namelist namlobnut in reference namelist : Lobster nutriments parameters 
    420422      READ  ( numnatp_ref, namlobnut, IOSTAT = ios, ERR = 903) 
    421 903   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namlobnut in reference namelist', lwp ) 
    422  
     423903   IF( ios /= 0 )   CALL ctl_nam ( ios , 'namlobnut in reference namelist', lwp ) 
    423424      REWIND( numnatp_cfg )              ! Namelist namlobnut in configuration namelist : Lobster nutriments parameters 
    424425      READ  ( numnatp_cfg, namlobnut, IOSTAT = ios, ERR = 904 ) 
    425 904   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namlobnut in configuration namelist', lwp ) 
     426904   IF( ios >  0 )  CALL ctl_nam ( ios , 'namlobnut in configuration namelist', lwp ) 
    426427      IF(lwm) WRITE ( numonp, namlobnut ) 
    427428 
    428429      IF(lwp) THEN 
    429           WRITE(numout,*) ' Namelist namlobnut' 
    430           WRITE(numout,*) '    half-saturation nutrient for no3 uptake              akno3     =', akno3 
    431           WRITE(numout,*) '    half-saturation nutrient for nh4 uptake              aknh4     =', aknh4 
    432           WRITE(numout,*) '    nitrification rate                                   taunn     =', taunn 
    433           WRITE(numout,*) '    inhibition of no3 uptake by nh4                      psinut    =', psinut 
    434           WRITE(numout,*) ' ' 
     430         WRITE(numout,*)  
     431         WRITE(numout,*) '   Namelist namlobnut' 
     432         WRITE(numout,*) '      half-saturation nutrient for no3 uptake              akno3     =', akno3 
     433         WRITE(numout,*) '      half-saturation nutrient for nh4 uptake              aknh4     =', aknh4 
     434         WRITE(numout,*) '      nitrification rate                                   taunn     =', taunn 
     435         WRITE(numout,*) '      inhibition of no3 uptake by nh4                      psinut    =', psinut 
    435436      ENDIF 
    436437 
    437438      REWIND( numnatp_ref )              ! Namelist namlobzoo in reference namelist : Lobster zooplankton parameters 
    438439      READ  ( numnatp_ref, namlobzoo, IOSTAT = ios, ERR = 905) 
    439 905   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namlobzoo in reference namelist', lwp ) 
    440  
     440905   IF( ios /= 0 )   CALL ctl_nam ( ios , 'namlobzoo in reference namelist', lwp ) 
    441441      REWIND( numnatp_cfg )              ! Namelist namlobzoo in configuration namelist : Lobster zooplankton parameters 
    442442      READ  ( numnatp_cfg, namlobzoo, IOSTAT = ios, ERR = 906 ) 
    443 906   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namlobzoo in configuration namelist', lwp ) 
     443906   IF( ios >  0 )  CALL ctl_nam ( ios , 'namlobzoo in configuration namelist', lwp ) 
    444444      IF(lwm) WRITE ( numonp, namlobzoo ) 
    445445 
    446446      IF(lwp) THEN 
    447           WRITE(numout,*) ' Namelist namlobzoo' 
    448           WRITE(numout,*) '    zoo preference for phyto                             rppz      =', rppz 
    449           WRITE(numout,*) '    maximal zoo grazing rate                             taus      =', 86400 * taus, ' d' 
    450           WRITE(numout,*) '    half saturation constant for zoo food                aks       =', aks 
    451           WRITE(numout,*) '    non-assimilated phyto by zoo                         rpnaz     =', rpnaz 
    452           WRITE(numout,*) '    non-assimilated detritus by zoo                      rdnaz     =', rdnaz 
    453           WRITE(numout,*) '    zoo specific excretion rate                          tauzn     =', 86400 * tauzn 
    454           WRITE(numout,*) '    minimal zoo mortality rate                           tmminz    =', 86400 * tmminz 
    455           WRITE(numout,*) '    NH4 fraction of zooplankton excretion                fzoolab   =', fzoolab 
    456           WRITE(numout,*) '    Zooplankton mortality fraction that goes to detritus fdbod     =', fdbod 
    457           WRITE(numout,*) ' ' 
     447         WRITE(numout,*)  
     448         WRITE(numout,*) '   Namelist namlobzoo' 
     449         WRITE(numout,*) '      zoo preference for phyto                             rppz      =', rppz 
     450         WRITE(numout,*) '      maximal zoo grazing rate                             taus      =', 86400 * taus, ' d' 
     451         WRITE(numout,*) '      half saturation constant for zoo food                aks       =', aks 
     452         WRITE(numout,*) '      non-assimilated phyto by zoo                         rpnaz     =', rpnaz 
     453         WRITE(numout,*) '      non-assimilated detritus by zoo                      rdnaz     =', rdnaz 
     454         WRITE(numout,*) '      zoo specific excretion rate                          tauzn     =', 86400 * tauzn 
     455         WRITE(numout,*) '      minimal zoo mortality rate                           tmminz    =', 86400 * tmminz 
     456         WRITE(numout,*) '      NH4 fraction of zooplankton excretion                fzoolab   =', fzoolab 
     457         WRITE(numout,*) '      Zooplankton mortality fraction that goes to detritus fdbod     =', fdbod 
    458458      ENDIF 
    459459 
    460460      REWIND( numnatp_ref )              ! Namelist namlobdet in reference namelist : Lobster detritus parameters 
    461461      READ  ( numnatp_ref, namlobdet, IOSTAT = ios, ERR = 907) 
    462 907   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namlobdet in reference namelist', lwp ) 
    463  
     462907   IF( ios /= 0 )   CALL ctl_nam ( ios , 'namlobdet in reference namelist', lwp ) 
    464463      REWIND( numnatp_cfg )              ! Namelist namlobdet in configuration namelist : Lobster detritus parameters 
    465464      READ  ( numnatp_cfg, namlobdet, IOSTAT = ios, ERR = 908 ) 
    466 908   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namlobdet in configuration namelist', lwp ) 
     465908   IF( ios >  0 )  CALL ctl_nam ( ios , 'namlobdet in configuration namelist', lwp ) 
    467466      IF(lwm) WRITE ( numonp, namlobdet ) 
    468467 
    469468      IF(lwp) THEN 
    470           WRITE(numout,*) ' Namelist namlobdet' 
    471           WRITE(numout,*) '    detrital breakdown rate                              taudn     =', 86400 * taudn , ' d' 
    472           WRITE(numout,*) '    NH4 fraction of detritus dissolution                 fdetlab   =', fdetlab 
    473           WRITE(numout,*) ' ' 
     469          WRITE(numout,*)  
     470          WRITE(numout,*) '   Namelist namlobdet' 
     471          WRITE(numout,*) '      detrital breakdown rate                              taudn     =', 86400 * taudn , ' d' 
     472          WRITE(numout,*) '      NH4 fraction of detritus dissolution                 fdetlab   =', fdetlab 
    474473      ENDIF 
    475474 
    476475      REWIND( numnatp_ref )              ! Namelist namlobdom in reference namelist : Lobster DOM breakdown rate 
    477476      READ  ( numnatp_ref, namlobdom, IOSTAT = ios, ERR = 909) 
    478 909   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namlobdom in reference namelist', lwp ) 
    479  
     477909   IF( ios /= 0 )   CALL ctl_nam ( ios , 'namlobdom in reference namelist', lwp ) 
    480478      REWIND( numnatp_cfg )              ! Namelist namlobdom in configuration namelist : Lobster DOM breakdown rate 
    481479      READ  ( numnatp_cfg, namlobdom, IOSTAT = ios, ERR = 910 ) 
    482 910   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namlobdom in configuration namelist', lwp ) 
     480910   IF( ios >  0 )  CALL ctl_nam ( ios , 'namlobdom in configuration namelist', lwp ) 
    483481      IF(lwm) WRITE ( numonp, namlobdom ) 
    484482 
    485483      IF(lwp) THEN 
    486           WRITE(numout,*) ' Namelist namlobdom' 
    487           WRITE(numout,*) '    DOM breakdown rate                                 taudomn     =', 86400 * taudn , ' d' 
    488           WRITE(numout,*) ' ' 
     484          WRITE(numout,*)  
     485          WRITE(numout,*) '   Namelist namlobdom' 
     486          WRITE(numout,*) '      DOM breakdown rate                                 taudomn     =', 86400 * taudn , ' d' 
    489487      ENDIF 
    490488      ! 
Note: See TracChangeset for help on using the changeset viewer.