- Timestamp:
- 2017-04-13T16:21:08+02:00 (7 years ago)
- 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 23 23 USE in_out_manager ! I/O manager 24 24 USE lib_mpp ! MPP library 25 USE wrk_nemo ! work arrays26 25 USE prtctl ! Print control 27 26 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) … … 73 72 REAL(wp) :: zs1new, zalf , zalfq , zbt ! - - 74 73 REAL(wp) :: zs2new, zalf1, zalf1q, zbt1 ! - - 75 REAL(wp), DIMENSION( :,:), POINTER:: zf0, zfx , zfy , zbet ! 2D workspace76 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 ! - - 78 77 !--------------------------------------------------------------------- 79 78 80 CALL wrk_alloc( jpi, jpj, zf0 , zfx , zfy , zbet, zfm )81 CALL wrk_alloc( jpi, jpj, zfxx, zfyy, zfxy, zalg, zalg1, zalg1q )82 79 83 80 ! Limitation of moments. … … 224 221 ENDIF 225 222 ! 226 CALL wrk_dealloc( jpi, jpj, zf0 , zfx , zfy , zbet, zfm )227 CALL wrk_dealloc( jpi, jpj, zfxx, zfyy, zfxy, zalg, zalg1, zalg1q )228 223 ! 229 224 END SUBROUTINE lim_adv_x_2 … … 256 251 REAL(wp) :: zs1new, zalf , zalfq , zbt ! - - 257 252 REAL(wp) :: zs2new, zalf1, zalf1q, zbt1 ! - - 258 REAL(wp), DIMENSION( :,:), POINTER:: zf0, zfx , zfy , zbet ! 2D workspace259 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 ! - - 261 256 !--------------------------------------------------------------------- 262 257 263 CALL wrk_alloc( jpi, jpj, zf0 , zfx , zfy , zbet, zfm )264 CALL wrk_alloc( jpi, jpj, zfxx, zfyy, zfxy, zalg, zalg1, zalg1q )265 258 266 259 ! Limitation of moments. … … 410 403 ENDIF 411 404 ! 412 CALL wrk_dealloc( jpi, jpj, zf0 , zfx , zfy , zbet, zfm )413 CALL wrk_dealloc( jpi, jpj, zfxx, zfyy, zfxy, zalg, zalg1, zalg1q )414 405 ! 415 406 END SUBROUTINE lim_adv_y_2 -
branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/LIM_SRC_2/limdyn_2.F90
r7646 r7910 28 28 USE lbclnk ! lateral boundary condition - MPP link 29 29 USE lib_mpp ! MPP library 30 USE wrk_nemo ! work arrays31 30 USE in_out_manager ! I/O manager 32 31 USE prtctl ! Print control … … 65 64 INTEGER :: i_j1, i_jpj ! Starting/ending j-indices for rheology 66 65 REAL(wp) :: zcoef ! temporary scalar 67 REAL(wp), POINTER, DIMENSION(:) :: zind ! i-averaged indicator of sea-ice68 REAL(wp), POINTER, DIMENSION(:) :: zmsk ! i-averaged of tmask69 REAL(wp), POINTER, DIMENSION(:,:) :: zu_io, zv_io ! ice-ocean velocity66 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 70 69 !!--------------------------------------------------------------------- 71 70 72 CALL wrk_alloc( jpi, jpj, zu_io, zv_io )73 CALL wrk_alloc( jpj, zind , zmsk )74 71 75 72 IF( kt == nit000 ) CALL lim_dyn_init_2 ! Initialization (first time-step only) … … 206 203 IF(ln_ctl) CALL prt_ctl(tab2d_1=ust2s , clinfo1=' lim_dyn : ust2s :') 207 204 ! 208 CALL wrk_dealloc( jpi, jpj, zu_io, zv_io )209 CALL wrk_dealloc( jpj, zind , zmsk )210 205 ! 211 206 END SUBROUTINE lim_dyn_2 -
branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/LIM_SRC_2/limhdf_2.F90
r4990 r7910 18 18 USE lbclnk ! lateral boundary condition - MPP exchanges 19 19 USE lib_mpp ! MPP library 20 USE wrk_nemo ! work arrays21 20 USE prtctl ! Print control 22 21 USE in_out_manager ! I/O manager … … 58 57 INTEGER :: its, iter, ierr ! local integers 59 58 REAL(wp) :: zalfa, zrlxint, zconv, zeps ! local scalars 60 REAL(wp), DIMENSION( :,:), POINTER:: zrlx, zflu, zflv, zdiv0, zdiv, ztab059 REAL(wp), DIMENSION(jpi,jpj) :: zrlx, zflu, zflv, zdiv0, zdiv, ztab0 61 60 CHARACTER (len=55) :: charout 62 61 !!------------------------------------------------------------------- 63 62 64 CALL wrk_alloc( jpi, jpj, zrlx, zflu, zflv, zdiv0, zdiv, ztab0 )65 63 66 64 ! !== Initialisation ==! … … 144 142 ENDIF 145 143 ! 146 CALL wrk_dealloc( jpi, jpj, zrlx, zflu, zflv, zdiv0, zdiv, ztab0 )147 144 ! 148 145 END SUBROUTINE lim_hdf_2 -
branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/LIM_SRC_2/limmsh_2.F90
r7646 r7910 21 21 USE lib_mpp ! MPP library 22 22 #if defined key_lim2_vp 23 USE wrk_nemo ! work arrays24 23 #endif 25 24 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) … … 56 55 REAL(wp) :: zh1p , zh2p ! - - 57 56 REAL(wp) :: zd2d1p, zd1d2p ! - - 58 REAL(wp), POINTER, DIMENSION(:,:) :: zd2d1, zd1d2 ! 2D workspace57 REAL(wp), DIMENSION(jpi,jpj) :: zd2d1, zd1d2 ! 2D workspace 59 58 #endif 60 59 !!--------------------------------------------------------------------- 61 60 62 61 #if defined key_lim2_vp 63 CALL wrk_alloc( jpi, jpj, zd2d1, zd1d2 )64 62 #endif 65 63 … … 280 278 ! 281 279 #if defined key_lim2_vp 282 CALL wrk_dealloc( jpi, jpj, zd2d1, zd1d2 )283 280 #endif 284 281 ! -
branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/LIM_SRC_2/limrhg.F90
r7647 r7910 34 34 USE lbclnk ! Lateral Boundary Condition / MPP link 35 35 USE lib_mpp ! MPP library 36 USE wrk_nemo ! work arrays37 36 USE in_out_manager ! I/O manager 38 37 USE prtctl ! Print control … … 131 130 REAL(wp) :: zintb, zintn ! dummy argument 132 131 133 REAL(wp), POINTER, DIMENSION(:,:) :: zpresh ! temporary array for ice strength134 REAL(wp), POINTER, DIMENSION(:,:) :: zpreshc ! Ice strength on grid cell corners (zpreshc)135 REAL(wp), POINTER, DIMENSION(:,:) :: zfrld1, zfrld2 ! lead fraction on U/V points136 REAL(wp), POINTER, DIMENSION(:,:) :: zmass1, zmass2 ! ice/snow mass on U/V points137 REAL(wp), POINTER, DIMENSION(:,:) :: zcorl1, zcorl2 ! coriolis parameter on U/V points138 REAL(wp), POINTER, DIMENSION(:,:) :: za1ct , za2ct ! temporary arrays139 REAL(wp), POINTER, DIMENSION(:,:) :: v_oce1 ! ocean u/v component on U points140 REAL(wp), POINTER, DIMENSION(:,:) :: u_oce2 ! ocean u/v component on V points141 REAL(wp), POINTER, DIMENSION(:,:) :: u_ice2, v_ice1 ! ice u/v component on V/U point142 REAL(wp), POINTER, DIMENSION(:,:) :: zf1 , zf2 ! arrays for internal stresses143 REAL(wp), POINTER, DIMENSION(:,:) :: zmask ! mask ocean grid points132 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 144 143 145 REAL(wp), POINTER, DIMENSION(:,:) :: zdt ! tension at centre of grid cells146 REAL(wp), POINTER, DIMENSION(:,:) :: zds ! Shear on northeast corner of grid cells147 REAL(wp), POINTER, DIMENSION(:,:) :: zs1 , zs2 ! Diagonal stress tensor components zs1 and zs2148 REAL(wp), POINTER, DIMENSION(:,:) :: zs12 ! Non-diagonal stress tensor component zs12149 REAL(wp), POINTER, DIMENSION(:,:) :: zu_ice, zv_ice, zresr ! Local error on velocity150 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: 151 150 ! ocean surface (ssh_m) if ice is not embedded 152 151 ! ice top surface if ice is embedded … … 156 155 !!------------------------------------------------------------------- 157 156 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 )162 157 163 158 #if defined key_lim2 && ! defined key_lim2_vp … … 687 682 ENDIF 688 683 ! 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 )693 684 694 685 END SUBROUTINE lim_rhg -
branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/LIM_SRC_2/limrhg_2.F90
r7646 r7910 27 27 USE lbclnk ! lateral boundary condition - MPP exchanges 28 28 USE lib_mpp ! MPP library 29 USE wrk_nemo ! work arrays30 29 USE in_out_manager ! I/O manager 31 30 USE prtctl ! Print control … … 86 85 REAL(wp) :: zs22_11, zs22_12, zs22_21, zs22_22 87 86 REAL(wp) :: zintb, zintn 88 REAL(wp), POINTER, DIMENSION(:,:) :: zfrld, zmass, zcorl89 REAL(wp), POINTER, DIMENSION(:,:) :: za1ct, za2ct, zresr90 REAL(wp), POINTER, DIMENSION(:,:) :: zc1u, zc1v, zc2u, zc2v91 REAL(wp), POINTER, DIMENSION(:,:) :: zsang, zpice92 REAL(wp), POINTER, DIMENSION(:,:) :: zu0, zv093 REAL(wp), POINTER, DIMENSION(:,:) :: zu_n, zv_n94 REAL(wp), POINTER, DIMENSION(:,:) :: zu_a, zv_a95 REAL(wp), POINTER, DIMENSION(:,:) :: zviszeta, zviseta96 REAL(wp), POINTER, DIMENSION(:,:) :: zzfrld, zztms97 REAL(wp), POINTER, DIMENSION(:,:) :: zi1, zi2, zmasst, zpresh87 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 98 97 !!------------------------------------------------------------------- 99 98 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 )104 99 105 100 ! Store initial velocities … … 600 595 ENDIF 601 596 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 )606 597 607 598 END SUBROUTINE lim_rhg_2 -
branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/LIM_SRC_2/limsbc_2.F90
r7646 r7910 35 35 USE lbclnk ! ocean lateral boundary condition - MPP exchanges 36 36 USE lib_mpp ! MPP library 37 USE wrk_nemo ! work arrays38 37 USE in_out_manager ! I/O manager 39 38 USE iom ! I/O library … … 111 110 REAL(wp) :: zemp_snw, zqhc, zcd ! - - 112 111 REAL(wp) :: zswitch ! - - 113 REAL(wp), POINTER, DIMENSION(:,:) :: zqnsoce ! 2D workspace114 REAL(wp), POINTER, DIMENSION(:,:,:) :: zalb, zalbp ! 2D/3D workspace112 REAL(wp), DIMENSION(jpi,jpj) :: zqnsoce ! 2D workspace 113 REAL(wp), DIMENSION(jpi,jpj,1) :: zalb, zalbp ! 2D/3D workspace 115 114 !!--------------------------------------------------------------------- 116 115 ! 117 CALL wrk_alloc( jpi, jpj, zqnsoce )118 CALL wrk_alloc( jpi, jpj, 1, zalb, zalbp )119 116 ! 120 117 SELECT CASE( nn_ice_embd ) ! levitating or embedded sea-ice option … … 269 266 ENDIF 270 267 ! 271 CALL wrk_dealloc( jpi, jpj, zqnsoce )272 CALL wrk_dealloc( jpi, jpj, 1, zalb, zalbp )273 268 ! 274 269 END SUBROUTINE lim_sbc_flx_2 … … 308 303 REAL(wp) :: zfrldv, zat_v, zv_i, zvtau_ice, zv_t, zmodi ! - - 309 304 REAL(wp) :: zsang, zumt ! - - 310 REAL(wp), POINTER, DIMENSION(:,:) :: ztio_u, ztio_v ! ocean stress below sea-ice305 REAL(wp), DIMENSION(jpi,jpj) :: ztio_u, ztio_v ! ocean stress below sea-ice 311 306 !!--------------------------------------------------------------------- 312 307 ! 313 CALL wrk_alloc( jpi, jpj, ztio_u, ztio_v )314 308 ! 315 309 SELECT CASE( cp_ice_msh ) … … 421 415 & tab2d_2=vtau, clinfo2=' vtau : ' , mask2=vmask ) 422 416 ! 423 CALL wrk_dealloc( jpi, jpj, ztio_u, ztio_v )424 417 ! 425 418 END SUBROUTINE lim_sbc_tau_2 -
branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/LIM_SRC_2/limthd_2.F90
r7646 r7910 31 31 USE lbclnk ! 32 32 USE lib_mpp ! 33 USE wrk_nemo ! work arrays34 33 USE iom ! IOM library 35 34 USE prtctl ! Print control … … 94 93 REAL(wp) :: zrhoij, zrhoijm1 ! temporary scalars 95 94 REAL(wp) :: zztmp ! temporary scalars within a loop 96 REAL(wp), POINTER, DIMENSION(:,:) :: ztmp ! 2D workspace97 REAL(wp), POINTER, DIMENSION(:,:) :: zqlbsbq ! link with lead energy budget qldif98 REAL(wp), POINTER, DIMENSION(:,:) :: zlicegr ! link with lateral ice growth95 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 99 98 !!$ REAL(wp), DIMENSION(:,:) :: firic ! IR flux over the ice (outputs only) 100 99 !!$ REAL(wp), DIMENSION(:,:) :: fcsic ! Sensible heat flux over the ice (outputs only) 101 100 !!$ REAL(wp), DIMENSION(:,:) :: fleic ! Latent heat flux over the ice (outputs only) 102 101 !!$ 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 workspace102 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 111 110 !!------------------------------------------------------------------- 112 111 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 )115 112 116 113 IF( kt == nit000 ) CALL lim_thd_init_2 ! Initialization (first time-step only) … … 522 519 ENDIF 523 520 ! 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 )526 521 ! 527 522 END SUBROUTINE lim_thd_2 -
branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/LIM_SRC_2/limthd_lac_2.F90
r5836 r7910 15 15 USE limistate_2 16 16 USE lib_mpp ! MPP library 17 USE wrk_nemo ! work arrays18 17 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 19 18 … … 80 79 iiceform , & ! 1 = ice formed ; 0 = no ice formed 81 80 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 fraction84 REAL(wp), POINTER, DIMENSION(:) :: zhice_old ! previous ice thickness85 REAL(wp), POINTER, DIMENSION(:) :: zhice0 ! thickness of newly formed ice in leads86 REAL(wp), POINTER, DIMENSION(:) :: zfrlmin ! minimum fraction for leads87 REAL(wp), POINTER, DIMENSION(:) :: zdhicbot ! part of thickness of newly formed ice in leads which81 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 88 87 ! has been already used in transport for example 89 88 REAL(wp) :: & … … 102 101 !!--------------------------------------------------------------------- 103 102 104 CALL wrk_alloc( jpij, zqbgow, zfrl_old, zhice_old, zhice0, zfrlmin, zdhicbot )105 103 106 104 !-------------------------------------------------------------- … … 221 219 END DO 222 220 223 CALL wrk_dealloc( jpij, zqbgow, zfrl_old, zhice_old, zhice0, zfrlmin, zdhicbot )224 221 ! 225 222 END SUBROUTINE lim_thd_lac_2 -
branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/LIM_SRC_2/limthd_zdf_2.F90
r5407 r7910 21 21 USE in_out_manager 22 22 USE lib_mpp ! MPP library 23 USE wrk_nemo ! work arrays24 23 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 25 24 … … 73 72 !! 74 73 INTEGER :: ji ! dummy loop indices 75 REAL(wp), POINTER, DIMENSION(:) :: zqcmlts ! energy due to surface melting76 REAL(wp), POINTER, DIMENSION(:) :: zqcmltb ! energy due to bottom melting77 REAL(wp), POINTER, DIMENSION(:) :: ztsmlt ! snow/ice surface melting temperature78 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 snow80 REAL(wp), POINTER, DIMENSION(:) :: zkic ! effective conductivity of ice81 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 system83 REAL(wp), POINTER, DIMENSION(:) :: zfcsudt ! = zfcsu * dt84 REAL(wp), POINTER, DIMENSION(:) :: zi0 ! frac. of the net SW rad. which is not absorbed at the surface85 REAL(wp), POINTER, DIMENSION(:) :: z1mi0 ! fraction of the net SW radiation absorbed at the surface86 REAL(wp), POINTER, DIMENSION(:) :: zqmax ! maximum energy stored in brine pockets87 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 temperature89 REAL(wp), POINTER, DIMENSION(:) :: zidsn , z1midsn , zidsnic ! temporary variables90 REAL(wp), POINTER, DIMENSION(:) :: zfnet ! net heat flux at the top surface( incl. conductive heat flux)91 REAL(wp), POINTER, DIMENSION(:) :: zsprecip ! snow accumulation92 REAL(wp), POINTER, DIMENSION(:) :: zhsnw_old ! previous snow thickness93 REAL(wp), POINTER, DIMENSION(:) :: zdhictop ! change in ice thickness due to top surf ablation/accretion94 REAL(wp), POINTER, DIMENSION(:) :: zdhicbot ! change in ice thickness due to bottom surf abl/acc95 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 fraction98 REAL(wp), POINTER, DIMENSION(:) :: zfrld_1d ! new sea/ice fraction99 REAL(wp), POINTER, DIMENSION(:) :: zep ! internal temperature of the 2nd layer of the snow/ice system74 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 100 99 REAL(wp), DIMENSION(3) :: & 101 100 zplediag & ! principle diagonal, subdiag. and supdiag. of the … … 164 163 , zibmlt, ziqr, zihgnew, zind, ztmp ! temporary scalars 165 164 !!---------------------------------------------------------------------- 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 )169 165 170 166 !----------------------------------------------------------------------- … … 809 805 END DO 810 806 ! 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 )814 807 ! 815 808 END SUBROUTINE lim_thd_zdf_2 -
branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/LIM_SRC_2/limtrp_2.F90
r7646 r7910 27 27 USE lbclnk ! lateral boundary conditions -- MPP exchanges 28 28 USE lib_mpp ! MPP library 29 USE wrk_nemo ! work arrays30 29 # if defined key_agrif 31 30 USE agrif_lim2_interp ! nesting … … 76 75 REAL(wp) :: zvbord , zcfl , zusnit ! - - 77 76 REAL(wp) :: zrtt , ztsn , ztic1 , ztic2 ! - - 78 REAL(wp), POINTER, DIMENSION(:,:) :: zui_u , zvi_v , zsm ! 2D workspace79 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 ! - - 81 80 !--------------------------------------------------------------------- 82 81 83 CALL wrk_alloc( jpi, jpj, zui_u , zvi_v , zsm, zs0ice, zs0sn , zs0a, zs0c0 , zs0c1 , zs0c2 , zs0st )84 82 85 83 IF( kt == nit000 ) CALL lim_trp_init_2 ! Initialization (first time-step only) … … 281 279 # endif 282 280 ! 283 CALL wrk_dealloc( jpi, jpj, zui_u , zvi_v , zsm, zs0ice, zs0sn , zs0a, zs0c0 , zs0c1 , zs0c2 , zs0st )284 281 ! 285 282 END SUBROUTINE lim_trp_2 -
branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/LIM_SRC_2/limwri_2.F90
r6140 r7910 30 30 USE in_out_manager 31 31 USE lib_mpp ! MPP library 32 USE wrk_nemo ! work arrays33 32 USE iom 34 33 USE ioipsl … … 103 102 & zindh, zinda, zindb, ztmu 104 103 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 109 107 !--------------------! 110 108 IF( kt == nit000 ) THEN ! Initialisation ! … … 206 204 IF( ( nn_fsbc * niter ) >= nitend ) CALL histclo( nice ) 207 205 208 CALL wrk_dealloc( jpi, jpj, zfield )209 206 ! 210 207 END SUBROUTINE lim_wri_2
Note: See TracChangeset
for help on using the changeset viewer.