MODULE scoce !!====================================================================== !! *** MODULE oce *** !! Ocean : dynamics and active tracers defined in memory !!====================================================================== !! History : 1.0 ! 2002-11 (G. Madec) F90: Free form and module !! 3.1 ! 2009-02 (G. Madec, M. Leclair) pure z* !coordinate !! 3.3 ! 2010-09 (C. Ethe) TRA-TRC merge: add ts, gtsu, !gtsv 4D arrays !! 3.7 ! 2014-01 (G. Madec) suppression of curl and !before hdiv from in-core memory !!---------------------------------------------------------------------- USE par_oce ! ocean parameters USE lib_mpp ! MPP library IMPLICIT NONE PRIVATE PUBLIC scoce_alloc ! routine called by nemo_init in nemogcm.F90 REAL(wp), PUBLIC, ALLOCATABLE, DIMENSION(:,:,:) :: scr1, scr2, scr3, & !: scratch 3D arrays scr4, scr5, scr6, & scr7, scr8, scr9, & scr10, scr11 REAL(wp), PUBLIC, ALLOCATABLE, DIMENSION(:,:,:) :: scr3D1 !: scratch 3D arrays REAL(wp), PUBLIC, ALLOCATABLE, DIMENSION(:,:) :: scr2D1, scr2D2, scr2D3, scr2D4, scr2D5, & !: scratch 2D arrays scr2D6, scr2D7, scr2D8, scr2D9, scr2D10, scr2D11, & scr2D12, scr2D13, scr2D14, scr2D15, scr2D16, scr2D17, & scr2D18, scr2D19, scr2D20, scr2D21, scr2D22, scr2D23, & scr2D24, scr2D25, scr2D26, scr2D27, scr2D28, scr2D29, & scr2D30, scr2D31, scr2D32, scr2D33, scr2D34, scr2D35, & scr2D36, scr2D37, scr2D38 INTEGER, PUBLIC, ALLOCATABLE, DIMENSION(:,:) :: iscr2D1, iscr2D2, iscr2D3 !: integer scratch 2D arrays CONTAINS INTEGER FUNCTION scoce_alloc() !!---------------------------------------------------------------------- !! *** FUNCTION oce_alloc *** !!---------------------------------------------------------------------- INTEGER :: ierr(3) !!---------------------------------------------------------------------- ! ierr(:) = 0 ALLOCATE(scr1(jpi,jpj,jpk), scr2(jpi,jpj,jpk), scr3(jpi,jpj,jpk), scr4(jpi,jpj,jpk), scr5(jpi,jpj,jpk), & scr6(jpi,jpj,jpk), scr7(jpi,jpj,jpk), scr8(jpi,jpj,jpk), scr9(jpi,jpj,jpk), scr10(jpi,jpj,jpk), & scr11(jpi,jpj,jpk), STAT=ierr(1)) ALLOCATE(scr2D1(jpi,jpj), scr2D2(jpi,jpj), scr2D3(jpi,jpj), scr2D4(jpi,jpj), scr2D5(jpi,jpj), & scr2D6(jpi,jpj), scr2D7(jpi,jpj), scr2D8(jpi,jpj), scr2D9(jpi,jpj), scr2D10(jpi,jpj),& scr2D11(jpi,jpj), scr2D12(jpi,jpj), scr2D13(jpi,jpj), scr2D14(jpi,jpj), scr2D15(jpi,jpj),& scr2D16(jpi,jpj), scr2D17(jpi,jpj), scr2D18(jpi,jpj), scr2D19(jpi,jpj), scr2D20(jpi,jpj),& scr2D21(jpi,jpj), scr2D22(jpi,jpj), scr2D23(jpi,jpj), scr2D24(jpi,jpj), scr2D25(jpi,jpj),& scr2D26(jpi,jpj), scr2D27(jpi,jpj), scr2D28(jpi,jpj), scr2D29(jpi,jpj), scr2D30(jpi,jpj),& scr2D31(jpi,jpj), scr2D32(jpi,jpj), scr2D33(jpi,jpj), scr2D34(jpi,jpj), scr2D35(jpi,jpj),& scr2D36(jpi,jpj), scr2D37(jpi,jpj), scr2D38(jpi,jpj), & scr3D1(jpi,jpj, jpts), STAT=ierr(2)) ALLOCATE(iscr2D1(jpi,jpj), iscr2D2(jpi,jpj), iscr2D3(jpi,jpj), STAT=ierr(3)) ! scoce_alloc = MAXVAL( ierr ) IF( lk_mpp ) CALL mpp_sum( scoce_alloc ) IF( scoce_alloc /= 0 ) CALL ctl_stop( 'STOP', 'nemo_alloc: unable to allocate scratch ocean arrays' ) scr1(:, :, :) = 0. scr2(:, :, :) = 0. scr3(:, :, :) = 0. scr4(:, :, :) = 0. scr5(:, :, :) = 0. scr6(:, :, :) = 0. scr7(:, :, :) = 0. scr8(:, :, :) = 0. scr9(:, :, :) = 0. scr10(:, :, :) = 0. scr11(:, :, :) = 0. scr3D1(:, :, :)= 0. scr2D1(:, :) = 0. scr2D2(:, :) = 0. scr2D3(:, :) = 0. scr2D4(:, :) = 0. scr2D5(:, :) = 0. scr2D6(:, :) = 0. scr2D7(:, :) = 0. scr2D8(:, :) = 0. scr2D9(:, :) = 0. scr2D10(:, :) = 0. scr2D11(:, :) = 0. scr2D12(:, :) = 0. scr2D13(:, :) = 0. scr2D14(:, :) = 0. scr2D15(:, :) = 0. scr2D16(:, :) = 0. scr2D17(:, :) = 0. scr2D18(:, :) = 0. scr2D19(:, :) = 0. iscr2D1(:, :) = 0 iscr2D2(:, :) = 0 iscr2D3(:, :) = 0 ! END FUNCTION scoce_alloc !!====================================================================== END MODULE scoce