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 8356 for branches/UKMO/dev_r5518_GO6_package/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zopt.F90 – NEMO

Ignore:
Timestamp:
2017-07-20T15:39:18+02:00 (7 years ago)
Author:
davestorkey
Message:

UKMO/dev_r5518_GO6_package branch: merge in changes from rev 6917 to 6959 of the 3.6_stable branch.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/UKMO/dev_r5518_GO6_package/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zopt.F90

    r6793 r8356  
    114114      !                                        !  -------------------------------------- 
    115115      IF( l_trcdm2dc ) THEN                     !  diurnal cycle 
    116          !                                       ! 1% of qsr to compute euphotic layer 
    117          zqsr100(:,:) = 0.01 * qsr_mean(:,:)     !  daily mean qsr 
    118116         ! 
    119117         zqsr_corr(:,:) = qsr_mean(:,:) / ( 1. - fr_i(:,:) + rtrn ) 
    120118         ! 
    121          CALL p4z_opt_par( kt, zqsr_corr, ze1, ze2, ze3 )  
     119         CALL p4z_opt_par( kt, zqsr_corr, ze1, ze2, ze3, pqsr100 = zqsr100 )  
    122120         ! 
    123121         DO jk = 1, nksrp       
     
    136134         ! 
    137135      ELSE 
    138          ! 1% of qsr to compute euphotic layer 
    139          zqsr100(:,:) = 0.01 * qsr(:,:) 
    140136         ! 
    141137         zqsr_corr(:,:) = qsr(:,:) / ( 1. - fr_i(:,:) + rtrn ) 
    142138         ! 
    143          CALL p4z_opt_par( kt, zqsr_corr, ze1, ze2, ze3 )  
     139         CALL p4z_opt_par( kt, zqsr_corr, ze1, ze2, ze3, pqsr100 = zqsr100 )  
    144140         ! 
    145141         DO jk = 1, nksrp       
     
    169165         DO jj = 1, jpj 
    170166           DO ji = 1, jpi 
    171               IF( etot_ndcy(ji,jj,jk) * tmask(ji,jj,jk) >= 0.43 * zqsr100(ji,jj) )  THEN 
     167              IF( etot_ndcy(ji,jj,jk) * tmask(ji,jj,jk) >= zqsr100(ji,jj) )  THEN 
    172168                 neln(ji,jj) = jk+1                    ! Euphotic level : 1rst T-level strictly below Euphotic layer 
    173169                 !                                     ! nb: ensure the compatibility with nmld_trc definition in trd_mld_trc_zint 
     
    242238   END SUBROUTINE p4z_opt 
    243239 
    244    SUBROUTINE p4z_opt_par( kt, pqsr, pe1, pe2, pe3, pe0 )  
     240   SUBROUTINE p4z_opt_par( kt, pqsr, pe1, pe2, pe3, pe0, pqsr100 )  
    245241      !!---------------------------------------------------------------------- 
    246242      !!                  ***  routine p4z_opt_par  *** 
     
    251247      !!---------------------------------------------------------------------- 
    252248      !! * arguments 
    253       INTEGER, INTENT(in)                                       ::  kt            !   ocean time-step 
    254       REAL(wp), DIMENSION(jpi,jpj)    , INTENT(in)              ::  pqsr          !   shortwave 
    255       REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout)           ::  pe1 , pe2 , pe3   !  PAR ( R-G-B) 
    256       REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout), OPTIONAL ::  pe0   
     249      INTEGER, INTENT(in)                                        ::  kt            !   ocean time-step 
     250      REAL(wp), DIMENSION(jpi,jpj)    , INTENT(in)               ::  pqsr          !   shortwave 
     251      REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout)            ::  pe1 , pe2 , pe3   !  PAR ( R-G-B) 
     252      REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout), OPTIONAL  ::  pe0  
     253      REAL(wp), DIMENSION(jpi,jpj)    , INTENT(out)  , OPTIONAL  ::  pqsr100   
    257254      !! * local variables 
    258255      INTEGER    ::   ji, jj, jk     ! dummy loop indices 
     
    264261      ELSE                  ;  zqsr(:,:) = xparsw         * pqsr(:,:) 
    265262      ENDIF 
     263 
     264      !  Light at the euphotic depth  
     265      IF( PRESENT( pqsr100 ) )  pqsr100(:,:) = 0.01 * 3. * zqsr(:,:) 
    266266      ! 
    267267      IF( PRESENT( pe0 ) ) THEN     !  W-level 
Note: See TracChangeset for help on using the changeset viewer.