- Timestamp:
- 2011-02-18T13:49:27+01:00 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/OPA_SRC/DYN/dynldf_bilapg.F90
r2528 r2590 28 28 29 29 !! * Routine accessibility 30 PUBLIC dyn_ldf_bilapg ! called by step.F90 30 PUBLIC dyn_ldf_bilapg ! called by step.F90 31 PUBLIC dyn_ldf_bilapg_alloc ! called by nemogcm.F90 32 33 ! These are just workspace arrays but since they're (jpi,jpk) it's not 34 ! worth putting them in the wrk_nemo module. 35 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: zfuw, zfvw, zdiu, zdiv 36 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: zdju, zdj1u, zdjv, zdj1v 31 37 32 38 !! * Substitutions … … 40 46 41 47 CONTAINS 48 49 FUNCTION dyn_ldf_bilapg_alloc() 50 !!---------------------------------------------------------------------- 51 !! *** ROUTINE dyn_ldf_bilapg_alloc *** 52 !!---------------------------------------------------------------------- 53 INTEGER :: dyn_ldf_bilapg_alloc 54 55 ALLOCATE(zfuw(jpi,jpk), zfvw(jpi,jpk), zdiu(jpi,jpk), zdiv(jpi,jpk), & 56 zdju(jpi,jpk), zdj1u(jpi,jpk), zdjv(jpi,jpk), zdj1v(jpi,jpk),& 57 Stat = dyn_ldf_bilapg_alloc) 58 59 IF(dyn_ldf_bilapg_alloc /= 0)THEN 60 CALL ctl_warn('dyn_ldf_bilapg_alloc: failed to allocate arrays') 61 END IF 62 63 END FUNCTION dyn_ldf_bilapg_alloc 64 42 65 43 66 SUBROUTINE dyn_ldf_bilapg( kt ) … … 76 99 USE oce, ONLY : zwk3 => ta, & ! use ta as 3D workspace 77 100 zwk4 => sa ! use sa as 3D workspace 78 101 USE wrk_nemo, ONLY: wrk_use, wrk_release 102 ! work array used for rotated biharmonic operator on 103 ! tracers and/or momentum 104 USE wrk_nemo, ONLY: zwk1 => wrk_3d_1, & 105 zwk2 => wrk_3d_2 79 106 !! * Arguments 80 107 INTEGER, INTENT( in ) :: kt ! ocean time-step index … … 82 109 !! * Local declarations 83 110 INTEGER :: ji, jj, jk ! dummy loop indices 84 REAL(wp), DIMENSION(jpi,jpj,jpk) :: & 85 zwk1, zwk2 ! work array used for rotated biharmonic 86 ! ! operator on tracers and/or momentum 87 !!---------------------------------------------------------------------- 111 !!---------------------------------------------------------------------- 112 113 IF(.NOT. wrk_use(3, 1,2))THEN 114 CALL ctl_stop('dyn_ldf_bilapg: requested workspace arrays unavailable.') 115 RETURN 116 END IF 88 117 89 118 IF( kt == nit000 ) THEN … … 130 159 END DO ! End of slab 131 160 ! ! =============== 132 161 IF(.NOT. wrk_release(3, 1,2))THEN 162 CALL ctl_stop('dyn_ldf_bilapg: failed to release workspace arrays.') 163 END IF 164 ! 133 165 END SUBROUTINE dyn_ldf_bilapg 134 166 … … 179 211 !! 8.5 ! 02-08 (G. Madec) F90: Free form and module 180 212 !!---------------------------------------------------------------------- 213 USE wrk_nemo, ONLY: wrk_use, wrk_release 214 USE wrk_nemo, ONLY: ziut => wrk_2d_1, zjuf => wrk_2d_2, zjvt => wrk_2d_3 215 USE wrk_nemo, ONLY: zivf => wrk_2d_4, zdku => wrk_2d_5, zdk1u => wrk_2d_6 216 USE wrk_nemo, ONLY: zdkv => wrk_2d_7, zdk1v => wrk_2d_8 217 !! 181 218 !! * Arguments 182 219 REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT( in ) :: & … … 199 236 zbur, zbvr, zmkt, zmkf, zuav, zvav, & 200 237 zuwslpi, zuwslpj, zvwslpi, zvwslpj 201 REAL(wp), DIMENSION(jpi,jpj) :: & 202 ziut, zjuf , zjvt, zivf, & ! workspace 203 zdku, zdk1u, zdkv, zdk1v 204 REAL(wp), DIMENSION(jpi,jpk) :: & 205 zfuw, zfvw, zdiu, zdiv, & ! workspace 206 zdju, zdj1u, zdjv, zdj1v 207 !!---------------------------------------------------------------------- 208 238 !!---------------------------------------------------------------------- 239 240 IF(.NOT. wrk_use(2, 1,2,3,4,5,6,7,8))THEN 241 CALL ctl_stop('dyn:ldfguv : requested workspace arrays unavailable.') 242 RETURN 243 END IF 209 244 ! ! ********** ! ! =============== 210 245 DO jk = 1, jpkm1 ! First step ! ! Horizontal slab … … 461 496 END DO ! End of slab 462 497 ! ! =============== 498 499 IF(.NOT. wrk_release(2, 1,2,3,4,5,6,7,8))THEN 500 CALL ctl_stop('dyn:ldfguv : failed to release workspace arrays.') 501 END IF 502 ! 463 503 END SUBROUTINE ldfguv 464 504 … … 469 509 CONTAINS 470 510 SUBROUTINE dyn_ldf_bilapg( kt ) ! Dummy routine 511 INTEGER, INTENT(in) :: kt 471 512 WRITE(*,*) 'dyn_ldf_bilapg: You should not have seen this print! error?', kt 472 513 END SUBROUTINE dyn_ldf_bilapg
Note: See TracChangeset
for help on using the changeset viewer.