- Timestamp:
- 2020-09-29T12:41:06+02:00 (4 years ago)
- Location:
- NEMO/branches/2020/r12377_ticket2386
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2020/r12377_ticket2386
- Property svn:externals
-
old new 3 3 ^/utils/build/mk@HEAD mk 4 4 ^/utils/tools@HEAD tools 5 ^/vendors/AGRIF/dev @HEADext/AGRIF5 ^/vendors/AGRIF/dev_r12970_AGRIF_CMEMS ext/AGRIF 6 6 ^/vendors/FCM@HEAD ext/FCM 7 7 ^/vendors/IOIPSL@HEAD ext/IOIPSL 8 8 9 9 # SETTE 10 ^/utils/CI/sette@ HEADsette10 ^/utils/CI/sette@13507 sette
-
- Property svn:externals
-
NEMO/branches/2020/r12377_ticket2386/src/TOP/PISCES/P4Z/p4zsms.F90
r12511 r13540 25 25 USE trdtrc ! TOP trends variables 26 26 USE sedmodel ! Sediment model 27 USE prtctl _trc! print control for debugging27 USE prtctl ! print control for debugging 28 28 29 29 IMPLICIT NONE … … 41 41 !! * Substitutions 42 42 # include "do_loop_substitute.h90" 43 # include "domzgr_substitute.h90" 43 44 !!---------------------------------------------------------------------- 44 45 !! NEMO/TOP 4.0 , NEMO Consortium (2018) … … 68 69 REAL(wp), ALLOCATABLE, DIMENSION(:,: ) :: zw2d 69 70 REAL(wp), ALLOCATABLE, DIMENSION(:,:,: ) :: zw3d 70 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:,:) :: ztrdt ! 4D workspace71 REAL(wp), DIMENSION(jpi,jpj,jpk,jp_pisces) :: ztrbbio 71 72 72 73 !!--------------------------------------------------------------------- … … 92 93 rfact = rDt_trc 93 94 ! 94 ! trends computation initialisation95 IF( l_trdtrc ) THEN96 ALLOCATE( ztrdt(jpi,jpj,jpk,jp_pisces) ) !* store now fields before applying the Asselin filter97 ztrdt(:,:,:,:) = tr(:,:,:,:,Kmm)98 ENDIF99 !100 101 95 IF( ( ln_top_euler .AND. kt == nittrc000 ) .OR. ( .NOT.ln_top_euler .AND. kt <= nittrc000 + 1 ) ) THEN 102 96 rfactr = 1. / rfact … … 116 110 END DO 117 111 ENDIF 112 113 DO jn = jp_pcs0, jp_pcs1 ! Store the tracer concentrations before entering PISCES 114 ztrbbio(:,:,:,jn) = tr(:,:,:,jn,Kbb) 115 END DO 116 118 117 ! 119 118 IF( ll_bc ) CALL p4z_bc( kt, Kbb, Kmm, Krhs ) ! external sources of nutrients … … 132 131 xnegtr(:,:,:) = 1.e0 133 132 DO jn = jp_pcs0, jp_pcs1 134 DO_3D _11_11(1, jpk )133 DO_3D( 1, 1, 1, 1, 1, jpk ) 135 134 IF( ( tr(ji,jj,jk,jn,Kbb) + tr(ji,jj,jk,jn,Krhs) ) < 0.e0 ) THEN 136 135 ztra = ABS( tr(ji,jj,jk,jn,Kbb) ) / ( ABS( tr(ji,jj,jk,jn,Krhs) ) + rtrn ) … … 197 196 END DO 198 197 ! 199 IF( ln_top_euler ) THEN 200 DO jn = jp_pcs0, jp_pcs1 201 tr(:,:,:,jn,Kmm) = tr(:,:,:,jn,Kbb) 202 END DO 203 ENDIF 198 END DO 199 ! 200 #endif 201 ! 202 IF( ln_sediment ) THEN 203 ! 204 CALL sed_model( kt, Kbb, Kmm, Krhs ) ! Main program of Sediment model 205 ! 206 ENDIF 207 ! 208 DO jn = jp_pcs0, jp_pcs1 209 tr(:,:,:,jn,Krhs) = ( tr(:,:,:,jn,Kbb) - ztrbbio(:,:,:,jn) ) * rfactr 210 tr(:,:,:,jn,Kbb ) = ztrbbio(:,:,:,jn) 211 ztrbbio(:,:,:,jn) = 0._wp 204 212 END DO 205 213 ! 206 214 IF( l_trdtrc ) THEN 207 215 DO jn = jp_pcs0, jp_pcs1 208 ztrdt(:,:,:,jn) = ( tr(:,:,:,jn,Kbb) - ztrdt(:,:,:,jn) ) * rfact2r209 216 CALL trd_trc( tr(:,:,:,jn,Krhs), jn, jptra_sms, kt, Kmm ) ! save trends 210 217 END DO 211 DEALLOCATE( ztrdt )212 218 END IF 213 #endif 214 ! 215 IF( ln_sediment ) THEN 216 ! 217 CALL sed_model( kt, Kbb, Kmm, Krhs ) ! Main program of Sediment model 218 ! 219 IF( ln_top_euler ) THEN 220 DO jn = jp_pcs0, jp_pcs1 221 tr(:,:,:,jn,Kmm) = tr(:,:,:,jn,Kbb) 222 END DO 223 ENDIF 224 ! 225 ENDIF 226 ! 219 ! 227 220 IF( lrst_trc ) CALL p4z_rst( kt, Kbb, Kmm, 'WRITE' ) !* Write PISCES informations in restart file 228 221 ! … … 340 333 ! 341 334 IF( iom_varid( numrtr, 'PH', ldstop = .FALSE. ) > 0 ) THEN 342 CALL iom_get( numrtr, jpdom_auto glo, 'PH' , hi(:,:,:) )335 CALL iom_get( numrtr, jpdom_auto, 'PH' , hi(:,:,:) ) 343 336 ELSE 344 337 CALL p4z_che( Kbb, Kmm ) ! initialize the chemical constants 345 338 CALL ahini_for_at( hi, Kbb ) 346 339 ENDIF 347 CALL iom_get( numrtr, jpdom_auto glo, 'Silicalim', xksi(:,:) )340 CALL iom_get( numrtr, jpdom_auto, 'Silicalim', xksi(:,:) ) 348 341 IF( iom_varid( numrtr, 'Silicamax', ldstop = .FALSE. ) > 0 ) THEN 349 CALL iom_get( numrtr, jpdom_auto glo, 'Silicamax' , xksimax(:,:) )342 CALL iom_get( numrtr, jpdom_auto, 'Silicamax' , xksimax(:,:) ) 350 343 ELSE 351 344 xksimax(:,:) = xksi(:,:) … … 360 353 IF( ln_p5z ) THEN 361 354 IF( iom_varid( numrtr, 'sized', ldstop = .FALSE. ) > 0 ) THEN 362 CALL iom_get( numrtr, jpdom_auto glo, 'sizep' , sizep(:,:,:) )363 CALL iom_get( numrtr, jpdom_auto glo, 'sizen' , sizen(:,:,:) )364 CALL iom_get( numrtr, jpdom_auto glo, 'sized' , sized(:,:,:) )355 CALL iom_get( numrtr, jpdom_auto, 'sizep' , sizep(:,:,:) ) 356 CALL iom_get( numrtr, jpdom_auto, 'sizen' , sizen(:,:,:) ) 357 CALL iom_get( numrtr, jpdom_auto, 'sized' , sized(:,:,:) ) 365 358 ELSE 366 359 sizep(:,:,:) = 1.
Note: See TracChangeset
for help on using the changeset viewer.