Changeset 3147
- Timestamp:
- 2011-11-17T17:28:03+01:00 (12 years ago)
- Location:
- branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/TOP_SRC
- Files:
-
- 18 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/TOP_SRC/C14b/trcsms_c14b.F90
r3116 r3147 21 21 USE trdmod_trc 22 22 USE iom ! I/O library 23 USE wrk_nemo_2 23 24 24 25 IMPLICIT NONE … … 94 95 !! 95 96 !!---------------------------------------------------------------------- 96 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released97 USE wrk_nemo, ONLY: zatmbc14 => wrk_2d_198 USE wrk_nemo, ONLY: zdecay => wrk_3d_199 97 ! 100 98 INTEGER, INTENT(in) :: kt ! ocean time-step index … … 113 111 REAL(wp) :: zpv ! piston velocity 114 112 REAL(wp) :: zdemi, ztra 115 !!---------------------------------------------------------------------- 116 117 IF( wrk_in_use(2, 1) .OR. wrk_in_use(3, 1) ) THEN 118 CALL ctl_stop('trc_sms_c14b : requested workspace arrays unavailable') ; RETURN 119 ENDIF 113 REAL(wp), POINTER, DIMENSION(:,: ) :: zatmbc14 114 REAL(wp), POINTER, DIMENSION(:,:,:) :: zdecay 115 !!--------------------------------------------------------------------- 116 117 ! Allocate temporary workspace 118 CALL wrk_alloc( jpi, jpj, zatmbc14 ) 119 CALL wrk_alloc( jpi, jpj, jpk, zdecay ) 120 120 121 121 IF( kt == nittrc000 ) THEN ! Computation of decay coeffcient … … 284 284 IF( l_trdtrc ) CALL trd_mod_trc( tra(:,:,:,jpc14), jpc14, jptra_trd_sms, kt ) ! save trends 285 285 286 IF( wrk_not_released(2, 1) .OR. &287 wrk_not_released(3, 1) ) CALL ctl_stop('trc_sms_c14b : failed to release workspace arrays')286 CALL wrk_dealloc( jpi, jpj, zatmbc14 ) 287 CALL wrk_dealloc( jpi, jpj, jpk, zdecay ) 288 288 ! 289 289 END SUBROUTINE trc_sms_c14b -
branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/TOP_SRC/LOBSTER/trcbio.F90
r3116 r3147 23 23 USE trdmod_trc 24 24 USE iom 25 USE wrk_nemo_2 25 26 26 27 IMPLICIT NONE … … 60 61 !! for passive tracers are saved for futher diagnostics. 61 62 !!--------------------------------------------------------------------- 62 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released63 USE wrk_nemo, ONLY: wrk_3d_2, wrk_4d_164 63 !! 65 64 INTEGER, INTENT( in ) :: kt ! ocean time-step index … … 81 80 82 81 IF( ln_diatrc ) THEN 83 IF( ( wrk_in_use(3, 2) ) .OR. ( wrk_in_use(4, 1) ) ) THEN 84 CALL ctl_stop('trc_bio : requested workspace arrays unavailable.') ; RETURN 85 END IF 86 ! Set-up pointers into sub-arrays of workspaces 87 zw2d => wrk_3d_2(:,:,1:17) 88 zw3d => wrk_4d_1(:,:,:,1:3) 82 CALL wrk_alloc( jpi, jpj, 17, zw2d ) 83 CALL wrk_alloc( jpi, jpj, jpk, 3, zw3d ) 89 84 ENDIF 90 85 … … 441 436 ENDIF 442 437 ! 443 IF( ln_diatrc .AND. lk_iomput) THEN444 IF( ( wrk_not_released(3, 2) ) .OR. ( wrk_not_released(4, 1) ) ) &445 & CALL ctl_stop('trc_bio : failed to release workspace arrays.')438 IF( ln_diatrc ) THEN 439 CALL wrk_dealloc( jpi, jpj, 17, zw2d ) 440 CALL wrk_dealloc( jpi, jpj, jpk, 3, zw3d ) 446 441 ENDIF 447 442 ! -
branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/TOP_SRC/LOBSTER/trcini_lobster.F90
r2715 r3147 21 21 USE trc 22 22 USE lbclnk 23 USE wrk_nemo_2 23 24 24 25 IMPLICIT NONE … … 40 41 !! ** purpose : specific initialisation for LOBSTER bio-model 41 42 !!---------------------------------------------------------------------- 42 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released43 USE wrk_nemo, ONLY: zrro => wrk_2d_1 , zdm0 => wrk_3d_144 43 !! 45 44 INTEGER :: ji, jj, jk, jn 46 45 REAL(wp) :: ztest, zfluo, zfluu 47 !!---------------------------------------------------------------------- 48 ! 49 IF( wrk_in_use(2, 1) .OR. wrk_in_use(3, 1) ) THEN 50 CALL ctl_stop('trc_ini_lobster: requested workspace arrays unavailable') ; RETURN 51 ENDIF 46 REAL(wp), POINTER, DIMENSION(:,: ) :: zrro 47 REAL(wp), POINTER, DIMENSION(:,:,:) :: zdm0 48 !!--------------------------------------------------------------------- 49 50 ! Allocate temporary workspace 51 CALL wrk_alloc( jpi, jpj, zrro ) 52 CALL wrk_alloc( jpi, jpj, jpk, zdm0 ) 53 52 54 53 55 IF(lwp) WRITE(numout,*) … … 254 256 IF(lwp) WRITE(numout,*) 'Initialization of LOBSTER tracers done' 255 257 ! 256 IF( wrk_not_released(2, 1) .OR. &257 wrk_not_released(3, 1) ) CALL ctl_stop('trc_ini_lobster: failed to release workspace arrays')258 CALL wrk_dealloc( jpi, jpj, zrro ) 259 CALL wrk_dealloc( jpi, jpj, jpk, zdm0 ) 258 260 ! 259 261 END SUBROUTINE trc_ini_lobster -
branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/TOP_SRC/LOBSTER/trcopt.F90
r3116 r3147 21 21 USE sms_lobster 22 22 USE prtctl_trc ! Print control for debbuging 23 USE wrk_nemo_2 23 24 24 25 IMPLICIT NONE … … 52 53 !! xze ??? 53 54 !!--------------------------------------------------------------------- 54 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released55 USE wrk_nemo, ONLY: zpar100 => wrk_2d_1, & ! irradiance at euphotic layer depth56 zpar0m => wrk_2d_2 ! irradiance just below the surface57 USE wrk_nemo, ONLY: zparr => wrk_3d_2, & ! red and green compound of par58 zparg => wrk_3d_359 55 !! 60 56 INTEGER, INTENT( in ) :: kt ! index of the time stepping … … 65 61 REAL(wp) :: zkr, zkg ! total absorption coefficient in red and green 66 62 REAL(wp) :: zcoef ! temporary scalar 67 63 REAL(wp), POINTER, DIMENSION(:,: ) :: zpar100, zpar0m 64 REAL(wp), POINTER, DIMENSION(:,:,:) :: zparr, zparg 68 65 !!--------------------------------------------------------------------- 69 66 70 IF( ( wrk_in_use(2, 1,2)) .OR. ( wrk_in_use(3, 2,3)) )THEN71 CALL ctl_stop('trc_opt : requested workspace arrays unavailable') ; RETURN72 END IF67 ! Allocate temporary workspace 68 CALL wrk_alloc( jpi, jpj, zpar100, zpar0m ) 69 CALL wrk_alloc( jpi, jpj, jpk, zparr, zparg ) 73 70 74 71 IF( kt == nittrc000 ) THEN … … 137 134 ENDIF 138 135 ! 139 IF( wrk_not_released(2, 1,2) .OR. wrk_not_released(3, 2,3) ) &140 CALL ctl_stop('trc_opt : failed to release workspace arrays')136 CALL wrk_dealloc( jpi, jpj, zpar100, zpar0m ) 137 CALL wrk_dealloc( jpi, jpj, jpk, zparr, zparg ) 141 138 ! 142 139 END SUBROUTINE trc_opt -
branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/TOP_SRC/LOBSTER/trcsed.F90
r3116 r3147 22 22 USE iom 23 23 USE prtctl_trc ! Print control for debbuging 24 USE wrk_nemo_2 24 25 25 26 IMPLICIT NONE … … 56 57 !! trend of passive tracers is saved for futher diagnostics. 57 58 !!--------------------------------------------------------------------- 58 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released59 USE wrk_nemo, ONLY: zwork => wrk_3d_2, ztra => wrk_3d_360 USE wrk_nemo, ONLY: zw2d => wrk_2d_161 59 !! 62 60 INTEGER, INTENT( in ) :: kt ! ocean time-step index 63 61 !! 64 62 INTEGER :: ji, jj, jk, jl, ierr 65 REAL(wp), DIMENSION(:,:,:), ALLOCATABLE :: ztrbio66 63 CHARACTER (len=25) :: charout 64 REAL(wp), POINTER, DIMENSION(:,: ) :: zw2d 65 REAL(wp), POINTER, DIMENSION(:,:,:) :: zwork, ztra, ztrbio 67 66 !!--------------------------------------------------------------------- 68 67 … … 73 72 ENDIF 74 73 75 IF( wrk_in_use(2, 1) .OR. wrk_in_use(3, 2,3) ) THEN 76 CALL ctl_stop('trc_sed : requested workspace arrays unavailable.') ; RETURN 77 END IF 74 ! Allocate temporary workspace 75 CALL wrk_alloc( jpi, jpj, jpk, zwork, ztra ) 78 76 79 IF( l_trdtrc ) THEN 80 ALLOCATE( ztrbio(jpi,jpj,jpk) , STAT = ierr ) ! temporary save of trends 81 IF( ierr > 0 ) THEN 82 CALL ctl_stop( 'trc_sed: unable to allocate ztrbio array' ) ; RETURN 83 ENDIF 77 IF( ln_diatrc ) THEN 78 CALL wrk_alloc( jpi, jpj, zw2d ) 79 ENDIF 80 81 IF( l_trdtrc ) THEN 82 CALL wrk_alloc( jpi, jpj, jpk, ztrbio ) 84 83 ztrbio(:,:,:) = tra(:,:,:,jp_lob_det) 85 84 ENDIF 86 87 IF( ln_diatrc ) zw2d(:,:) = 0.88 85 89 86 ! sedimentation of detritus : upstream scheme … … 110 107 111 108 IF( ln_diatrc ) THEN 112 zw2d(:,:) = 0.113 109 DO jk = 1, jpkm1 114 110 DO jj = 1, jpj … … 123 119 trc2d(:,:,jp_lob0_2d + 7) = zw2d(:,:) 124 120 ENDIF 121 CALL wrk_dealloc( jpi, jpj, zw2d ) 125 122 ENDIF 126 123 ! 127 124 IF( ln_diabio ) trbio(:,:,:,jp_lob0_trd + 7) = ztra(:,:,:) 125 CALL wrk_dealloc( jpi, jpj, jpk, zwork, ztra ) 128 126 ! 129 127 IF( l_trdtrc ) THEN … … 131 129 jl = jp_lob0_trd + 7 132 130 CALL trd_mod_trc( ztrbio, jl, kt ) ! handle the trend 133 DEALLOCATE( ztrbio )131 CALL wrk_dealloc( jpi, jpj, jpk, ztrbio ) 134 132 ENDIF 135 133 … … 139 137 CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm) 140 138 ENDIF 141 142 IF( ( wrk_not_released(2, 1) ) .OR. ( wrk_not_released(3, 2,3) ) ) & 143 & CALL ctl_stop('trc_sed : failed to release workspace arrays.') 144 139 ! 145 140 END SUBROUTINE trc_sed 146 141 -
branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/TOP_SRC/MY_TRC/trcsms_my_trc.F90
r2715 r3147 18 18 USE trdmod_oce 19 19 USE trdmod_trc 20 USE wrk_nemo_2 ! Memory allocation 20 21 21 22 IMPLICIT NONE … … 42 43 !! ** Method : - 43 44 !!---------------------------------------------------------------------- 44 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released45 USE wrk_nemo, ONLY: ztrmyt => wrk_3d_1 ! used for lobster sms trends46 45 ! 47 46 INTEGER, INTENT(in) :: kt ! ocean time-step index … … 53 52 IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~~~~' 54 53 54 IF( l_trdtrc ) CALL wrk_alloc( jpi, jpj, jpk, ztrmyt ) 55 55 56 WHERE( (glamt <= 170) .AND. (glamt >= 160) .AND. (gphit <= -74) .AND. (gphit >=-75.6) ) 56 57 trn(:,:,1,jpmyt1) = 1._wp … … 70 71 CALL trd_mod_trc( ztrmyt, jn, jptra_trd_sms, kt ) ! save trends 71 72 END DO 73 CALL wrk_dealloc( jpi, jpj, jpk, ztrmyt ) 72 74 END IF 73 75 ! -
branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/TOP_SRC/PISCES/p4zflx.F90
r3124 r3147 29 29 USE sbc_oce, ONLY : atm_co2 ! atmospheric pCO2 30 30 #endif 31 USE wrk_nemo_2 31 32 32 33 IMPLICIT NONE … … 83 84 !! - Add option for time-interpolation of atcco2.txt 84 85 !!--------------------------------------------------------------------- 85 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released86 USE wrk_nemo, ONLY: zkgco2 => wrk_2d_11 , zkgo2 => wrk_2d_1287 USE wrk_nemo, ONLY: zh2co3 => wrk_2d_13 , zoflx => wrk_2d_1488 USE wrk_nemo, ONLY:89 86 ! 90 87 INTEGER, INTENT(in) :: kt ! … … 96 93 REAL(wp) :: zyr_dec, zdco2dt 97 94 CHARACTER (len=25) :: charout 95 REAL(wp), POINTER, DIMENSION(:,:) :: zkgco2, zkgo2, zh2co3, zoflx 98 96 !!--------------------------------------------------------------------- 99 97 100 IF( wrk_in_use(2, 11,12,13,14) ) THEN 101 CALL ctl_stop('p4z_flx: requested workspace arrays unavailable') ; RETURN 102 ENDIF 98 99 ! 100 CALL wrk_alloc( jpi, jpj, zkgco2, zkgo2, zh2co3, zoflx ) 101 ! 103 102 104 103 ! SURFACE CHEMISTRY (PCO2 AND [H+] IN … … 240 239 ENDIF 241 240 ! 242 IF( wrk_not_released(2, 11,12,13,14) ) CALL ctl_stop('p4z_flx: failed to release workspace arrays')241 CALL wrk_dealloc( jpi, jpj, zkgco2, zkgo2, zh2co3, zoflx ) 243 242 ! 244 243 END SUBROUTINE p4z_flx -
branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/TOP_SRC/PISCES/p4zlys.F90
r3124 r3147 24 24 USE prtctl_trc ! print control for debugging 25 25 USE iom ! I/O manager 26 USE wrk_nemo_2 26 27 27 28 IMPLICIT NONE … … 58 59 !! ** Method : - ??? 59 60 !!--------------------------------------------------------------------- 60 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released61 USE wrk_nemo, ONLY: zco3 => wrk_3d_2, zcaldiss => wrk_3d_362 61 ! 63 62 INTEGER, INTENT(in) :: kt ! ocean time step … … 68 67 REAL(wp) :: zrfact2 69 68 CHARACTER (len=25) :: charout 69 REAL(wp), POINTER, DIMENSION(:,:,:) :: zco3, zcaldiss 70 70 !!--------------------------------------------------------------------- 71 72 IF( wrk_in_use(3, 2,3) ) THEN 73 CALL ctl_stop('p4z_lys: requested workspace arrays unavailable') ; RETURN 74 END IF 75 71 ! 72 CALL wrk_alloc( jpi, jpj, jpk, zco3, zcaldiss ) 73 ! 76 74 zco3 (:,:,:) = 0. 77 75 zcaldiss(:,:,:) = 0. … … 163 161 ENDIF 164 162 ! 165 166 167 168 169 170 171 IF( wrk_not_released(3, 2,3) ) CALL ctl_stop('p4z_lys: failed to release workspace arrays')163 IF(ln_ctl) THEN ! print mean trends (used for debugging) 164 WRITE(charout, FMT="('lys ')") 165 CALL prt_ctl_trc_info(charout) 166 CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm) 167 ENDIF 168 ! 169 CALL wrk_dealloc( jpi, jpj, jpk, zco3, zcaldiss ) 172 170 ! 173 171 END SUBROUTINE p4z_lys -
branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/TOP_SRC/PISCES/p4zopt.F90
r2977 r3147 19 19 USE sms_pisces ! Source Minus Sink of PISCES 20 20 USE iom ! I/O manager 21 USE wrk_nemo_2 22 21 23 22 24 IMPLICIT NONE … … 53 55 !! ** Method : - ??? 54 56 !!--------------------------------------------------------------------- 55 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released56 USE wrk_nemo, ONLY: zdepmoy => wrk_2d_1 , zetmp => wrk_2d_257 USE wrk_nemo, ONLY: zetmp1 => wrk_2d_3 , zetmp2 => wrk_2d_458 USE wrk_nemo, ONLY: zekg => wrk_3d_2 , zekr => wrk_3d_3 , zekb => wrk_3d_459 USE wrk_nemo, ONLY: ze0 => wrk_3d_5 , ze1 => wrk_3d_660 USE wrk_nemo, ONLY: ze2 => wrk_3d_7 , ze3 => wrk_3d_861 57 ! 62 58 INTEGER, INTENT(in) :: kt, jnt ! ocean time step … … 66 62 REAL(wp) :: zchl, zxsi0r 67 63 REAL(wp) :: zc0 , zc1 , zc2, zc3, z1_dep 64 REAL(wp), POINTER, DIMENSION(:,: ) :: zdepmoy, zetmp, zetmp1, zetmp2 65 REAL(wp), POINTER, DIMENSION(:,:,:) :: zekg, zekr, zekb, ze0, ze1, ze2, ze3 68 66 !!--------------------------------------------------------------------- 69 67 70 IF( wrk_in_use(2, 1,2,3,4) .OR. wrk_in_use(3, 2,3,4,5,6,7,8) ) THEN71 CALL ctl_stop('p4z_opt: requested workspace arrays unavailable') ; RETURN72 ENDIF68 ! Allocate temporary workspace 69 CALL wrk_alloc( jpi, jpj, zdepmoy, zetmp, zetmp1, zetmp2 ) 70 CALL wrk_alloc( jpi, jpj, jpk, zekg, zekr, zekb, ze0, ze1, ze2, ze3 ) 73 71 74 72 ! Initialisation of variables used to compute PAR … … 235 233 ENDIF 236 234 ! 237 IF( wrk_not_released(2, 1,2,3,4) .OR. &238 wrk_not_released(3, 2,3,4,5,6,7,8) ) CALL ctl_stop('p4z_opt: failed to release workspace arrays')235 CALL wrk_dealloc( jpi, jpj, zdepmoy, zetmp, zetmp1, zetmp2 ) 236 CALL wrk_dealloc( jpi, jpj, jpk, zekg, zekr, zekb, ze0, ze1, ze2, ze3 ) 239 237 ! 240 238 END SUBROUTINE p4z_opt -
branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/TOP_SRC/PISCES/p4zprod.F90
r3124 r3147 23 23 USE prtctl_trc ! print control for debugging 24 24 USE iom ! I/O manager 25 USE wrk_nemo_2 ! Memory allocation 26 25 27 26 28 IMPLICIT NONE … … 73 75 !! ** Method : - ??? 74 76 !!--------------------------------------------------------------------- 75 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released76 USE wrk_nemo, ONLY: zmixnano => wrk_2d_1 , zmixdiat => wrk_2d_2, zstrn => wrk_2d_377 USE wrk_nemo, ONLY: zpislopead => wrk_3d_2 , zpislopead2 => wrk_3d_378 USE wrk_nemo, ONLY: zprdia => wrk_3d_4 , zprbio => wrk_3d_579 USE wrk_nemo, ONLY: zprdch => wrk_3d_6 , zprnch => wrk_3d_780 USE wrk_nemo, ONLY: zprorca => wrk_3d_8 , zprorcad => wrk_3d_981 USE wrk_nemo, ONLY: zprofed => wrk_3d_10, zprofen => wrk_3d_1182 USE wrk_nemo, ONLY: zprochln => wrk_3d_12, zprochld => wrk_3d_1383 USE wrk_nemo, ONLY: zpronew => wrk_3d_14, zpronewd => wrk_3d_1584 77 ! 85 78 INTEGER, INTENT(in) :: kt, jnt … … 92 85 REAL(wp) :: zpislopen , zpislope2n 93 86 REAL(wp) :: zrum, zcodel, zargu, zval 94 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zysopt95 87 REAL(wp) :: zrfact2 96 88 CHARACTER (len=25) :: charout 89 REAL(wp), POINTER, DIMENSION(:,: ) :: zmixnano, zmixdiat, zstrn 90 REAL(wp), POINTER, DIMENSION(:,:,:) :: zpislopead, zpislopead2, zprdia, zprbio, zprdch, zprnch, zysopt 91 REAL(wp), POINTER, DIMENSION(:,:,:) :: zprorca, zprorcad, zprofed, zprofen, zprochln, zprochld, zpronew, zpronewd 92 97 93 !!--------------------------------------------------------------------- 98 94 99 IF( wrk_in_use(2, 1,2,3) .OR. & 100 wrk_in_use(3, 2,3,4,5,6,7,8,9,10,11,12,13,14,15) ) THEN 101 CALL ctl_stop('p4z_prod: requested workspace arrays unavailable') ; RETURN 102 ENDIF 103 104 ALLOCATE( zysopt(jpi,jpj,jpk) ) 105 95 ! Allocate temporary workspace 96 CALL wrk_alloc( jpi, jpj, zmixnano, zmixdiat, zstrn ) 97 CALL wrk_alloc( jpi, jpj, jpk, zpislopead, zpislopead2, zprdia, zprbio, zprdch, zprnch, zysopt ) 98 CALL wrk_alloc( jpi, jpj, jpk, zprorca, zprorcad, zprofed, zprofen, zprochln, zprochld, zpronew, zpronewd ) 99 ! 106 100 zprorca (:,:,:) = 0._wp 107 101 zprorcad(:,:,:) = 0._wp … … 449 443 CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm) 450 444 ENDIF 451 452 IF( wrk_not_released(2, 1,2,3) .OR. & 453 wrk_not_released(3, 2,3,4,5,6,7,8,9,10,11,12,13,14,15) ) & 454 CALL ctl_stop('p4z_prod: failed to release workspace arrays') 455 ! 456 DEALLOCATE( zysopt ) 445 ! 446 CALL wrk_dealloc( jpi, jpj, zmixnano, zmixdiat, zstrn ) 447 CALL wrk_dealloc( jpi, jpj, jpk, zpislopead, zpislopead2, zprdia, zprbio, zprdch, zprnch, zysopt ) 448 CALL wrk_dealloc( jpi, jpj, jpk, zprorca, zprorcad, zprofed, zprofen, zprochln, zprochld, zpronew, zpronewd ) 457 449 ! 458 450 END SUBROUTINE p4z_prod -
branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/TOP_SRC/PISCES/p4zrem.F90
r2977 r3147 26 26 USE p4zint ! interpolation and computation of various fields 27 27 USE prtctl_trc ! print control for debugging 28 USE wrk_nemo_2 28 29 29 30 IMPLICIT NONE … … 67 68 !! ** Method : - ??? 68 69 !!--------------------------------------------------------------------- 69 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released70 USE wrk_nemo, ONLY: ztempbac => wrk_2d_171 USE wrk_nemo, ONLY: zdepbac => wrk_3d_2, zolimi => wrk_3d_3, zolimi2 => wrk_3d_472 70 ! 73 71 INTEGER, INTENT(in) :: kt ! ocean time step … … 84 82 REAL(wp) :: zlamfac, zonitr, zstep 85 83 CHARACTER (len=25) :: charout 84 REAL(wp), POINTER, DIMENSION(:,: ) :: ztempbac 85 REAL(wp), POINTER, DIMENSION(:,:,:) :: zdepbac, zolimi, zolimi2 86 86 !!--------------------------------------------------------------------- 87 87 88 IF( wrk_in_use(2, 1) .OR. wrk_in_use(3, 2,3,4) ) THEN89 CALL ctl_stop('p4z_rem: requested workspace arrays unavailable') ; RETURN90 ENDIF88 ! Allocate temporary workspace 89 CALL wrk_alloc( jpi, jpj, ztempbac ) 90 CALL wrk_alloc( jpi, jpj, jpk, zdepbac, zolimi, zolimi2 ) 91 91 92 92 ! Initialisation of temprary arrys … … 390 390 ENDIF 391 391 ! 392 IF( wrk_not_released(2, 1) .OR. &393 wrk_not_released(3, 2,3,4) ) CALL ctl_stop('p4z_rem: failed to release workspace arrays')392 CALL wrk_dealloc( jpi, jpj, ztempbac ) 393 CALL wrk_dealloc( jpi, jpj, jpk, zdepbac, zolimi, zolimi2 ) 394 394 ! 395 395 END SUBROUTINE p4z_rem -
branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/TOP_SRC/PISCES/p4zsed.F90
r3124 r3147 27 27 USE fldread ! time interpolation 28 28 USE prtctl_trc ! print control for debugging 29 USE wrk_nemo_2 ! Memory allocation 29 30 30 31 IMPLICIT NONE … … 93 94 !! ** Method : - ??? 94 95 !!--------------------------------------------------------------------- 95 USE wrk_nemo, ONLY: wrk_in_USE, wrk_not_released96 USE wrk_nemo, ONLY: zsidep => wrk_2d_1197 USE wrk_nemo, ONLY: zwork1 => wrk_2d_12, zwork2 => wrk_2d_13, zwork3 => wrk_2d_1498 USE wrk_nemo, ONLY: znitrpot => wrk_3d_2, zirondep => wrk_3d_399 96 ! 100 97 INTEGER, INTENT(in) :: kt, jnt ! ocean time step … … 107 104 REAL(wp) :: zsiloss, zcaloss, zwsbio3, zwsbio4, zwscal, zdep 108 105 CHARACTER (len=25) :: charout 106 REAL(wp), POINTER, DIMENSION(:,: ) :: zsidep, zwork1, zwork2, zwork3 107 REAL(wp), POINTER, DIMENSION(:,:,:) :: znitrpot, zirondep 109 108 !!--------------------------------------------------------------------- 110 109 111 IF( ( wrk_in_USE(2, 11,12,13,14) ) .OR. ( wrk_in_USE(3, 2,3) ) ) THEN112 CALL ctl_stop('p4z_sed: requested workspace arrays unavailable') ; RETURN113 END IF110 ! Allocate temporary workspace 111 CALL wrk_alloc( jpi, jpj, zsidep, zwork1, zwork2, zwork3 ) 112 CALL wrk_alloc( jpi, jpj, jpk, znitrpot, zirondep ) 114 113 115 114 IF( jnt == 1 .AND. ll_sbc ) CALL p4z_sbc( kt ) … … 311 310 ENDIF 312 311 313 IF( ( wrk_not_released(2, 11,12,13,14) ) .OR. ( wrk_not_released(3, 2,3) ) ) &314 & CALL ctl_stop('p4z_sed: failed to release workspace arrays')312 CALL wrk_dealloc( jpi, jpj, zsidep, zwork1, zwork2, zwork3 ) 313 CALL wrk_dealloc( jpi, jpj, jpk, znitrpot, zirondep ) 315 314 316 315 END SUBROUTINE p4z_sed -
branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/TOP_SRC/PISCES/p4zsink.F90
r2997 r3147 19 19 USE prtctl_trc ! print control for debugging 20 20 USE iom ! I/O manager 21 USE wrk_nemo_2 21 22 22 23 IMPLICIT NONE … … 84 85 !! ** Method : - ??? 85 86 !!--------------------------------------------------------------------- 86 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released87 USE wrk_nemo, ONLY: znum3d => wrk_3d_288 87 ! 89 88 INTEGER, INTENT(in) :: kt, jnt … … 98 97 INTEGER :: ik1 99 98 CHARACTER (len=25) :: charout 100 !!--------------------------------------------------------------------- 101 ! 102 IF( wrk_in_use(3, 2 ) ) THEN 103 CALL ctl_stop('p4z_sink: requested workspace arrays unavailable') ; RETURN 104 ENDIF 105 99 REAL(wp), POINTER, DIMENSION(:,:,:) :: znum3d 100 !!--------------------------------------------------------------------- 101 ! 102 CALL wrk_alloc( jpi, jpj, jpk, znum3d ) 103 ! 106 104 ! Initialisation of variables used to compute Sinking Speed 107 105 ! --------------------------------------------------------- … … 296 294 ENDIF 297 295 ! 298 IF( wrk_not_released(3, 2 ) ) CALL ctl_stop('p4z_sink: failed to release workspace arrays')296 CALL wrk_alloc( jpi, jpj, jpk, znum3d ) 299 297 ! 300 298 END SUBROUTINE p4z_sink … … 598 596 !! transport term, i.e. div(u*tra). 599 597 !!--------------------------------------------------------------------- 600 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released601 USE wrk_nemo, ONLY: ztraz => wrk_3d_2, zakz => wrk_3d_3, zwsink2 => wrk_3d_4602 598 ! 603 599 INTEGER , INTENT(in ) :: jp_tra ! tracer index index … … 607 603 INTEGER :: ji, jj, jk, jn 608 604 REAL(wp) :: zigma,zew,zign, zflx, zstep 609 !!--------------------------------------------------------------------- 610 611 IF( wrk_in_use(3, 2,3,4 ) ) THEN 612 CALL ctl_stop('p4z_sink2: requested workspace arrays unavailable') 613 RETURN 614 END IF 605 REAL(wp), POINTER, DIMENSION(:,:,:) :: ztraz, zakz, zwsink2 606 !!--------------------------------------------------------------------- 607 608 ! Allocate temporary workspace 609 CALL wrk_alloc( jpi, jpj, jpk, ztraz, zakz, zwsink2 ) 615 610 616 611 zstep = rfact2 / 2. … … 695 690 psinkflx(:,:,:) = 2. * psinkflx(:,:,:) 696 691 ! 697 IF( wrk_not_released(3, 2,3,4) ) CALL ctl_stop('p4z_sink2: failed to release workspace arrays')692 CALL wrk_dealloc( jpi, jpj, jpk, ztraz, zakz, zwsink2 ) 698 693 ! 699 694 END SUBROUTINE p4z_sink2 -
branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/TOP_SRC/TRP/trcadv.F90
r3124 r3147 26 26 USE ldftra_oce ! lateral diffusion coefficient on tracers 27 27 USE prtctl_trc ! Print control 28 USE wrk_nemo_2 ! Memory allocation 28 29 29 30 IMPLICIT NONE … … 67 68 !! ** Method : - Update the tracer with the advection term following nadv 68 69 !!---------------------------------------------------------------------- 69 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released70 USE wrk_nemo, ONLY: zun => wrk_3d_4, zvn => wrk_3d_5, zwn => wrk_3d_6 ! effective velocity71 70 !! 72 71 INTEGER, INTENT(in) :: kt ! ocean time-step index … … 74 73 INTEGER :: jk 75 74 CHARACTER (len=22) :: charout 76 !!----------------------------------------------------------------------77 ! 78 IF( wrk_in_use(3, 4,5,6) ) THEN79 CALL ctl_stop('trc_adv : requested workspace arrays unavailable') ; RETURN80 ENDIF75 REAL(wp), POINTER, DIMENSION(:,:,:) :: zun, zvn, zwn ! effective velocity 76 !!---------------------------------------------------------------------- 77 ! 78 CALL wrk_alloc( jpi, jpj, jpk, zun, zvn, zwn ) 79 ! 81 80 82 81 IF( kt == nittrc000 ) CALL trc_adv_ctl ! initialisation & control of options … … 141 140 END IF 142 141 ! 143 IF( wrk_not_released(3, 4,5,6) ) CALL ctl_stop('trc_adv : failed to release workspace arrays.')142 CALL wrk_dealloc( jpi, jpj, jpk, zun, zvn, zwn ) 144 143 ! 145 144 END SUBROUTINE trc_adv -
branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/TOP_SRC/TRP/trcsbc.F90
r3116 r3147 21 21 USE trdmod_oce 22 22 USE trdtra 23 USE wrk_nemo_2 ! Memory allocation 23 24 24 25 IMPLICIT NONE … … 57 58 !! 58 59 !!---------------------------------------------------------------------- 59 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released60 USE wrk_nemo, ONLY: zemps => wrk_2d_161 USE wrk_nemo, ONLY: ztrtrd => wrk_3d_162 60 ! 63 61 INTEGER, INTENT( in ) :: kt ! ocean time-step index … … 66 64 REAL(wp) :: zsrau, zse3t ! temporary scalars 67 65 CHARACTER (len=22) :: charout 68 !!---------------------------------------------------------------------- 66 REAL(wp), POINTER, DIMENSION(:,: ) :: zemps 67 REAL(wp), POINTER, DIMENSION(:,:,:) :: ztrtrd 68 !!--------------------------------------------------------------------- 69 69 70 IF( wrk_in_use(2, 1) .OR. wrk_in_use(3, 1) ) THEN71 CALL ctl_stop('trc_sbc: requested workspace array unavailable.') ; RETURN72 END IF70 ! Allocate temporary workspace 71 CALL wrk_alloc( jpi, jpj, zemps ) 72 CALL wrk_alloc( jpi, jpj, jpk, ztrtrd ) 73 73 74 74 IF( kt == nittrc000 ) THEN … … 117 117 ENDIF 118 118 119 IF( wrk_not_released(2, 1) .OR. wrk_not_released(3, 1) ) &120 & CALL ctl_stop('trc_sbc: failed to release workspace array.')119 CALL wrk_dealloc( jpi, jpj, zemps ) 120 CALL wrk_dealloc( jpi, jpj, jpk, ztrtrd ) 121 121 122 122 END SUBROUTINE trc_sbc -
branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/TOP_SRC/TRP/trdmld_trc.F90
r3116 r3147 33 33 USE trdmld_trc_rst ! restart for diagnosing the ML trends 34 34 USE prtctl ! print control 35 USE sms_pisces 36 USE sms_lobster 35 USE sms_pisces ! PISCES bio-model 36 USE sms_lobster ! LOBSTER bio-model 37 USE wrk_nemo_2 ! Memory allocation 37 38 38 39 IMPLICIT NONE … … 112 113 !! surface and the control surface is called "mixed-layer" 113 114 !!---------------------------------------------------------------------- 114 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released115 USE wrk_nemo, ONLY: zvlmsk => wrk_2d_1116 115 !! 117 116 INTEGER, INTENT( in ) :: ktrd, kjn ! ocean trend index and passive tracer rank 118 117 CHARACTER(len=2), INTENT( in ) :: ctype ! surface/bottom (2D) or interior (3D) physics 119 118 REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT( in ) :: ptrc_trdmld ! passive tracer trend 119 ! 120 120 INTEGER :: ji, jj, jk, isum 121 !!---------------------------------------------------------------------- 122 123 IF( wrk_in_use(2, 1) ) THEN 124 CALL ctl_stop('trd_mld_trc_zint: requested workspace array unavailable') ; RETURN 125 ENDIF 121 REAL(wp), POINTER, DIMENSION(:,:) :: zvlmsk 122 !!---------------------------------------------------------------------- 123 124 CALL wrk_alloc( jpi, jpj, zvlmsk ) 126 125 127 126 ! I. Definition of control surface and integration weights … … 208 207 END SELECT 209 208 ! 210 IF( wrk_not_released(2, 1) ) CALL ctl_stop('trd_mld_trc_zint: failed to release workspace array')209 CALL wrk_dealloc( jpi, jpj, zvlmsk ) 211 210 ! 212 211 END SUBROUTINE trd_mld_trc_zint … … 231 230 !! surface and the control surface is called "mixed-layer" 232 231 !!---------------------------------------------------------------------- 233 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released234 USE wrk_nemo, ONLY: zvlmsk => wrk_2d_1235 232 !! 236 233 INTEGER , INTENT(in) :: ktrd ! bio trend index … … 239 236 ! 240 237 INTEGER :: ji, jj, jk, isum 241 !!---------------------------------------------------------------------- 242 243 IF( wrk_in_use(2, 1) ) THEN 244 CALL ctl_stop('trd_mld_bio_zint: requested workspace array unavailable') ; RETURN 245 ENDIF 238 REAL(wp), POINTER, DIMENSION(:,:) :: zvlmsk 239 !!---------------------------------------------------------------------- 240 241 CALL wrk_alloc( jpi, jpj, zvlmsk ) 246 242 247 243 ! I. Definition of control surface and integration weights … … 325 321 END DO 326 322 327 IF( wrk_not_released(2, 1) ) CALL ctl_stop('trd_mld_bio_zint: failed to release workspace array')323 CALL wrk_alloc( jpi, jpj, zvlmsk ) 328 324 #endif 329 325 ! … … 378 374 !! - See NEMO documentation (in preparation) 379 375 !!---------------------------------------------------------------------- 380 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released381 USE wrk_nemo, ONLY: wrk_3d_1, wrk_3d_2, wrk_3d_3, wrk_3d_4382 USE wrk_nemo, ONLY: wrk_3d_5, wrk_3d_6, wrk_3d_7, wrk_3d_8, wrk_3d_9383 376 ! 384 377 INTEGER, INTENT(in) :: kt ! ocean time-step index … … 397 390 REAL(wp), POINTER, DIMENSION(:,:,:) :: ztmlatf2 ! | passive tracers 398 391 REAL(wp), POINTER, DIMENSION(:,:,:) :: ztmlrad2 ! | (-> for trb<0 corr in trcrad) 399 !REAL(wp), DIMENSION(jpi,jpj,jpltrd_trc,jptra) :: ztmltrd2 ! -+400 392 ! 401 393 CHARACTER (LEN= 5) :: clvar … … 406 398 !!---------------------------------------------------------------------- 407 399 408 IF( wrk_in_use(3, 1,2,3,4,5,6,7,8,9) ) THEN409 CALL ctl_stop('trd_mld_trc : requested workspace arrays unavailable') ; RETURN410 ENDIF411 400 ! Set-up pointers into sub-arrays of workspaces 412 ztmltot => wrk_3d_1(:,:,1:jptra) 413 ztmlres => wrk_3d_2(:,:,1:jptra) 414 ztmlatf => wrk_3d_3(:,:,1:jptra) 415 ztmlrad => wrk_3d_4(:,:,1:jptra) 416 ztmltot2 => wrk_3d_5(:,:,1:jptra) 417 ztmlres2 => wrk_3d_6(:,:,1:jptra) 418 ztmltrdm2 => wrk_3d_7(:,:,1:jptra) 419 ztmlatf2 => wrk_3d_8(:,:,1:jptra) 420 ztmlrad2 => wrk_3d_9(:,:,1:jptra) 421 401 CALL wrk_alloc( jpi, jpj, jptra, ztmltot , ztmlres , ztmlatf , ztmlrad ) 402 CALL wrk_alloc( jpi, jpj, jptra, ztmltot2, ztmlres2, ztmlatf2, ztmlrad2, ztmltrdm2 ) 422 403 423 404 IF( nn_dttrc /= 1 ) CALL ctl_stop( " Be careful, trends diags never validated " ) … … 907 888 IF( lrst_trc ) CALL trd_mld_trc_rst_write( kt ) ! this must be after the array swap above (III.3) 908 889 909 IF( wrk_not_released(3, 1,2,3,4,5,6,7,8,9) ) CALL ctl_stop('trd_mld_trc: failed to release workspace arrays') 890 CALL wrk_dealloc( jpi, jpj, jptra, ztmltot , ztmlres , ztmlatf , ztmlrad ) 891 CALL wrk_dealloc( jpi, jpj, jptra, ztmltot2, ztmlres2, ztmlatf2, ztmlrad2, ztmltrdm2 ) 910 892 ! 911 893 END SUBROUTINE trd_mld_trc -
branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/TOP_SRC/trcdta.F90
r3124 r3147 253 253 DEALLOCATE( sf_trcdta(jn)%fnow ) ! arrays in the structure 254 254 IF( sf_trcdta(jn)%ln_tint ) DEALLOCATE( sf_trcdta(jn)%fdta ) 255 DEALLOCATE( sf_trcdta ) ! the structure itself 256 255 257 ENDDO 256 258 ! -
branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/TOP_SRC/trcsub.F90
r3116 r3147 33 33 USE agrif_opa_interp 34 34 #endif 35 USE wrk_nemo_2 ! Memory allocation 35 36 36 37 IMPLICIT NONE … … 889 890 !! Reference : Leclair, M., and G. Madec, 2009, Ocean Modelling. 890 891 !!---------------------------------------------------------------------- 891 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released892 USE wrk_nemo, ONLY: zhdiv => wrk_2d_1 , z2d => wrk_2d_2 ! 2D workspace893 USE wrk_nemo, ONLY: z3d => wrk_3d_10 ! 3D workspace894 892 ! 895 893 INTEGER, INTENT(in) :: kt ! time step … … 897 895 INTEGER :: ji, jj, jk ! dummy loop indices 898 896 REAL(wp) :: zcoefu, zcoefv, zcoeff, z2dt, z1_2dt, z1_rau0 ! local scalars 899 !!---------------------------------------------------------------------- 900 901 IF( wrk_in_use(2, 1,2) .OR. wrk_in_use(3,10) ) THEN 902 CALL ctl_stop('trc_sub_ssh: requested workspace arrays unavailable') ; RETURN 903 ENDIF 904 897 REAL(wp), POINTER, DIMENSION(:,:) :: zhdiv 898 !!--------------------------------------------------------------------- 899 900 ! Allocate temporary workspace 901 CALL wrk_alloc( jpi, jpj, zhdiv ) 905 902 906 903 IF( kt == nittrc000 ) THEN … … 1002 999 1003 1000 ! 1004 IF( wrk_not_released(2, 1,2) .OR. wrk_not_released(3, 10) ) THEN 1005 CALL ctl_stop('ssh_wzv: failed to release workspace arrays') 1006 ENDIF 1001 CALL wrk_dealloc( jpi, jpj, zhdiv ) 1007 1002 ! 1008 1003 END SUBROUTINE trc_sub_ssh
Note: See TracChangeset
for help on using the changeset viewer.