New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 7910 for branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/LIM_SRC_2 – NEMO

Ignore:
Timestamp:
2017-04-13T16:21:08+02:00 (7 years ago)
Author:
timgraham
Message:

All wrk_alloc removed

Location:
branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/LIM_SRC_2
Files:
12 edited

Legend:

Unmodified
Added
Removed
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/LIM_SRC_2/limadv_2.F90

    r3625 r7910  
    2323   USE in_out_manager ! I/O manager 
    2424   USE lib_mpp        ! MPP library 
    25    USE wrk_nemo       ! work arrays 
    2625   USE prtctl         ! Print control 
    2726   USE lib_fortran    ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined)   
     
    7372      REAL(wp) ::   zs1new, zalf , zalfq , zbt           !    -         - 
    7473      REAL(wp) ::   zs2new, zalf1, zalf1q, zbt1          !    -         - 
    75       REAL(wp), DIMENSION(:,:), POINTER ::   zf0, zfx , zfy , zbet   ! 2D workspace 
    76       REAL(wp), DIMENSION(:,:), POINTER ::   zfm, zfxx, zfyy, zfxy   !  -      - 
    77       REAL(wp), DIMENSION(:,:), POINTER ::   zalg, zalg1, zalg1q     !  -      - 
     74      REAL(wp), DIMENSION(jpi,jpj) ::   zf0, zfx , zfy , zbet   ! 2D workspace 
     75      REAL(wp), DIMENSION(jpi,jpj) ::   zfm, zfxx, zfyy, zfxy   !  -      - 
     76      REAL(wp), DIMENSION(jpi,jpj) ::   zalg, zalg1, zalg1q     !  -      - 
    7877      !--------------------------------------------------------------------- 
    7978 
    80       CALL wrk_alloc( jpi, jpj, zf0 , zfx , zfy , zbet, zfm ) 
    81       CALL wrk_alloc( jpi, jpj, zfxx, zfyy, zfxy, zalg, zalg1, zalg1q ) 
    8279 
    8380      ! Limitation of moments.                                            
     
    224221      ENDIF 
    225222      ! 
    226       CALL wrk_dealloc( jpi, jpj, zf0 , zfx , zfy , zbet, zfm ) 
    227       CALL wrk_dealloc( jpi, jpj, zfxx, zfyy, zfxy, zalg, zalg1, zalg1q ) 
    228223      ! 
    229224   END SUBROUTINE lim_adv_x_2 
     
    256251      REAL(wp) ::   zs1new, zalf , zalfq , zbt           !    -         - 
    257252      REAL(wp) ::   zs2new, zalf1, zalf1q, zbt1          !    -         - 
    258       REAL(wp), DIMENSION(:,:), POINTER ::   zf0, zfx , zfy , zbet   ! 2D workspace 
    259       REAL(wp), DIMENSION(:,:), POINTER ::   zfm, zfxx, zfyy, zfxy   !  -      - 
    260       REAL(wp), DIMENSION(:,:), POINTER ::   zalg, zalg1, zalg1q     !  -      - 
     253      REAL(wp), DIMENSION(jpi,jpj) ::   zf0, zfx , zfy , zbet   ! 2D workspace 
     254      REAL(wp), DIMENSION(jpi,jpj) ::   zfm, zfxx, zfyy, zfxy   !  -      - 
     255      REAL(wp), DIMENSION(jpi,jpj) ::   zalg, zalg1, zalg1q     !  -      - 
    261256      !--------------------------------------------------------------------- 
    262257 
    263       CALL wrk_alloc( jpi, jpj, zf0 , zfx , zfy , zbet, zfm ) 
    264       CALL wrk_alloc( jpi, jpj, zfxx, zfyy, zfxy, zalg, zalg1, zalg1q ) 
    265258 
    266259      ! Limitation of moments. 
     
    410403      ENDIF 
    411404      ! 
    412       CALL wrk_dealloc( jpi, jpj, zf0 , zfx , zfy , zbet, zfm ) 
    413       CALL wrk_dealloc( jpi, jpj, zfxx, zfyy, zfxy, zalg, zalg1, zalg1q ) 
    414405      ! 
    415406   END SUBROUTINE lim_adv_y_2 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/LIM_SRC_2/limdyn_2.F90

    r7646 r7910  
    2828   USE lbclnk           ! lateral boundary condition - MPP link 
    2929   USE lib_mpp          ! MPP library 
    30    USE wrk_nemo         ! work arrays 
    3130   USE in_out_manager   ! I/O manager 
    3231   USE prtctl           ! Print control 
     
    6564      INTEGER  ::   i_j1, i_jpj        ! Starting/ending j-indices for rheology 
    6665      REAL(wp) ::   zcoef              ! temporary scalar 
    67       REAL(wp), POINTER, DIMENSION(:  ) ::   zind           ! i-averaged indicator of sea-ice 
    68       REAL(wp), POINTER, DIMENSION(:  ) ::   zmsk           ! i-averaged of tmask 
    69       REAL(wp), POINTER, DIMENSION(:,:) ::   zu_io, zv_io   ! ice-ocean velocity 
     66      REAL(wp), DIMENSION(jpj) ::   zind           ! i-averaged indicator of sea-ice 
     67      REAL(wp), DIMENSION(jpj) ::   zmsk           ! i-averaged of tmask 
     68      REAL(wp), DIMENSION(jpi,jpj) ::   zu_io, zv_io   ! ice-ocean velocity 
    7069      !!--------------------------------------------------------------------- 
    7170 
    72       CALL wrk_alloc( jpi, jpj, zu_io, zv_io ) 
    73       CALL wrk_alloc(      jpj, zind , zmsk  ) 
    7471 
    7572      IF( kt == nit000 )   CALL lim_dyn_init_2   ! Initialization (first time-step only) 
     
    206203      IF(ln_ctl)   CALL prt_ctl(tab2d_1=ust2s , clinfo1=' lim_dyn  : ust2s :') 
    207204      ! 
    208       CALL wrk_dealloc( jpi, jpj, zu_io, zv_io ) 
    209       CALL wrk_dealloc(      jpj, zind , zmsk  ) 
    210205      ! 
    211206   END SUBROUTINE lim_dyn_2 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/LIM_SRC_2/limhdf_2.F90

    r4990 r7910  
    1818   USE lbclnk           ! lateral boundary condition - MPP exchanges 
    1919   USE lib_mpp          ! MPP library 
    20    USE wrk_nemo         ! work arrays 
    2120   USE prtctl           ! Print control 
    2221   USE in_out_manager   ! I/O manager 
     
    5857      INTEGER  ::   its, iter, ierr   ! local integers 
    5958      REAL(wp) ::   zalfa, zrlxint, zconv, zeps   ! local scalars 
    60       REAL(wp), DIMENSION(:,:), POINTER :: zrlx, zflu, zflv, zdiv0, zdiv, ztab0  
     59      REAL(wp), DIMENSION(jpi,jpj) :: zrlx, zflu, zflv, zdiv0, zdiv, ztab0  
    6160      CHARACTER (len=55) :: charout 
    6261      !!------------------------------------------------------------------- 
    6362 
    64       CALL wrk_alloc( jpi, jpj, zrlx, zflu, zflv, zdiv0, zdiv, ztab0 ) 
    6563 
    6664      !                       !==  Initialisation  ==! 
     
    144142      ENDIF 
    145143      ! 
    146       CALL wrk_dealloc( jpi, jpj, zrlx, zflu, zflv, zdiv0, zdiv, ztab0 ) 
    147144      ! 
    148145   END SUBROUTINE lim_hdf_2 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/LIM_SRC_2/limmsh_2.F90

    r7646 r7910  
    2121   USE lib_mpp          ! MPP library 
    2222#if defined key_lim2_vp 
    23    USE wrk_nemo         ! work arrays 
    2423#endif 
    2524   USE lib_fortran    ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined)   
     
    5655      REAL(wp) ::   zh1p  , zh2p      !   -      - 
    5756      REAL(wp) ::   zd2d1p, zd1d2p    !   -      - 
    58       REAL(wp), POINTER, DIMENSION(:,:) ::   zd2d1, zd1d2   ! 2D workspace 
     57      REAL(wp), DIMENSION(jpi,jpj) ::   zd2d1, zd1d2   ! 2D workspace 
    5958#endif 
    6059      !!--------------------------------------------------------------------- 
    6160 
    6261#if defined key_lim2_vp 
    63       CALL wrk_alloc( jpi, jpj, zd2d1, zd1d2 ) 
    6462#endif 
    6563 
     
    280278      ! 
    281279#if defined key_lim2_vp 
    282       CALL wrk_dealloc( jpi, jpj, zd2d1, zd1d2 ) 
    283280#endif 
    284281      ! 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/LIM_SRC_2/limrhg.F90

    r7647 r7910  
    3434   USE lbclnk         ! Lateral Boundary Condition / MPP link 
    3535   USE lib_mpp        ! MPP library 
    36    USE wrk_nemo       ! work arrays 
    3736   USE in_out_manager ! I/O manager 
    3837   USE prtctl         ! Print control 
     
    131130      REAL(wp) ::   zintb, zintn  ! dummy argument 
    132131 
    133       REAL(wp), POINTER, DIMENSION(:,:) ::   zpresh           ! temporary array for ice strength 
    134       REAL(wp), POINTER, DIMENSION(:,:) ::   zpreshc          ! Ice strength on grid cell corners (zpreshc) 
    135       REAL(wp), POINTER, DIMENSION(:,:) ::   zfrld1, zfrld2   ! lead fraction on U/V points 
    136       REAL(wp), POINTER, DIMENSION(:,:) ::   zmass1, zmass2   ! ice/snow mass on U/V points 
    137       REAL(wp), POINTER, DIMENSION(:,:) ::   zcorl1, zcorl2   ! coriolis parameter on U/V points 
    138       REAL(wp), POINTER, DIMENSION(:,:) ::   za1ct , za2ct    ! temporary arrays 
    139       REAL(wp), POINTER, DIMENSION(:,:) ::   v_oce1           ! ocean u/v component on U points                            
    140       REAL(wp), POINTER, DIMENSION(:,:) ::   u_oce2           ! ocean u/v component on V points 
    141       REAL(wp), POINTER, DIMENSION(:,:) ::   u_ice2, v_ice1   ! ice u/v component on V/U point 
    142       REAL(wp), POINTER, DIMENSION(:,:) ::   zf1   , zf2      ! arrays for internal stresses 
    143       REAL(wp), POINTER, DIMENSION(:,:) ::   zmask            ! mask ocean grid points 
     132      REAL(wp), DIMENSION(jpi,jpj) ::   zpresh           ! temporary array for ice strength 
     133      REAL(wp), DIMENSION(jpi,jpj) ::   zpreshc          ! Ice strength on grid cell corners (zpreshc) 
     134      REAL(wp), DIMENSION(jpi,jpj) ::   zfrld1, zfrld2   ! lead fraction on U/V points 
     135      REAL(wp), DIMENSION(jpi,jpj) ::   zmass1, zmass2   ! ice/snow mass on U/V points 
     136      REAL(wp), DIMENSION(jpi,jpj) ::   zcorl1, zcorl2   ! coriolis parameter on U/V points 
     137      REAL(wp), DIMENSION(jpi,jpj) ::   za1ct , za2ct    ! temporary arrays 
     138      REAL(wp), DIMENSION(jpi,jpj) ::   v_oce1           ! ocean u/v component on U points                            
     139      REAL(wp), DIMENSION(jpi,jpj) ::   u_oce2           ! ocean u/v component on V points 
     140      REAL(wp), DIMENSION(jpi,jpj) ::   u_ice2, v_ice1   ! ice u/v component on V/U point 
     141      REAL(wp), DIMENSION(jpi,jpj) ::   zf1   , zf2      ! arrays for internal stresses 
     142      REAL(wp), DIMENSION(jpi,jpj) ::   zmask            ! mask ocean grid points 
    144143       
    145       REAL(wp), POINTER, DIMENSION(:,:) ::   zdt              ! tension at centre of grid cells 
    146       REAL(wp), POINTER, DIMENSION(:,:) ::   zds              ! Shear on northeast corner of grid cells 
    147       REAL(wp), POINTER, DIMENSION(:,:) ::   zs1   , zs2      ! Diagonal stress tensor components zs1 and zs2  
    148       REAL(wp), POINTER, DIMENSION(:,:) ::   zs12             ! Non-diagonal stress tensor component zs12 
    149       REAL(wp), POINTER, DIMENSION(:,:) ::   zu_ice, zv_ice, zresr   ! Local error on velocity 
    150       REAL(wp), POINTER, DIMENSION(:,:) ::   zpice            ! array used for the calculation of ice surface slope: 
     144      REAL(wp), DIMENSION(jpi,jpj) ::   zdt              ! tension at centre of grid cells 
     145      REAL(wp), DIMENSION(jpi,jpj) ::   zds              ! Shear on northeast corner of grid cells 
     146      REAL(wp), DIMENSION(jpi,jpj) ::   zs1   , zs2      ! Diagonal stress tensor components zs1 and zs2  
     147      REAL(wp), DIMENSION(jpi,jpj) ::   zs12             ! Non-diagonal stress tensor component zs12 
     148      REAL(wp), DIMENSION(jpi,jpj) ::   zu_ice, zv_ice, zresr   ! Local error on velocity 
     149      REAL(wp), DIMENSION(jpi,jpj) ::   zpice            ! array used for the calculation of ice surface slope: 
    151150                                                              !   ocean surface (ssh_m) if ice is not embedded 
    152151                                                              !   ice top surface if ice is embedded    
     
    156155      !!------------------------------------------------------------------- 
    157156 
    158       CALL wrk_alloc( jpi,jpj, zpresh, zfrld1, zmass1, zcorl1, za1ct , zpreshc, zfrld2, zmass2, zcorl2, za2ct ) 
    159       CALL wrk_alloc( jpi,jpj, u_oce2, u_ice2, v_oce1 , v_ice1 , zmask               ) 
    160       CALL wrk_alloc( jpi,jpj, zf1   , zu_ice, zf2   , zv_ice , zdt    , zds  ) 
    161       CALL wrk_alloc( jpi,jpj, zs1   , zs2   , zs12   , zresr , zpice                 ) 
    162157 
    163158#if  defined key_lim2 && ! defined key_lim2_vp 
     
    687682      ENDIF 
    688683      ! 
    689       CALL wrk_dealloc( jpi,jpj, zpresh, zfrld1, zmass1, zcorl1, za1ct , zpreshc, zfrld2, zmass2, zcorl2, za2ct ) 
    690       CALL wrk_dealloc( jpi,jpj, u_oce2, u_ice2, v_oce1 , v_ice1 , zmask               ) 
    691       CALL wrk_dealloc( jpi,jpj, zf1   , zu_ice, zf2   , zv_ice , zdt    , zds  ) 
    692       CALL wrk_dealloc( jpi,jpj, zs1   , zs2   , zs12   , zresr , zpice                 ) 
    693684 
    694685   END SUBROUTINE lim_rhg 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/LIM_SRC_2/limrhg_2.F90

    r7646 r7910  
    2727   USE lbclnk         ! lateral boundary condition - MPP exchanges 
    2828   USE lib_mpp        ! MPP library 
    29    USE wrk_nemo       ! work arrays 
    3029   USE in_out_manager ! I/O manager 
    3130   USE prtctl         ! Print control 
     
    8685      REAL(wp) ::   zs22_11, zs22_12, zs22_21, zs22_22 
    8786      REAL(wp) ::   zintb, zintn 
    88       REAL(wp), POINTER, DIMENSION(:,:) ::   zfrld, zmass, zcorl 
    89       REAL(wp), POINTER, DIMENSION(:,:) ::   za1ct, za2ct, zresr 
    90       REAL(wp), POINTER, DIMENSION(:,:) ::   zc1u, zc1v, zc2u, zc2v 
    91       REAL(wp), POINTER, DIMENSION(:,:) ::   zsang, zpice 
    92       REAL(wp), POINTER, DIMENSION(:,:) ::   zu0, zv0 
    93       REAL(wp), POINTER, DIMENSION(:,:) ::   zu_n, zv_n 
    94       REAL(wp), POINTER, DIMENSION(:,:) ::   zu_a, zv_a 
    95       REAL(wp), POINTER, DIMENSION(:,:) ::   zviszeta, zviseta 
    96       REAL(wp), POINTER, DIMENSION(:,:) ::   zzfrld, zztms 
    97       REAL(wp), POINTER, DIMENSION(:,:) ::   zi1, zi2, zmasst, zpresh 
     87      REAL(wp), DIMENSION(jpi,jpj) ::   zfrld, zmass, zcorl 
     88      REAL(wp), DIMENSION(jpi,jpj) ::   za1ct, za2ct, zresr 
     89      REAL(wp), DIMENSION(jpi,jpj) ::   zc1u, zc1v, zc2u, zc2v 
     90      REAL(wp), DIMENSION(jpi,jpj) ::   zsang, zpice 
     91      REAL(wp), DIMENSION(jpi,0:jpj+1) ::   zu0, zv0 
     92      REAL(wp), DIMENSION(jpi,0:jpj+1) ::   zu_n, zv_n 
     93      REAL(wp), DIMENSION(jpi,0:jpj+1) ::   zu_a, zv_a 
     94      REAL(wp), DIMENSION(jpi,0:jpj+1) ::   zviszeta, zviseta 
     95      REAL(wp), DIMENSION(jpi,0:jpj+1) ::   zzfrld, zztms 
     96      REAL(wp), DIMENSION(jpi,0:jpj+1) ::   zi1, zi2, zmasst, zpresh 
    9897      !!------------------------------------------------------------------- 
    9998       
    100       CALL wrk_alloc( jpi,jpj, zfrld, zmass, zcorl, za1ct, za2ct, zresr ) 
    101       CALL wrk_alloc( jpi,jpj, zc1u , zc1v , zc2u , zc2v , zsang, zpice ) 
    102       CALL wrk_alloc( jpi,jpj+2, zu0, zv0, zu_n, zv_n, zu_a, zv_a, zviszeta, zviseta, kjstart = 0 ) 
    103       CALL wrk_alloc( jpi,jpj+2, zzfrld, zztms, zi1, zi2, zmasst, zpresh, kjstart = 0 ) 
    10499 
    105100      !  Store initial velocities 
     
    600595      ENDIF 
    601596 
    602       CALL wrk_dealloc( jpi,jpj, zfrld, zmass, zcorl, za1ct, za2ct, zresr ) 
    603       CALL wrk_dealloc( jpi,jpj, zc1u , zc1v , zc2u , zc2v , zsang, zpice ) 
    604       CALL wrk_dealloc( jpi,jpj+2, zu0, zv0, zu_n, zv_n, zu_a, zv_a, zviszeta, zviseta, kjstart = 0 ) 
    605       CALL wrk_dealloc( jpi,jpj+2, zzfrld, zztms, zi1, zi2, zmasst, zpresh, kjstart = 0 ) 
    606597 
    607598   END SUBROUTINE lim_rhg_2 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/LIM_SRC_2/limsbc_2.F90

    r7646 r7910  
    3535   USE lbclnk           ! ocean lateral boundary condition - MPP exchanges 
    3636   USE lib_mpp          ! MPP library 
    37    USE wrk_nemo         ! work arrays 
    3837   USE in_out_manager   ! I/O manager 
    3938   USE iom              ! I/O library 
     
    111110      REAL(wp) ::   zemp_snw, zqhc,   zcd      !   -      - 
    112111      REAL(wp) ::   zswitch                    !   -      - 
    113       REAL(wp), POINTER, DIMENSION(:,:)   ::   zqnsoce       ! 2D workspace 
    114       REAL(wp), POINTER, DIMENSION(:,:,:) ::   zalb, zalbp   ! 2D/3D workspace 
     112      REAL(wp), DIMENSION(jpi,jpj)   ::   zqnsoce       ! 2D workspace 
     113      REAL(wp), DIMENSION(jpi,jpj,1) ::   zalb, zalbp   ! 2D/3D workspace 
    115114      !!--------------------------------------------------------------------- 
    116115      ! 
    117       CALL wrk_alloc( jpi, jpj, zqnsoce ) 
    118       CALL wrk_alloc( jpi, jpj, 1, zalb, zalbp ) 
    119116      ! 
    120117      SELECT CASE( nn_ice_embd )             ! levitating or embedded sea-ice option 
     
    269266      ENDIF  
    270267      ! 
    271       CALL wrk_dealloc( jpi, jpj, zqnsoce ) 
    272       CALL wrk_dealloc( jpi, jpj, 1, zalb, zalbp ) 
    273268      ! 
    274269   END SUBROUTINE lim_sbc_flx_2 
     
    308303      REAL(wp) ::   zfrldv, zat_v, zv_i, zvtau_ice, zv_t, zmodi   !   -      - 
    309304      REAL(wp) ::   zsang, zumt                                   !    -         - 
    310       REAL(wp), POINTER, DIMENSION(:,:) ::   ztio_u, ztio_v   ! ocean stress below sea-ice 
     305      REAL(wp), DIMENSION(jpi,jpj) ::   ztio_u, ztio_v   ! ocean stress below sea-ice 
    311306      !!--------------------------------------------------------------------- 
    312307      ! 
    313       CALL wrk_alloc( jpi, jpj, ztio_u, ztio_v ) 
    314308      ! 
    315309      SELECT CASE( cp_ice_msh )      
     
    421415         &                       tab2d_2=vtau, clinfo2=' vtau    : '        , mask2=vmask ) 
    422416      !   
    423       CALL wrk_dealloc( jpi, jpj, ztio_u, ztio_v ) 
    424417      ! 
    425418   END SUBROUTINE lim_sbc_tau_2 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/LIM_SRC_2/limthd_2.F90

    r7646 r7910  
    3131   USE lbclnk           ! 
    3232   USE lib_mpp          ! 
    33    USE wrk_nemo         ! work arrays 
    3433   USE iom              ! IOM library 
    3534   USE prtctl           ! Print control 
     
    9493      REAL(wp) ::   zrhoij, zrhoijm1     ! temporary scalars 
    9594      REAL(wp) ::   zztmp                ! temporary scalars within a loop 
    96       REAL(wp), POINTER, DIMENSION(:,:)     ::   ztmp      ! 2D workspace 
    97       REAL(wp), POINTER, DIMENSION(:,:)     ::   zqlbsbq   ! link with lead energy budget qldif 
    98       REAL(wp), POINTER, DIMENSION(:,:)     ::   zlicegr   ! link with lateral ice growth  
     95      REAL(wp), DIMENSION(jpi,jpj)     ::   ztmp      ! 2D workspace 
     96      REAL(wp), DIMENSION(jpi,jpj)     ::   zqlbsbq   ! link with lead energy budget qldif 
     97      REAL(wp), DIMENSION(jpi,jpj)     ::   zlicegr   ! link with lateral ice growth  
    9998!!$      REAL(wp), DIMENSION(:,:) ::   firic         ! IR flux over the ice            (outputs only) 
    10099!!$      REAL(wp), DIMENSION(:,:) ::   fcsic         ! Sensible heat flux over the ice (outputs only) 
    101100!!$      REAL(wp), DIMENSION(:,:) ::   fleic         ! Latent heat flux over the ice   (outputs only) 
    102101!!$      REAL(wp), DIMENSION(:,:) ::   qlatic        ! latent flux                     (outputs only) 
    103       REAL(wp), POINTER, DIMENSION(:,:) ::   zdvosif       ! Variation of volume at surface                (outputs only) 
    104       REAL(wp), POINTER, DIMENSION(:,:) ::   zdvobif       ! Variation of ice volume at the bottom ice     (outputs only) 
    105       REAL(wp), POINTER, DIMENSION(:,:) ::   zdvolif       ! Total variation of ice volume                 (outputs only) 
    106       REAL(wp), POINTER, DIMENSION(:,:) ::   zdvonif       ! Surface accretion Snow to Ice transformation  (outputs only) 
    107       REAL(wp), POINTER, DIMENSION(:,:) ::   zdvomif       ! Bottom variation of ice volume due to melting (outputs only) 
    108       REAL(wp), POINTER, DIMENSION(:,:) ::   zu_imasstr    ! Sea-ice transport along i-axis at U-point     (outputs only)  
    109       REAL(wp), POINTER, DIMENSION(:,:) ::   zv_imasstr    ! Sea-ice transport along j-axis at V-point     (outputs only)  
    110       REAL(wp), POINTER, DIMENSION(:,:,:) ::   zmsk        ! 3D workspace 
     102      REAL(wp), DIMENSION(jpi,jpj) ::   zdvosif       ! Variation of volume at surface                (outputs only) 
     103      REAL(wp), DIMENSION(jpi,jpj) ::   zdvobif       ! Variation of ice volume at the bottom ice     (outputs only) 
     104      REAL(wp), DIMENSION(jpi,jpj) ::   zdvolif       ! Total variation of ice volume                 (outputs only) 
     105      REAL(wp), DIMENSION(jpi,jpj) ::   zdvonif       ! Surface accretion Snow to Ice transformation  (outputs only) 
     106      REAL(wp), DIMENSION(jpi,jpj) ::   zdvomif       ! Bottom variation of ice volume due to melting (outputs only) 
     107      REAL(wp), DIMENSION(jpi,jpj) ::   zu_imasstr    ! Sea-ice transport along i-axis at U-point     (outputs only)  
     108      REAL(wp), DIMENSION(jpi,jpj) ::   zv_imasstr    ! Sea-ice transport along j-axis at V-point     (outputs only)  
     109      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zmsk        ! 3D workspace 
    111110      !!------------------------------------------------------------------- 
    112111 
    113       CALL wrk_alloc( jpi, jpj, ztmp, zqlbsbq, zlicegr, zdvosif, zdvobif, zdvolif, zdvonif, zdvomif, zu_imasstr, zv_imasstr ) 
    114       CALL wrk_alloc( jpi, jpj, jpk, zmsk ) 
    115112 
    116113      IF( kt == nit000 )   CALL lim_thd_init_2   ! Initialization (first time-step only) 
     
    522519      ENDIF 
    523520       ! 
    524       CALL wrk_dealloc( jpi, jpj, ztmp, zqlbsbq, zlicegr, zdvosif, zdvobif, zdvolif, zdvonif, zdvomif, zu_imasstr, zv_imasstr ) 
    525       CALL wrk_dealloc( jpi, jpj, jpk, zmsk ) 
    526521      ! 
    527522    END SUBROUTINE lim_thd_2 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/LIM_SRC_2/limthd_lac_2.F90

    r5836 r7910  
    1515   USE limistate_2  
    1616   USE lib_mpp        ! MPP library 
    17    USE wrk_nemo       ! work arrays 
    1817   USE lib_fortran    ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined)   
    1918 
     
    8079         iiceform       ,   &  !  1 = ice formed   ; 0 = no ice formed 
    8180         ihemis                !  dummy indice 
    82       REAL(wp), POINTER, DIMENSION(:) ::   zqbgow      !  heat budget of the open water (negative) 
    83       REAL(wp), POINTER, DIMENSION(:) ::   zfrl_old    !  previous sea/ice fraction 
    84       REAL(wp), POINTER, DIMENSION(:) ::   zhice_old   !  previous ice thickness 
    85       REAL(wp), POINTER, DIMENSION(:) ::   zhice0      !  thickness of newly formed ice in leads 
    86       REAL(wp), POINTER, DIMENSION(:) ::   zfrlmin     !  minimum fraction for leads 
    87       REAL(wp), POINTER, DIMENSION(:) ::   zdhicbot    !  part of thickness of newly formed ice in leads which  
     81      REAL(wp), DIMENSION(jpij) ::   zqbgow      !  heat budget of the open water (negative) 
     82      REAL(wp), DIMENSION(jpij) ::   zfrl_old    !  previous sea/ice fraction 
     83      REAL(wp), DIMENSION(jpij) ::   zhice_old   !  previous ice thickness 
     84      REAL(wp), DIMENSION(jpij) ::   zhice0      !  thickness of newly formed ice in leads 
     85      REAL(wp), DIMENSION(jpij) ::   zfrlmin     !  minimum fraction for leads 
     86      REAL(wp), DIMENSION(jpij) ::   zdhicbot    !  part of thickness of newly formed ice in leads which  
    8887                                !  has been already used in transport for example 
    8988      REAL(wp)  ::  & 
     
    102101      !!---------------------------------------------------------------------       
    103102                
    104       CALL wrk_alloc( jpij, zqbgow, zfrl_old, zhice_old, zhice0, zfrlmin, zdhicbot ) 
    105103       
    106104      !-------------------------------------------------------------- 
     
    221219      END DO 
    222220       
    223       CALL wrk_dealloc( jpij, zqbgow, zfrl_old, zhice_old, zhice0, zfrlmin, zdhicbot ) 
    224221      ! 
    225222   END SUBROUTINE lim_thd_lac_2 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/LIM_SRC_2/limthd_zdf_2.F90

    r5407 r7910  
    2121   USE in_out_manager 
    2222   USE lib_mpp          ! MPP library 
    23    USE wrk_nemo         ! work arrays 
    2423   USE lib_fortran      ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined)   
    2524     
     
    7372      !! 
    7473      INTEGER ::   ji       ! dummy loop indices 
    75       REAL(wp), POINTER, DIMENSION(:) ::   zqcmlts        ! energy due to surface melting 
    76       REAL(wp), POINTER, DIMENSION(:) ::   zqcmltb        ! energy due to bottom melting 
    77       REAL(wp), POINTER, DIMENSION(:) ::   ztsmlt         ! snow/ice surface melting temperature 
    78       REAL(wp), POINTER, DIMENSION(:) ::   ztbif          ! int. temp. at the mid-point of the 1st layer of the snow/ice sys.  
    79       REAL(wp), POINTER, DIMENSION(:) ::   zksn           ! effective conductivity of snow 
    80       REAL(wp), POINTER, DIMENSION(:) ::   zkic           ! effective conductivity of ice 
    81       REAL(wp), POINTER, DIMENSION(:) ::   zksndh         ! thermal cond. at the mid-point of the 1st layer of the snow/ice sys.  
    82       REAL(wp), POINTER, DIMENSION(:) ::   zfcsu          ! conductive heat flux at the surface of the snow/ice system  
    83       REAL(wp), POINTER, DIMENSION(:) ::   zfcsudt        ! = zfcsu * dt 
    84       REAL(wp), POINTER, DIMENSION(:) ::   zi0            ! frac. of the net SW rad. which is not absorbed at the surface 
    85       REAL(wp), POINTER, DIMENSION(:) ::   z1mi0          ! fraction of the net SW radiation absorbed at the surface 
    86       REAL(wp), POINTER, DIMENSION(:) ::   zqmax          ! maximum energy stored in brine pockets 
    87       REAL(wp), POINTER, DIMENSION(:) ::   zrcpdt         ! h_su*rho_su*cp_su/dt(h_su being the thick. of surf. layer) 
    88       REAL(wp), POINTER, DIMENSION(:) ::   zts_old        ! previous surface temperature 
    89       REAL(wp), POINTER, DIMENSION(:) ::   zidsn , z1midsn , zidsnic ! temporary variables 
    90       REAL(wp), POINTER, DIMENSION(:) ::   zfnet          ! net heat flux at the top surface( incl. conductive heat flux) 
    91       REAL(wp), POINTER, DIMENSION(:) ::   zsprecip       ! snow accumulation 
    92       REAL(wp), POINTER, DIMENSION(:) ::   zhsnw_old      ! previous snow thickness 
    93       REAL(wp), POINTER, DIMENSION(:) ::   zdhictop       ! change in ice thickness due to top surf ablation/accretion 
    94       REAL(wp), POINTER, DIMENSION(:) ::   zdhicbot       ! change in ice thickness due to bottom surf abl/acc 
    95       REAL(wp), POINTER, DIMENSION(:) ::   zqsup          ! energy transmitted to ocean (coming from top surf abl/acc) 
    96       REAL(wp), POINTER, DIMENSION(:) ::   zqocea         ! energy transmitted to ocean (coming from bottom sur abl/acc) 
    97       REAL(wp), POINTER, DIMENSION(:) ::   zfrl_old       ! previous sea/ice fraction 
    98       REAL(wp), POINTER, DIMENSION(:) ::   zfrld_1d       ! new sea/ice fraction 
    99       REAL(wp), POINTER, DIMENSION(:) ::   zep            ! internal temperature of the 2nd layer of the snow/ice system 
     74      REAL(wp), DIMENSION(jpij) ::   zqcmlts        ! energy due to surface melting 
     75      REAL(wp), DIMENSION(jpij) ::   zqcmltb        ! energy due to bottom melting 
     76      REAL(wp), DIMENSION(jpij) ::   ztsmlt         ! snow/ice surface melting temperature 
     77      REAL(wp), DIMENSION(jpij) ::   ztbif          ! int. temp. at the mid-point of the 1st layer of the snow/ice sys.  
     78      REAL(wp), DIMENSION(jpij) ::   zksn           ! effective conductivity of snow 
     79      REAL(wp), DIMENSION(jpij) ::   zkic           ! effective conductivity of ice 
     80      REAL(wp), DIMENSION(jpij) ::   zksndh         ! thermal cond. at the mid-point of the 1st layer of the snow/ice sys.  
     81      REAL(wp), DIMENSION(jpij) ::   zfcsu          ! conductive heat flux at the surface of the snow/ice system  
     82      REAL(wp), DIMENSION(jpij) ::   zfcsudt        ! = zfcsu * dt 
     83      REAL(wp), DIMENSION(jpij) ::   zi0            ! frac. of the net SW rad. which is not absorbed at the surface 
     84      REAL(wp), DIMENSION(jpij) ::   z1mi0          ! fraction of the net SW radiation absorbed at the surface 
     85      REAL(wp), DIMENSION(jpij) ::   zqmax          ! maximum energy stored in brine pockets 
     86      REAL(wp), DIMENSION(jpij) ::   zrcpdt         ! h_su*rho_su*cp_su/dt(h_su being the thick. of surf. layer) 
     87      REAL(wp), DIMENSION(jpij) ::   zts_old        ! previous surface temperature 
     88      REAL(wp), DIMENSION(jpij) ::   zidsn , z1midsn , zidsnic ! temporary variables 
     89      REAL(wp), DIMENSION(jpij) ::   zfnet          ! net heat flux at the top surface( incl. conductive heat flux) 
     90      REAL(wp), DIMENSION(jpij) ::   zsprecip       ! snow accumulation 
     91      REAL(wp), DIMENSION(jpij) ::   zhsnw_old      ! previous snow thickness 
     92      REAL(wp), DIMENSION(jpij) ::   zdhictop       ! change in ice thickness due to top surf ablation/accretion 
     93      REAL(wp), DIMENSION(jpij) ::   zdhicbot       ! change in ice thickness due to bottom surf abl/acc 
     94      REAL(wp), DIMENSION(jpij) ::   zqsup          ! energy transmitted to ocean (coming from top surf abl/acc) 
     95      REAL(wp), DIMENSION(jpij) ::   zqocea         ! energy transmitted to ocean (coming from bottom sur abl/acc) 
     96      REAL(wp), DIMENSION(jpij) ::   zfrl_old       ! previous sea/ice fraction 
     97      REAL(wp), DIMENSION(jpij) ::   zfrld_1d       ! new sea/ice fraction 
     98      REAL(wp), DIMENSION(jpij) ::   zep            ! internal temperature of the 2nd layer of the snow/ice system 
    10099      REAL(wp), DIMENSION(3) :: &  
    101100            zplediag  &    ! principle diagonal, subdiag. and supdiag. of the  
     
    164163          , zibmlt, ziqr, zihgnew, zind, ztmp        ! temporary scalars 
    165164       !!---------------------------------------------------------------------- 
    166        CALL wrk_alloc( jpij, ztsmlt, ztbif  , zksn    , zkic    , zksndh , zfcsu  , zfcsudt , zi0      , z1mi0   , zqmax    ) 
    167        CALL wrk_alloc( jpij, zrcpdt, zts_old, zidsn   , z1midsn , zidsnic, zfnet  , zsprecip, zhsnw_old, zdhictop, zdhicbot ) 
    168        CALL wrk_alloc( jpij, zqsup , zqocea , zfrl_old, zfrld_1d, zep    , zqcmlts, zqcmltb                                 ) 
    169165 
    170166       !----------------------------------------------------------------------- 
     
    809805       END DO 
    810806       !  
    811        CALL wrk_dealloc( jpij, ztsmlt, ztbif  , zksn    , zkic    , zksndh , zfcsu  , zfcsudt , zi0      , z1mi0   , zqmax    ) 
    812        CALL wrk_dealloc( jpij, zrcpdt, zts_old, zidsn   , z1midsn , zidsnic, zfnet  , zsprecip, zhsnw_old, zdhictop, zdhicbot ) 
    813        CALL wrk_dealloc( jpij, zqsup , zqocea , zfrl_old, zfrld_1d, zep    , zqcmlts, zqcmltb                                 ) 
    814807       ! 
    815808    END SUBROUTINE lim_thd_zdf_2 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/LIM_SRC_2/limtrp_2.F90

    r7646 r7910  
    2727   USE lbclnk          ! lateral boundary conditions -- MPP exchanges 
    2828   USE lib_mpp         ! MPP library 
    29    USE wrk_nemo        ! work arrays 
    3029# if defined key_agrif 
    3130   USE agrif_lim2_interp ! nesting 
     
    7675      REAL(wp) ::   zvbord , zcfl   , zusnit            !   -      - 
    7776      REAL(wp) ::   zrtt   , ztsn   , ztic1 , ztic2     !   -      - 
    78       REAL(wp), POINTER, DIMENSION(:,:)  ::   zui_u , zvi_v , zsm             ! 2D workspace 
    79       REAL(wp), POINTER, DIMENSION(:,:)  ::   zs0ice, zs0sn , zs0a            !  -      - 
    80       REAL(wp), POINTER, DIMENSION(:,:)  ::   zs0c0 , zs0c1 , zs0c2 , zs0st   !  -      - 
     77      REAL(wp), DIMENSION(jpi,jpj)  ::   zui_u , zvi_v , zsm             ! 2D workspace 
     78      REAL(wp), DIMENSION(jpi,jpj)  ::   zs0ice, zs0sn , zs0a            !  -      - 
     79      REAL(wp), DIMENSION(jpi,jpj)  ::   zs0c0 , zs0c1 , zs0c2 , zs0st   !  -      - 
    8180      !--------------------------------------------------------------------- 
    8281 
    83       CALL wrk_alloc( jpi, jpj, zui_u , zvi_v , zsm, zs0ice, zs0sn , zs0a, zs0c0 , zs0c1 , zs0c2 , zs0st ) 
    8482 
    8583      IF( kt == nit000  )   CALL lim_trp_init_2      ! Initialization (first time-step only) 
     
    281279# endif 
    282280      !  
    283       CALL wrk_dealloc( jpi, jpj, zui_u , zvi_v , zsm, zs0ice, zs0sn , zs0a, zs0c0 , zs0c1 , zs0c2 , zs0st ) 
    284281      ! 
    285282   END SUBROUTINE lim_trp_2 
  • branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/LIM_SRC_2/limwri_2.F90

    r6140 r7910  
    3030   USE in_out_manager 
    3131   USE lib_mpp          ! MPP library 
    32    USE wrk_nemo         ! work arrays 
    3332   USE iom 
    3433   USE ioipsl 
     
    103102         &          zindh, zinda, zindb, ztmu 
    104103      REAL(wp), DIMENSION(1)                ::   zdept 
    105       REAL(wp), POINTER, DIMENSION(:,:)     ::   zfield 
    106       !!------------------------------------------------------------------- 
    107  
    108       CALL wrk_alloc( jpi, jpj, zfield ) 
     104      REAL(wp), DIMENSION(jpi,jpj)     ::   zfield 
     105      !!------------------------------------------------------------------- 
     106 
    109107                                                 !--------------------! 
    110108      IF( kt == nit000 ) THEN                    !   Initialisation   ! 
     
    206204      IF( ( nn_fsbc * niter ) >= nitend )   CALL histclo( nice )  
    207205 
    208       CALL wrk_dealloc( jpi, jpj, zfield ) 
    209206      ! 
    210207   END SUBROUTINE lim_wri_2 
Note: See TracChangeset for help on using the changeset viewer.