Changeset 9125 for branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/PISCES
- Timestamp:
- 2017-12-19T09:47:17+01:00 (7 years ago)
- Location:
- branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/PISCES
- Files:
-
- 20 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zbio.F90
r9124 r9125 96 96 REAL(wp) :: znh4a, zdeta, zdoma, zzoobod, zboddet, zdomaju 97 97 REAL(wp) :: ze3t 98 REAL(wp), POINTER, DIMENSION(:,:,:) :: zw2d99 REAL(wp), POINTER, DIMENSION(:,:,:,:) :: zw3d98 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zw2d 99 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:,:) :: zw3d 100 100 CHARACTER (len=25) :: charout 101 101 !!--------------------------------------------------------------------- … … 103 103 IF( ln_timing ) CALL timing_start('p2z_bio') 104 104 ! 105 IF( lk_iomput ) THEN 106 CALL wrk_alloc( jpi, jpj, 17, zw2d ) 107 CALL wrk_alloc( jpi, jpj, jpk, 3, zw3d ) 108 ENDIF 105 IF( lk_iomput ) ALLOCATE( zw2d(jpi,jpj,17), zw3d(jpi,jpj,jpk,3) ) 109 106 110 107 IF( kt == nittrc000 ) THEN … … 377 374 ENDIF 378 375 ! 379 IF( lk_iomput ) THEN 380 CALL wrk_dealloc( jpi, jpj, 17, zw2d ) 381 CALL wrk_dealloc( jpi, jpj, jpk, 3, zw3d ) 382 ENDIF 376 IF( lk_iomput ) DEALLOCATE( zw2d, zw3d ) 383 377 ! 384 378 IF( ln_timing ) CALL timing_stop('p2z_bio') -
branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zexp.F90
r9124 r9125 64 64 INTEGER :: ji, jj, jk, jl, ikt 65 65 REAL(wp) :: zgeolpoc, zfact, zwork, ze3t, zsedpocd, zmaskt 66 REAL(wp), POINTER, DIMENSION(:,:) :: zsedpoca66 REAL(wp), DIMENSION(jpi,jpj) :: zsedpoca 67 67 CHARACTER (len=25) :: charout 68 68 !!--------------------------------------------------------------------- … … 72 72 IF( kt == nittrc000 ) CALL p2z_exp_init 73 73 74 CALL wrk_alloc( jpi, jpj, zsedpoca )75 74 zsedpoca(:,:) = 0. 76 75 … … 147 146 ENDIF 148 147 ! 149 CALL wrk_dealloc( jpi, jpj, zsedpoca) ! temporary save of trends150 151 148 IF(ln_ctl) THEN ! print mean trends (used for debugging) 152 149 WRITE(charout, FMT="('exp')") … … 167 164 INTEGER :: ji, jj, jk 168 165 REAL(wp) :: zmaskt, zfluo, zfluu 169 REAL(wp), POINTER, DIMENSION(:,: ) ::zrro170 REAL(wp), POINTER, DIMENSION(:,:,:) ::zdm0166 REAL(wp), DIMENSION(jpi,jpj ) :: zrro 167 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zdm0 171 168 !!--------------------------------------------------------------------- 172 169 ! … … 178 175 ENDIF 179 176 ! 180 ! Allocate temporary workspace181 CALL wrk_alloc( jpi, jpj, zrro )182 CALL wrk_alloc( jpi, jpj, jpk, zdm0 )183 184 177 185 178 ! Calculate vertical distribution of newly formed biogenic poc … … 247 240 ENDIF 248 241 ! 249 CALL wrk_dealloc( jpi, jpj, zrro )250 CALL wrk_dealloc( jpi, jpj, jpk, zdm0 )251 !252 242 END SUBROUTINE p2z_exp_init 253 243 -
branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zopt.F90
r9124 r9125 67 67 REAL(wp) :: zkr, zkg ! total absorption coefficient in red and green 68 68 REAL(wp) :: zcoef ! temporary scalar 69 REAL(wp), POINTER, DIMENSION(:,:) :: zpar100, zpar0m70 REAL(wp), POINTER, DIMENSION(:,:,:) :: zparr, zparg69 REAL(wp), DIMENSION(jpi,jpj ) :: zpar100, zpar0m 70 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zparr, zparg 71 71 !!--------------------------------------------------------------------- 72 72 ! 73 73 IF( ln_timing ) CALL timing_start('p2z_opt') 74 74 ! 75 ! Allocate temporary workspace76 CALL wrk_alloc( jpi, jpj, zpar100, zpar0m )77 CALL wrk_alloc( jpi, jpj, jpk, zparr, zparg )78 75 79 76 IF( kt == nittrc000 ) THEN … … 142 139 ENDIF 143 140 ! 144 CALL wrk_dealloc( jpi, jpj, zpar100, zpar0m )145 CALL wrk_dealloc( jpi, jpj, jpk, zparr, zparg )146 !147 141 IF( ln_timing ) CALL timing_stop('p2z_opt') 148 142 ! -
branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zsed.F90
r9124 r9125 59 59 INTEGER :: ji, jj, jk, jl, ierr 60 60 CHARACTER (len=25) :: charout 61 REAL(wp), POINTER, DIMENSION(:,:) :: zw2d62 REAL(wp), POINTER, DIMENSION(:,:,:) :: zwork, ztra61 REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: zw2d 62 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zwork, ztra 63 63 !!--------------------------------------------------------------------- 64 64 ! … … 70 70 IF(lwp) WRITE(numout,*) ' ~~~~~~~' 71 71 ENDIF 72 73 ! Allocate temporary workspace74 CALL wrk_alloc( jpi, jpj, jpk, zwork, ztra )75 72 76 73 ! sedimentation of detritus : upstream scheme … … 98 95 IF( lk_iomput ) THEN 99 96 IF( iom_use( "TDETSED" ) ) THEN 100 CALL wrk_alloc( jpi, jpj, zw2d)97 ALLOCATE( zw2d(jpi,jpj) ) 101 98 zw2d(:,:) = ztra(:,:,1) * e3t_n(:,:,1) * 86400._wp 102 99 DO jk = 2, jpkm1 … … 104 101 END DO 105 102 CALL iom_put( "TDETSED", zw2d ) 106 CALL wrk_dealloc( jpi, jpj,zw2d )103 DEALLOCATE( zw2d ) 107 104 ENDIF 108 105 ENDIF 109 !110 CALL wrk_dealloc( jpi, jpj, jpk, zwork, ztra )111 106 ! 112 107 -
branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zche.F90
r9124 r9125 564 564 LOGICAL :: l_exitnow 565 565 REAL(wp), PARAMETER :: pz_exp_threshold = 1.0 566 REAL(wp), POINTER, DIMENSION(:,:,:) :: zalknw_inf, zalknw_sup, rmask, zh_min, zh_max, zeqn_absmin566 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zalknw_inf, zalknw_sup, rmask, zh_min, zh_max, zeqn_absmin 567 567 568 568 IF( ln_timing ) CALL timing_start('solve_at_general') 569 ! Allocate temporary workspace570 CALL wrk_alloc( jpi, jpj, jpk, zalknw_inf, zalknw_sup, rmask )571 CALL wrk_alloc( jpi, jpj, jpk, zh_min, zh_max, zeqn_absmin )572 569 573 570 CALL anw_infsup( zalknw_inf, zalknw_sup ) … … 799 796 END DO 800 797 ! 801 CALL wrk_dealloc( jpi, jpj, jpk, zalknw_inf, zalknw_sup, rmask )802 CALL wrk_dealloc( jpi, jpj, jpk, zh_min, zh_max, zeqn_absmin )803 804 798 805 799 IF( ln_timing ) CALL timing_stop('solve_at_general') -
branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zfechem.F90
r9124 r9125 74 74 REAL(wp) :: dissol, zligco 75 75 CHARACTER (len=25) :: charout 76 REAL(wp), POINTER, DIMENSION(:,:,:) :: zTL1, zFe3, ztotlig, precip77 REAL(wp), POINTER, DIMENSION(:,:,:) :: zFeL1,zFeL2, zTL2, zFe2, zFeP78 REAL(wp), POINTER, DIMENSION(:,: ) :: zstrn, zstrn276 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zTL1, zFe3, ztotlig, precip, zFeL1 77 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zFeL2, zTL2, zFe2, zFeP 78 REAL(wp), ALLOCATABLE, DIMENSION(:,: ) :: zstrn, zstrn2 79 79 !!--------------------------------------------------------------------- 80 80 ! 81 81 IF( ln_timing ) CALL timing_start('p4z_fechem') 82 82 ! 83 ! Allocate temporary workspace84 CALL wrk_alloc( jpi, jpj, jpk, zFe3, zFeL1, zTL1, ztotlig, precip )85 83 zFe3 (:,:,:) = 0. 86 84 zFeL1(:,:,:) = 0. 87 85 zTL1 (:,:,:) = 0. 88 86 IF( ln_fechem ) THEN 89 CALL wrk_alloc( jpi, jpj, zstrn, zstrn2)90 CALL wrk_alloc( jpi, jpj, jpk, zFe2, zFeL2, zTL2, zFeP)87 ALLOCATE( zstrn(jpi,jpj), zstrn2(jpi,jpj) ) 88 ALLOCATE( zFe2(jpi,jpj,jpk), zFeL2(jpi,jpj,jpk), zTL2(jpi,jpj,jpk), zFeP(jpi,jpj,jpk) ) 91 89 zFe2 (:,:,:) = 0. 92 90 zFeL2(:,:,:) = 0. … … 360 358 ENDIF 361 359 ! 362 CALL wrk_dealloc( jpi, jpj, jpk, zFe3, zFeL1, zTL1, ztotlig, precip )363 360 IF( ln_fechem ) THEN 364 CALL wrk_dealloc( jpi, jpj,zstrn, zstrn2 )365 CALL wrk_dealloc( jpi, jpj, jpk,zFe2, zFeL2, zTL2, zFeP )361 DEALLOCATE( zstrn, zstrn2 ) 362 DEALLOCATE( zFe2, zFeL2, zTL2, zFeP ) 366 363 ENDIF 367 364 ! -
branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zflx.F90
r9124 r9125 80 80 REAL(wp) :: zyr_dec, zdco2dt 81 81 CHARACTER (len=25) :: charout 82 REAL(wp), POINTER, DIMENSION(:,:) :: zkgco2, zkgo2, zh2co3, zoflx, zw2d, zpco2atm 82 REAL(wp), DIMENSION(jpi,jpj) :: zkgco2, zkgo2, zh2co3, zoflx, zpco2atm 83 REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: zw2d 83 84 !!--------------------------------------------------------------------- 84 85 ! 85 86 IF( ln_timing ) CALL timing_start('p4z_flx') 86 !87 CALL wrk_alloc( jpi, jpj, zkgco2, zkgo2, zh2co3, zoflx, zpco2atm )88 87 ! 89 88 … … 187 186 188 187 IF( lk_iomput .AND. knt == nrdttrc ) THEN 189 CALL wrk_alloc( jpi, jpj, zw2d)188 ALLOCATE( zw2d(jpi,jpj) ) 190 189 IF( iom_use( "Cflx" ) ) THEN 191 190 zw2d(:,:) = oce_co2(:,:) / e1e2t(:,:) * rfact2r … … 211 210 CALL iom_put( "tcflxcum" , t_oce_co2_flx_cum ) ! molC 212 211 ! 213 CALL wrk_dealloc( jpi, jpj, zw2d ) 214 ENDIF 215 ! 216 CALL wrk_dealloc( jpi, jpj, zkgco2, zkgo2, zh2co3, zoflx, zpco2atm ) 212 DEALLOCATE( zw2d ) 213 ENDIF 217 214 ! 218 215 IF( ln_timing ) CALL timing_stop('p4z_flx') -
branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zlys.F90
r9124 r9125 62 62 REAL(wp) :: zomegaca, zexcess, zexcess0 63 63 CHARACTER (len=25) :: charout 64 REAL(wp), POINTER, DIMENSION(:,:,:) :: zco3, zcaldiss, zhinit, zhi, zco3sat64 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zco3, zcaldiss, zhinit, zhi, zco3sat 65 65 !!--------------------------------------------------------------------- 66 66 ! 67 67 IF( ln_timing ) CALL timing_start('p4z_lys') 68 !69 CALL wrk_alloc( jpi, jpj, jpk, zco3, zcaldiss, zhinit, zhi, zco3sat )70 68 ! 71 69 zco3 (:,:,:) = 0. … … 139 137 ENDIF 140 138 ! 141 CALL wrk_dealloc( jpi, jpj, jpk, zco3, zcaldiss, zhinit, zhi, zco3sat )142 !143 139 IF( ln_timing ) CALL timing_stop('p4z_lys') 144 140 ! -
branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zmeso.F90
r9124 r9125 72 72 REAL(wp) :: zgrazfffp, zgrazfffg, zgrazffep, zgrazffeg 73 73 CHARACTER (len=25) :: charout 74 REAL(wp), POINTER, DIMENSION(:,:,:) :: zgrazing, zw3d 74 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zgrazing 75 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zw3d 75 76 76 77 !!--------------------------------------------------------------------- … … 78 79 IF( ln_timing ) CALL timing_start('p4z_meso') 79 80 ! 80 CALL wrk_alloc( jpi, jpj, jpk, zgrazing )81 81 zgrazing(:,:,:) = 0._wp 82 82 … … 220 220 ! 221 221 IF( lk_iomput .AND. knt == nrdttrc ) THEN 222 CALL wrk_alloc( jpi, jpj, jpk, zw3d)222 ALLOCATE( zw3d(jpi,jpj,jpk) ) 223 223 IF( iom_use( "GRAZ2" ) ) THEN 224 224 zw3d(:,:,:) = zgrazing(:,:,:) * 1.e+3 * rfact2r * tmask(:,:,:) ! Total grazing of phyto by zooplankton … … 229 229 CALL iom_put( "PCAL", zw3d ) 230 230 ENDIF 231 CALL wrk_dealloc( jpi, jpj, jpk,zw3d )231 DEALLOCATE( zw3d ) 232 232 ENDIF 233 233 ! … … 237 237 CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm) 238 238 ENDIF 239 !240 CALL wrk_dealloc( jpi, jpj, jpk, zgrazing )241 239 ! 242 240 IF( ln_timing ) CALL timing_stop('p4z_meso') -
branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zmicro.F90
r9124 r9125 69 69 REAL(wp) :: zgrazp, zgrazm, zgrazsd 70 70 REAL(wp) :: zgrazmf, zgrazsf, zgrazpf 71 REAL(wp), POINTER, DIMENSION(:,:,:) :: zgrazing, zw3d 71 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zgrazing 72 REAL(wp), DIMENSION(:,:,:), ALLOCATABLE :: zw3d 72 73 CHARACTER (len=25) :: charout 73 74 !!--------------------------------------------------------------------- 74 75 ! 75 76 IF( ln_timing ) CALL timing_start('p4z_micro') 76 !77 CALL wrk_alloc( jpi, jpj, jpk, zgrazing )78 77 ! 79 78 DO jk = 1, jpkm1 … … 177 176 IF( lk_iomput ) THEN 178 177 IF( knt == nrdttrc ) THEN 179 CALL wrk_alloc( jpi, jpj, jpk, zw3d)178 ALLOCATE( zw3d(jpi,jpj,jpk) ) 180 179 IF( iom_use( "GRAZ1" ) ) THEN 181 180 zw3d(:,:,:) = zgrazing(:,:,:) * 1.e+3 * rfact2r * tmask(:,:,:) ! Total grazing of phyto by zooplankton 182 181 CALL iom_put( "GRAZ1", zw3d ) 183 182 ENDIF 184 CALL wrk_dealloc( jpi, jpj, jpk,zw3d )183 DEALLOCATE( zw3d ) 185 184 ENDIF 186 185 ENDIF … … 191 190 CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm) 192 191 ENDIF 193 !194 CALL wrk_dealloc( jpi, jpj, jpk, zgrazing )195 192 ! 196 193 IF( ln_timing ) CALL timing_stop('p4z_micro') -
branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zopt.F90
r9124 r9125 64 64 REAL(wp) :: zchl 65 65 REAL(wp) :: zc0 , zc1 , zc2, zc3, z1_dep 66 REAL(wp), POINTER, DIMENSION(:,: ) :: zdepmoy, zetmp1, zetmp2, zetmp3, zetmp467 REAL(wp), POINTER, DIMENSION(:,: ) :: zetmp568 REAL(wp), POINTER, DIMENSION(:,:) :: zqsr100, zqsr_corr69 REAL(wp), POINTER, DIMENSION(:,:,:) :: zpar, ze0, ze1, ze2, ze3, zchl3d66 REAL(wp), ALLOCATABLE, DIMENSION(:,: ) :: zetmp5 67 REAL(wp), DIMENSION(jpi,jpj ) :: zdepmoy, zetmp1, zetmp2, zetmp3, zetmp4 68 REAL(wp), DIMENSION(jpi,jpj ) :: zqsr100, zqsr_corr 69 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zpar, ze0, ze1, ze2, ze3, zchl3d 70 70 !!--------------------------------------------------------------------- 71 71 ! … … 73 73 ! 74 74 ! Allocate temporary workspace 75 CALL wrk_alloc( jpi, jpj, zdepmoy, zetmp1, zetmp2, zetmp3, zetmp4 ) 76 CALL wrk_alloc( jpi, jpj, zqsr100, zqsr_corr ) 77 IF( ln_p5z ) CALL wrk_alloc( jpi, jpj, zetmp5 ) 78 CALL wrk_alloc( jpi, jpj, jpk, zpar , ze0, ze1, ze2, ze3, zchl3d ) 75 IF( ln_p5z ) ALLOCATE( zetmp5(jpi,jpj) ) 79 76 80 77 IF( knt == 1 .AND. ln_varpar ) CALL p4z_opt_sbc( kt ) … … 243 240 ENDIF 244 241 ! 245 CALL wrk_dealloc( jpi, jpj, zdepmoy, zetmp1, zetmp2, zetmp3, zetmp4 ) 246 CALL wrk_dealloc( jpi, jpj, zqsr100, zqsr_corr ) 247 IF( ln_p5z ) CALL wrk_dealloc( jpi, jpj, zetmp5 ) 248 CALL wrk_dealloc( jpi, jpj, jpk, zpar , ze0, ze1, ze2, ze3, zchl3d ) 242 IF( ln_p5z ) DEALLOCATE( zetmp5 ) 249 243 ! 250 244 IF( ln_timing ) CALL timing_stop('p4z_opt') -
branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zpoc.F90
r9124 r9125 63 63 REAL(wp) :: zrfact2 64 64 CHARACTER (len=25) :: charout 65 REAL(wp), POINTER, DIMENSION(:,:) :: totprod, totthick, totcons66 REAL(wp), POINTER, DIMENSION(:,:,:) :: zremipoc, zremigoc, zorem3, ztremint67 REAL(wp), POINTER, DIMENSION(:,:,:,:) :: alphag65 REAL(wp), DIMENSION(jpi,jpj ) :: totprod, totthick, totcons 66 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zremipoc, zremigoc, zorem3, ztremint 67 REAL(wp), DIMENSION(jpi,jpj,jpk,jcpoc) :: alphag 68 68 !!--------------------------------------------------------------------- 69 69 ! 70 70 IF( ln_timing ) CALL timing_start('p4z_poc') 71 71 ! 72 ! Allocate temporary workspace73 CALL wrk_alloc( jpi, jpj, totprod, totthick, totcons )74 CALL wrk_alloc( jpi, jpj, jpk, zremipoc, zremigoc, zorem3, ztremint )75 ALLOCATE( alphag(jpi,jpj,jpk,jcpoc) )76 77 72 ! Initialization of local variables 78 73 ! --------------------------------- … … 465 460 ENDIF 466 461 ! 467 CALL wrk_dealloc( jpi, jpj, totprod, totthick, totcons )468 CALL wrk_dealloc( jpi, jpj, jpk, zremipoc, zremigoc, zorem3, ztremint )469 DEALLOCATE( alphag )470 462 ! 471 463 IF( ln_timing ) CALL timing_stop('p4z_poc') -
branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zprod.F90
r9124 r9125 76 76 REAL(wp) :: zfact 77 77 CHARACTER (len=25) :: charout 78 REAL(wp), POINTER, DIMENSION(:,: ) :: zstrn, zw2d, zmixnano, zmixdiat 79 REAL(wp), POINTER, DIMENSION(:,:,:) :: zpislopeadn, zpislopeadd, zysopt, zw3d 80 REAL(wp), POINTER, DIMENSION(:,:,:) :: zprdia, zprbio, zprdch, zprnch 81 REAL(wp), POINTER, DIMENSION(:,:,:) :: zprorcan, zprorcad, zprofed, zprofen 82 REAL(wp), POINTER, DIMENSION(:,:,:) :: zpronewn, zpronewd 83 REAL(wp), POINTER, DIMENSION(:,:,:) :: zmxl_fac, zmxl_chl 78 REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: zw2d 79 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zw3d 80 REAL(wp), DIMENSION(jpi,jpj ) :: zstrn, zmixnano, zmixdiat 81 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zpislopeadn, zpislopeadd, zysopt 82 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zprdia, zprbio, zprdch, zprnch 83 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zprorcan, zprorcad, zprofed, zprofen 84 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zpronewn, zpronewd 85 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zmxl_fac, zmxl_chl 84 86 !!--------------------------------------------------------------------- 85 87 ! … … 87 89 ! 88 90 ! Allocate temporary workspace 89 CALL wrk_alloc( jpi, jpj, zmixnano, zmixdiat, zstrn )90 CALL wrk_alloc( jpi, jpj, jpk, zpislopeadn, zpislopeadd, zprdia, zprbio, zprdch, zprnch, zysopt )91 CALL wrk_alloc( jpi, jpj, jpk, zmxl_fac, zmxl_chl )92 CALL wrk_alloc( jpi, jpj, jpk, zprorcan, zprorcad, zprofed, zprofen, zpronewn, zpronewd )93 91 ! 94 92 zprorcan(:,:,:) = 0._wp ; zprorcad(:,:,:) = 0._wp ; zprofed (:,:,:) = 0._wp … … 367 365 IF( lk_iomput ) THEN 368 366 IF( knt == nrdttrc ) THEN 369 CALL wrk_alloc( jpi, jpj, zw2d ) 370 CALL wrk_alloc( jpi, jpj, jpk, zw3d ) 367 ALLOCATE( zw2d(jpi,jpj), zw3d(jpi,jpj,jpk) ) 371 368 zfact = 1.e+3 * rfact2r ! conversion from mol/l/kt to mol/m3/s 372 369 ! … … 469 466 IF( iom_use( "tintpp" ) ) CALL iom_put( "tintpp" , tpp * zfact ) ! global total integrated primary production molC/s 470 467 ! 471 CALL wrk_dealloc( jpi, jpj, zw2d ) 472 CALL wrk_dealloc( jpi, jpj, jpk, zw3d ) 468 DEALLOCATE( zw2d, zw3d ) 473 469 ENDIF 474 470 ENDIF … … 479 475 CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm) 480 476 ENDIF 481 !482 CALL wrk_dealloc( jpi, jpj, zmixnano, zmixdiat, zstrn )483 CALL wrk_dealloc( jpi, jpj, jpk, zpislopeadn, zpislopeadd, zprdia, zprbio, zprdch, zprnch, zysopt )484 CALL wrk_dealloc( jpi, jpj, jpk, zmxl_fac, zmxl_chl )485 CALL wrk_dealloc( jpi, jpj, jpk, zprorcan, zprorcad, zprofed, zprofen, zpronewn, zpronewd )486 477 ! 487 478 IF( ln_timing ) CALL timing_stop('p4z_prod') -
branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zrem.F90
r9124 r9125 67 67 REAL(wp) :: zosil, ztem, zdenitnh4, zolimic, zolimin, zolimip, zdenitrn, zdenitrp 68 68 CHARACTER (len=25) :: charout 69 REAL(wp), POINTER, DIMENSION(:,: ) :: ztempbac 70 REAL(wp), POINTER, DIMENSION(:,:,:) :: zdepbac, zolimi, zdepprod, zfacsi, zw3d, zfacsib 69 REAL(wp), DIMENSION(jpi,jpj ) :: ztempbac 70 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zdepbac, zolimi, zdepprod, zfacsi, zfacsib 71 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zw3d 71 72 !!--------------------------------------------------------------------- 72 73 ! 73 74 IF( ln_timing ) CALL timing_start('p4z_rem') 74 75 ! 75 ! Allocate temporary workspace 76 CALL wrk_alloc( jpi, jpj, ztempbac ) 77 CALL wrk_alloc( jpi, jpj, jpk, zdepbac, zdepprod, zolimi, zfacsi, zfacsib ) 78 79 ! Initialisation of temprary arrys 76 ! Initialisation of arrys 80 77 zdepprod(:,:,:) = 1._wp 81 78 ztempbac(:,:) = 0._wp … … 270 267 271 268 IF( knt == nrdttrc ) THEN 272 CALL wrk_alloc( jpi, jpj, jpk, zw3d)269 ALLOCATE( zw3d(jpi,jpj,jpk) ) 273 270 zfact = 1.e+3 * rfact2r ! conversion from mol/l/kt to mol/m3/s 274 271 ! … … 282 279 ENDIF 283 280 ! 284 CALL wrk_dealloc( jpi, jpj, jpk,zw3d )281 DEALLOCATE( zw3d ) 285 282 ENDIF 286 !287 CALL wrk_dealloc( jpi, jpj, ztempbac )288 CALL wrk_dealloc( jpi, jpj, jpk, zdepbac, zdepprod, zolimi, zfacsi, zfacsib )289 283 ! 290 284 IF( ln_timing ) CALL timing_stop('p4z_rem') -
branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsed.F90
r9124 r9125 62 62 ! 63 63 CHARACTER (len=25) :: charout 64 REAL(wp), POINTER, DIMENSION(:,: ) :: zsidep, zwork1, zwork2, zwork3 65 REAL(wp), POINTER, DIMENSION(:,: ) :: zdenit2d, zironice, zbureff 66 REAL(wp), POINTER, DIMENSION(:,: ) :: zwsbio3, zwsbio4, zwscal 67 REAL(wp), POINTER, DIMENSION(:,: ) :: zsedcal, zsedsi, zsedc 68 REAL(wp), POINTER, DIMENSION(:,:,:) :: ztrpo4, ztrdop, zirondep, zsoufer, zpdep, zlight 69 REAL(wp), POINTER, DIMENSION(:,: ) :: zwsfep 64 REAL(wp), DIMENSION(jpi,jpj ) :: zwork1, zwork2, zwork3 65 REAL(wp), DIMENSION(jpi,jpj ) :: zdenit2d, zbureff 66 REAL(wp), DIMENSION(jpi,jpj ) :: zwsbio3, zwsbio4, zwscal 67 REAL(wp), DIMENSION(jpi,jpj ) :: zsedcal, zsedsi, zsedc 68 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zsoufer, zlight 69 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: ztrpo4, ztrdop, zirondep, zpdep 70 REAL(wp), ALLOCATABLE, DIMENSION(:,: ) :: zsidep, zwsfep, zironice 70 71 !!--------------------------------------------------------------------- 71 72 ! … … 75 76 ! 76 77 ! Allocate temporary workspace 77 CALL wrk_alloc( jpi, jpj, zdenit2d, zwork1, zwork2, zwork3, zbureff ) 78 CALL wrk_alloc( jpi, jpj, zwsbio3, zwsbio4, zwscal ) 79 CALL wrk_alloc( jpi, jpj, zsedcal, zsedsi, zsedc ) 80 CALL wrk_alloc( jpi, jpj, jpk, zlight, zsoufer ) 81 IF( ln_p5z ) CALL wrk_alloc( jpi, jpj, jpk, ztrpo4, ztrdop ) 82 IF( ln_ligand ) CALL wrk_alloc( jpi, jpj, zwsfep ) 78 IF( ln_p5z ) ALLOCATE( ztrpo4(jpi,jpj,jpk), ztrdop(jpi,jpj,jpk) ) 79 IF( ln_ligand ) ALLOCATE( zwsfep(jpi,jpj) ) 83 80 84 81 … … 97 94 IF( ln_ironice ) THEN 98 95 ! 99 CALL wrk_alloc( jpi, jpj, zironice)96 ALLOCATE( zironice(jpi,jpj) ) 100 97 ! 101 98 DO jj = 1, jpj … … 114 111 & CALL iom_put( "Ironice", zironice(:,:) * 1.e+3 * rfact2r * e3t_n(:,:,1) * tmask(:,:,1) ) ! iron flux from ice 115 112 ! 116 CALL wrk_dealloc( jpi, jpj,zironice )113 DEALLOCATE( zironice ) 117 114 ! 118 115 ENDIF … … 122 119 IF( ln_dust ) THEN 123 120 ! 124 CALL wrk_alloc( jpi, jpj, zsidep)125 CALL wrk_alloc( jpi, jpj, jpk, zpdep, zirondep)121 ALLOCATE( zsidep(jpi,jpj) ) 122 ALLOCATE( zpdep(jpi,jpj,jpk), zirondep(jpi,jpj,jpk) ) 126 123 ! ! Iron and Si deposition at the surface 127 124 IF( ln_solub ) THEN … … 152 149 ENDIF 153 150 ENDIF 154 CALL wrk_dealloc( jpi, jpj,zsidep )155 CALL wrk_dealloc( jpi, jpj, jpk, zpdep, zirondep)151 DEALLOCATE( zsidep ) 152 DEALLOCATE( zpdep, zirondep ) 156 153 ! 157 154 ENDIF … … 514 511 ENDIF 515 512 ! 516 CALL wrk_dealloc( jpi, jpj, zdenit2d, zwork1, zwork2, zwork3, zbureff ) 517 CALL wrk_dealloc( jpi, jpj, zwsbio3, zwsbio4, zwscal ) 518 CALL wrk_dealloc( jpi, jpj, zsedcal, zsedsi, zsedc ) 519 CALL wrk_dealloc( jpi, jpj, jpk, zlight, zsoufer ) 520 IF( ln_p5z ) CALL wrk_dealloc( jpi, jpj, jpk, ztrpo4, ztrdop ) 521 IF( ln_ligand ) CALL wrk_dealloc( jpi, jpj, zwsfep ) 513 IF( ln_p5z ) DEALLOCATE( ztrpo4, ztrdop ) 514 IF( ln_ligand ) DEALLOCATE( zwsfep ) 522 515 ! 523 516 IF( ln_timing ) CALL timing_stop('p4z_sed') -
branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsink.F90
r9124 r9125 65 65 REAL(wp) :: zfact, zwsmax, zmax 66 66 CHARACTER (len=25) :: charout 67 REAL(wp), POINTER, DIMENSION(:,:,:) :: zw3d68 REAL(wp), POINTER, DIMENSION(:,: ) :: zw2d67 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zw3d 68 REAL(wp), ALLOCATABLE, DIMENSION(:,: ) :: zw2d 69 69 !!--------------------------------------------------------------------- 70 70 ! … … 212 212 IF( lk_iomput ) THEN 213 213 IF( knt == nrdttrc ) THEN 214 CALL wrk_alloc( jpi, jpj, zw2d ) 215 CALL wrk_alloc( jpi, jpj, jpk, zw3d ) 214 ALLOCATE( zw2d(jpi,jpj), zw3d(jpi,jpj,jpk) ) 216 215 zfact = 1.e+3 * rfact2r ! conversion from mol/l/kt to mol/m3/s 217 216 ! … … 250 249 IF( iom_use( "tcexp" ) ) CALL iom_put( "tcexp" , t_oce_co2_exp * zfact ) ! molC/s 251 250 ! 252 CALL wrk_dealloc( jpi, jpj, zw2d ) 253 CALL wrk_dealloc( jpi, jpj, jpk, zw3d ) 251 DEALLOCATE( zw2d, zw3d ) 254 252 ENDIF 255 253 ENDIF … … 304 302 INTEGER :: ji, jj, jk, jn 305 303 REAL(wp) :: zigma,zew,zign, zflx, zstep 306 REAL(wp), POINTER, DIMENSION(:,:,:) :: ztraz, zakz, zwsink2, ztrb304 REAL(wp), DIMENSION(jpi,jpj,jpk) :: ztraz, zakz, zwsink2, ztrb 307 305 !!--------------------------------------------------------------------- 308 306 ! 309 307 IF( ln_timing ) CALL timing_start('p4z_sink2') 310 308 ! 311 ! Allocate temporary workspace312 CALL wrk_alloc( jpi, jpj, jpk, ztraz, zakz, zwsink2, ztrb )313 314 309 zstep = rfact2 / REAL( kiter, wp ) / 2. 315 310 … … 391 386 psinkflx(:,:,:) = 2. * psinkflx(:,:,:) 392 387 ! 393 CALL wrk_dealloc( jpi, jpj, jpk, ztraz, zakz, zwsink2, ztrb )394 !395 388 IF( ln_timing ) CALL timing_stop('p4z_sink2') 396 389 ! -
branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsms.F90
r9124 r9125 420 420 CHARACTER(LEN=100) :: cltxt 421 421 INTEGER :: jk 422 REAL(wp), POINTER, DIMENSION(:,:,:) :: zwork422 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zwork 423 423 !!---------------------------------------------------------------------- 424 424 ! … … 437 437 ENDIF 438 438 439 CALL wrk_alloc( jpi, jpj, jpk, zwork )440 !441 439 IF( iom_use( "pno3tot" ) .OR. ( ln_check_mass .AND. kt == nitend ) ) THEN 442 440 ! Compute the budget of NO3, ALK, Si, Fer … … 503 501 ENDIF 504 502 ! 505 CALL wrk_dealloc( jpi, jpj, jpk, zwork )506 !507 503 ! Global budget of N SMS : denitrification in the water column and in the sediment 508 504 ! nitrogen fixation by the diazotrophs -
branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p5zmeso.F90
r9124 r9125 85 85 CHARACTER (len=25) :: charout 86 86 REAL(wp) :: zrfact2, zmetexcess 87 REAL(wp), POINTER, DIMENSION(:,:,:) :: zgrazing, zw3d 87 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zgrazing 88 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zw3d 88 89 89 90 !!--------------------------------------------------------------------- … … 91 92 IF( ln_timing ) CALL timing_start('p5z_meso') 92 93 ! 93 CALL wrk_alloc( jpi, jpj, jpk, zgrazing )94 94 zgrazing(:,:,:) = 0._wp 95 95 … … 342 342 ! 343 343 IF( lk_iomput .AND. knt == nrdttrc ) THEN 344 CALL wrk_alloc( jpi, jpj, jpk, zw3d)344 ALLOCATE( zw3d(jpi,jpj,jpk) ) 345 345 IF( iom_use( "GRAZ2" ) ) THEN 346 346 zw3d(:,:,:) = zgrazing(:,:,:) * 1.e+3 * rfact2r * tmask(:,:,:) ! Total grazing of phyto by zooplankton … … 351 351 CALL iom_put( "PCAL", zw3d ) 352 352 ENDIF 353 CALL wrk_dealloc( jpi, jpj, jpk,zw3d )353 DEALLOCATE( zw3d ) 354 354 ENDIF 355 355 ! … … 359 359 CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm) 360 360 ENDIF 361 !362 CALL wrk_dealloc( jpi, jpj, jpk, zgrazing )363 361 ! 364 362 IF( ln_timing ) CALL timing_stop('p5z_meso') -
branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p5zmicro.F90
r9124 r9125 82 82 REAL(wp) :: zgrazdc, zgrazdn, zgrazdp, zgrazdf, zgraznf, zgrazz 83 83 REAL(wp) :: zgrazpc, zgrazpn, zgrazpp, zgrazpf, zbeta, zrfact2, zmetexcess 84 REAL(wp), POINTER, DIMENSION(:,:,:) :: zgrazing, zw3d 84 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zgrazing 85 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zw3d 85 86 CHARACTER (len=25) :: charout 86 87 !!--------------------------------------------------------------------- 87 88 ! 88 89 IF( ln_timing ) CALL timing_start('p5z_micro') 89 !90 CALL wrk_alloc( jpi, jpj, jpk, zgrazing )91 90 ! 92 91 zmetexcess = 0.0 … … 290 289 ! 291 290 IF( lk_iomput .AND. knt == nrdttrc ) THEN 292 CALL wrk_alloc( jpi, jpj, jpk, zw3d)291 ALLOCATE( zw3d(jpi,jpj,jpk) ) 293 292 IF( iom_use( "GRAZ1" ) ) THEN 294 293 zw3d(:,:,:) = zgrazing(:,:,:) * 1.e+3 * rfact2r * tmask(:,:,:) ! Total grazing of phyto by zooplankton 295 294 CALL iom_put( "GRAZ1", zw3d ) 296 295 ENDIF 297 CALL wrk_dealloc( jpi, jpj, jpk,zw3d )296 DEALLOCATE( zw3d ) 298 297 ENDIF 299 298 ! … … 303 302 CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm) 304 303 ENDIF 305 !306 CALL wrk_dealloc( jpi, jpj, jpk, zgrazing )307 304 ! 308 305 IF( ln_timing ) CALL timing_stop('p5z_micro') -
branches/2017/dev_merge_2017/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p5zprod.F90
r9124 r9125 81 81 REAL(wp) :: zfact, zrfact2 82 82 CHARACTER (len=25) :: charout 83 REAL(wp), POINTER, DIMENSION(:,:) :: zmixnano, zmixpico, zmixdiat, zstrn84 REAL(wp), POINTER, DIMENSION(:,:,:) :: zpislopeadn, zpislopeadp, zpislopeadd85 REAL(wp), POINTER, DIMENSION(:,:,:) :: zprbio, zprpic, zprdia, zysopt86 REAL(wp), POINTER, DIMENSION(:,:,:) :: zprchln, zprchlp, zprchld87 REAL(wp), POINTER, DIMENSION(:,:,:) :: zprorcan, zprorcap, zprorcad88 REAL(wp), POINTER, DIMENSION(:,:,:) :: zprofed, zprofep, zprofen89 REAL(wp), POINTER, DIMENSION(:,:,:) :: zpronewn, zpronewp, zpronewd90 REAL(wp), POINTER, DIMENSION(:,:,:) :: zproregn, zproregp, zproregd91 REAL(wp), POINTER, DIMENSION(:,:,:) :: zpropo4n, zpropo4p, zpropo4d92 REAL(wp), POINTER, DIMENSION(:,:,:) :: zprodopn, zprodopp, zprodopd93 REAL(wp), POINTER, DIMENSION(:,:,:) :: zrespn, zrespp, zrespd, zprnut94 REAL(wp), POINTER, DIMENSION(:,:,:) :: zcroissn, zcroissp, zcroissd95 REAL(wp), POINTER, DIMENSION(:,:,:) :: zmxl_fac, zmxl_chl96 REAL(wp), POINTER, DIMENSION(:,:,:) :: zw3d97 REAL(wp), POINTER, DIMENSION(:,: ) :: zw2d83 REAL(wp), DIMENSION(jpi,jpj ) :: zmixnano, zmixpico, zmixdiat, zstrn 84 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zpislopeadn, zpislopeadp, zpislopeadd 85 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zprbio, zprpic, zprdia, zysopt 86 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zprchln, zprchlp, zprchld 87 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zprorcan, zprorcap, zprorcad 88 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zprofed, zprofep, zprofen 89 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zpronewn, zpronewp, zpronewd 90 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zproregn, zproregp, zproregd 91 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zpropo4n, zpropo4p, zpropo4d 92 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zprodopn, zprodopp, zprodopd 93 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zrespn, zrespp, zrespd, zprnut 94 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zcroissn, zcroissp, zcroissd 95 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zmxl_fac, zmxl_chl 96 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zw3d 97 REAL(wp), ALLOCATABLE, DIMENSION(:,: ) :: zw2d 98 98 !!--------------------------------------------------------------------- 99 99 ! 100 100 IF( ln_timing ) CALL timing_start('p5z_prod') 101 !102 ! Allocate temporary workspace103 CALL wrk_alloc( jpi, jpj, zmixnano, zmixpico, zmixdiat, zstrn )104 CALL wrk_alloc( jpi, jpj, jpk, zmxl_fac, zmxl_chl )105 CALL wrk_alloc( jpi, jpj, jpk, zpislopeadn, zpislopeadp, zpislopeadd, zysopt )106 CALL wrk_alloc( jpi, jpj, jpk, zprdia, zprpic, zprbio, zprorcan, zprorcap, zprorcad )107 CALL wrk_alloc( jpi, jpj, jpk, zprofed, zprofep, zprofen )108 CALL wrk_alloc( jpi, jpj, jpk, zpronewn, zpronewp, zpronewd, zproregn, zproregp, zproregd )109 CALL wrk_alloc( jpi, jpj, jpk, zpropo4n, zpropo4p, zpropo4d, zrespn, zrespp, zrespd, zprnut )110 CALL wrk_alloc( jpi, jpj, jpk, zprchln, zprchlp, zprchld, zprodopn, zprodopp, zprodopd )111 CALL wrk_alloc( jpi, jpj, jpk, zcroissp, zcroissn, zcroissd )112 101 ! 113 102 zprorcan(:,:,:) = 0._wp ; zprorcap(:,:,:) = 0._wp ; zprorcad(:,:,:) = 0._wp … … 474 463 IF( lk_iomput ) THEN 475 464 IF( knt == nrdttrc ) THEN 476 CALL wrk_alloc( jpi, jpj, zw2d ) 477 CALL wrk_alloc( jpi, jpj, jpk, zw3d ) 465 ALLOCATE( zw2d(jpi,jpj), zw3d(jpi,jpj,jpk) ) 478 466 zfact = 1.e+3 * rfact2r ! conversion from mol/l/kt to mol/m3/s 479 467 ! … … 550 538 IF( iom_use( "tintpp" ) ) CALL iom_put( "tintpp" , tpp * zfact ) ! global total integrated primary production molC/s 551 539 ! 552 CALL wrk_dealloc( jpi, jpj, zw2d ) 553 CALL wrk_dealloc( jpi, jpj, jpk, zw3d ) 540 DEALLOCATE( zw2d, zw3d ) 554 541 ENDIF 555 542 ENDIF … … 560 547 CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm) 561 548 ENDIF 562 !563 CALL wrk_dealloc( jpi, jpj, zmixnano, zmixpico, zmixdiat, zstrn )564 CALL wrk_dealloc( jpi, jpj, jpk, zmxl_fac, zmxl_chl )565 CALL wrk_dealloc( jpi, jpj, jpk, zpislopeadn, zpislopeadp, zpislopeadd, zysopt )566 CALL wrk_dealloc( jpi, jpj, jpk, zprdia, zprpic, zprbio, zprorcan, zprorcap, zprorcad )567 CALL wrk_dealloc( jpi, jpj, jpk, zprofed, zprofep, zprofen )568 CALL wrk_dealloc( jpi, jpj, jpk, zpronewn, zpronewp, zpronewd, zproregn, zproregp, zproregd )569 CALL wrk_dealloc( jpi, jpj, jpk, zpropo4n, zpropo4p, zpropo4d, zrespn, zrespp, zrespd, zprnut )570 CALL wrk_dealloc( jpi, jpj, jpk, zprchln, zprchlp, zprchld, zprodopn, zprodopp, zprodopd )571 CALL wrk_dealloc( jpi, jpj, jpk, zcroissp, zcroissn, zcroissd )572 549 ! 573 550 IF( ln_timing ) CALL timing_stop('p5z_prod')
Note: See TracChangeset
for help on using the changeset viewer.