Changeset 9817 for branches/UKMO/dev_r5518_nemo2cice_prints/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zopt.F90
- Timestamp:
- 2018-06-21T11:58:42+02:00 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/dev_r5518_nemo2cice_prints/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zopt.F90
r9816 r9817 76 76 REAL(wp) :: zchl 77 77 REAL(wp) :: zc0 , zc1 , zc2, zc3, z1_dep 78 REAL(wp), POINTER, DIMENSION(:,: ) :: zdepmoy, zetmp1, zetmp2, zetmp3, zetmp4, zqsr100 78 REAL(wp), POINTER, DIMENSION(:,: ) :: zdepmoy, zetmp1, zetmp2, zetmp3, zetmp4 79 REAL(wp), POINTER, DIMENSION(:,: ) :: zqsr100, zqsr_corr 79 80 REAL(wp), POINTER, DIMENSION(:,:,:) :: zpar, ze0, ze1, ze2, ze3 80 81 !!--------------------------------------------------------------------- … … 83 84 ! 84 85 ! Allocate temporary workspace 85 CALL wrk_alloc( jpi, jpj, zqsr100, zdepmoy, zetmp1, zetmp2, zetmp3, zetmp4 ) 86 CALL wrk_alloc( jpi, jpj, zdepmoy, zetmp1, zetmp2, zetmp3, zetmp4 ) 87 CALL wrk_alloc( jpi, jpj, zqsr100, zqsr_corr ) 86 88 CALL wrk_alloc( jpi, jpj, jpk, zpar, ze0, ze1, ze2, ze3 ) 87 89 … … 112 114 ! ! -------------------------------------- 113 115 IF( l_trcdm2dc ) THEN ! diurnal cycle 114 ! 1% of qsr to compute euphotic layer115 zqsr 100(:,:) = 0.01 * qsr_mean(:,:) ! daily mean qsr116 ! 117 CALL p4z_opt_par( kt, qsr_mean, ze1, ze2, ze3)116 ! 117 zqsr_corr(:,:) = qsr_mean(:,:) / ( 1. - fr_i(:,:) + rtrn ) 118 ! 119 CALL p4z_opt_par( kt, zqsr_corr, ze1, ze2, ze3, pqsr100 = zqsr100 ) 118 120 ! 119 121 DO jk = 1, nksrp … … 123 125 END DO 124 126 ! 125 CALL p4z_opt_par( kt, qsr, ze1, ze2, ze3 ) 127 zqsr_corr(:,:) = qsr(:,:) / ( 1. - fr_i(:,:) + rtrn ) 128 ! 129 CALL p4z_opt_par( kt, zqsr_corr, ze1, ze2, ze3 ) 126 130 ! 127 131 DO jk = 1, nksrp … … 130 134 ! 131 135 ELSE 132 ! 1% of qsr to compute euphotic layer133 zqsr 100(:,:) = 0.01 * qsr(:,:)134 ! 135 CALL p4z_opt_par( kt, qsr, ze1, ze2, ze3)136 ! 137 zqsr_corr(:,:) = qsr(:,:) / ( 1. - fr_i(:,:) + rtrn ) 138 ! 139 CALL p4z_opt_par( kt, zqsr_corr, ze1, ze2, ze3, pqsr100 = zqsr100 ) 136 140 ! 137 141 DO jk = 1, nksrp … … 161 165 DO jj = 1, jpj 162 166 DO ji = 1, jpi 163 IF( etot_ndcy(ji,jj,jk) * tmask(ji,jj,jk) >= 0.43 *zqsr100(ji,jj) ) THEN167 IF( etot_ndcy(ji,jj,jk) * tmask(ji,jj,jk) >= zqsr100(ji,jj) ) THEN 164 168 neln(ji,jj) = jk+1 ! Euphotic level : 1rst T-level strictly below Euphotic layer 165 169 ! ! nb: ensure the compatibility with nmld_trc definition in trd_mld_trc_zint … … 226 230 ENDIF 227 231 ! 228 CALL wrk_dealloc( jpi, jpj, zqsr100, zdepmoy, zetmp1, zetmp2, zetmp3, zetmp4 ) 232 CALL wrk_dealloc( jpi, jpj, zdepmoy, zetmp1, zetmp2, zetmp3, zetmp4 ) 233 CALL wrk_dealloc( jpi, jpj, zqsr100, zqsr_corr ) 229 234 CALL wrk_dealloc( jpi, jpj, jpk, zpar, ze0, ze1, ze2, ze3 ) 230 235 ! … … 233 238 END SUBROUTINE p4z_opt 234 239 235 SUBROUTINE p4z_opt_par( kt, pqsr, pe1, pe2, pe3, pe0 )240 SUBROUTINE p4z_opt_par( kt, pqsr, pe1, pe2, pe3, pe0, pqsr100 ) 236 241 !!---------------------------------------------------------------------- 237 242 !! *** routine p4z_opt_par *** … … 242 247 !!---------------------------------------------------------------------- 243 248 !! * arguments 244 INTEGER, INTENT(in) :: kt ! ocean time-step 245 REAL(wp), DIMENSION(jpi,jpj) , INTENT(in) :: pqsr ! shortwave 246 REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout) :: pe1 , pe2 , pe3 ! PAR ( R-G-B) 247 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 248 254 !! * local variables 249 255 INTEGER :: ji, jj, jk ! dummy loop indices … … 255 261 ELSE ; zqsr(:,:) = xparsw * pqsr(:,:) 256 262 ENDIF 263 264 ! Light at the euphotic depth 265 IF( PRESENT( pqsr100 ) ) pqsr100(:,:) = 0.01 * 3. * zqsr(:,:) 257 266 ! 258 267 IF( PRESENT( pe0 ) ) THEN ! W-level … … 439 448 440 449 !!====================================================================== 441 END MODULE 450 END MODULE p4zopt
Note: See TracChangeset
for help on using the changeset viewer.