Changeset 2777 for trunk/NEMOGCM/NEMO/LIM_SRC_3/limtrp.F90
- Timestamp:
- 2011-06-07T11:55:02+02:00 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMOGCM/NEMO/LIM_SRC_3/limtrp.F90
r2715 r2777 32 32 PUBLIC lim_trp ! called by ice_step 33 33 34 REAL(wp), PUBLIC :: bound = 0._wp !: boundary condit. (0.0 no-slip, 1.0 free-slip)35 36 34 REAL(wp) :: epsi06 = 1.e-06_wp ! constant values 37 35 REAL(wp) :: epsi03 = 1.e-03_wp … … 40 38 REAL(wp) :: rzero = 0._wp 41 39 REAL(wp) :: rone = 1._wp 40 41 REAL(wp), SAVE, ALLOCATABLE, DIMENSION(:,:,:,:) :: zs0e 42 42 43 43 !! * Substitution … … 63 63 !!--------------------------------------------------------------------- 64 64 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released 65 USE wrk_nemo, ONLY: zs0at => wrk_2d_1 , zsm => wrk_2d_2 , zs0ow => wrk_2d_3 ! 2D workspace 66 USE wrk_nemo, ONLY: wrk_3d_1, wrk_3d_2, wrk_3d_3, wrk_3d_4, wrk_3d_5, wrk_3d_6 ! 3D workspace 67 USE wrk_nemo, ONLY: wrk_4d_1 ! 4D workspace 65 USE wrk_nemo, ONLY: zs0at => wrk_2d_4 , zsm => wrk_2d_5 , zs0ow => wrk_2d_6 ! 2D workspace 66 USE wrk_nemo, ONLY: wrk_3d_3, wrk_3d_4, wrk_3d_5, wrk_3d_6, wrk_3d_7, wrk_3d_8 ! 3D workspace 68 67 ! 69 68 INTEGER, INTENT(in) :: kt ! number of iteration … … 71 70 INTEGER :: ji, jj, jk, jl, layer ! dummy loop indices 72 71 INTEGER :: initad ! number of sub-timestep for the advection 72 INTEGER :: ierr ! error status 73 73 REAL(wp) :: zindb , zindsn , zindic ! local scalar 74 74 REAL(wp) :: zusvosn, zusvoic, zbigval ! - - … … 77 77 ! 78 78 REAL(wp), POINTER, DIMENSION(:,:,:) :: zs0ice, zs0sn, zs0a, zs0c0 , zs0sm , zs0oi ! 3D pointer 79 REAL(wp), POINTER, DIMENSION(:,:,:,:) :: zs0e ! 4D pointer80 79 !!--------------------------------------------------------------------- 81 80 82 IF( wrk_in_use(2, 1,2,3,4,5) ) THEN81 IF( wrk_in_use(2, 4,5,6) .OR. wrk_in_use(3, 3,4,5,6,7,8) ) THEN 83 82 CALL ctl_stop( 'lim_trp : requested workspace arrays unavailable' ) ; RETURN 84 83 END IF 85 84 86 zs0ice => wrk_3d_1(:,:,1:jpl) ; zs0a => wrk_3d_3 ; zs0sm => wrk_3d_3 87 zs0sn => wrk_3d_2(:,:,1:jpl) ; zs0c0 => wrk_3d_3 ; zs0oi => wrk_3d_3 88 zs0e => wrk_4d_1(:,:,1:jkmax,1:jpl) 89 85 zs0ice => wrk_3d_3(:,:,1:jpl) ; zs0a => wrk_3d_5(:,:,1:jpl) ; zs0sm => wrk_3d_7(:,:,1:jpl) 86 zs0sn => wrk_3d_4(:,:,1:jpl) ; zs0c0 => wrk_3d_6(:,:,1:jpl) ; zs0oi => wrk_3d_8(:,:,1:jpl) 87 IF( kt == nit000 ) THEN 88 ALLOCATE( zs0e(jpi,jpj,jkmax,jpl), Stat = ierr ) 89 IF( lk_mpp ) CALL mpp_sum ( ierr ) 90 IF( ierr /= 0 ) CALL ctl_stop( 'lim_trp : failed to allocate zs0e array' ) 91 END IF 90 92 91 93 IF( numit == nstart .AND. lwp ) THEN … … 463 465 ENDIF 464 466 ! 465 IF( wrk_not_released(2, 1,2,3,4,5) ) CALL ctl_stop('lim_trp_2 : failed to release workspace arrays') 467 IF( wrk_not_released(2, 4,5,6) .OR. wrk_not_released(3, 3,4,5,6,7,8) ) & 468 & CALL ctl_stop('lim_trp : failed to release workspace arrays') 466 469 ! 467 470 END SUBROUTINE lim_trp
Note: See TracChangeset
for help on using the changeset viewer.