- Timestamp:
- 2011-11-18T10:19:26+01:00 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_cice.F90
r3116 r3152 18 18 USE lib_mpp ! distributed memory computing library 19 19 USE lbclnk ! ocean lateral boundary conditions (or mpp link) 20 USE wrk_nemo_2 ! work arrays 20 21 USE daymod ! calendar 21 22 USE fldread ! read input fields … … 178 179 CALL lbc_lnk ( fr_iv , 'V', 1. ) 179 180 180 181 181 END SUBROUTINE cice_sbc_init 182 182 183 183 184 SUBROUTINE cice_sbc_in (kt, nsbc) 184 185 !!--------------------------------------------------------------------- 185 186 !! *** ROUTINE cice_sbc_in *** 186 187 !! ** Purpose: Set coupling fields and pass to CICE 187 !! 188 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released 189 USE wrk_nemo, ONLY: wrk_2d_1, wrk_3d_1 ! Workspace 190 !! 191 INTEGER, INTENT( in ) :: kt ! ocean time step 192 INTEGER, INTENT( in ) :: nsbc ! surface forcing type 193 !!--------------------------------------------------------------------- 194 INTEGER :: ji, jj, jpl ! dummy loop indices 195 196 REAL(wp), DIMENSION(:,:), POINTER :: ztmp 197 REAL(wp), DIMENSION(:,:,:), POINTER :: ztmpn 198 199 IF( wrk_in_use(2, 1) .OR. wrk_in_use(3, 1) ) THEN 200 CALL ctl_stop('cice_sbc_in: requested workspace arrays are unavailable') ; RETURN 201 ENDIF 202 ztmp => wrk_2d_1(:,:) 203 ztmpn => wrk_3d_1(:,:,1:ncat) 188 !!--------------------------------------------------------------------- 189 INTEGER, INTENT(in ) :: kt ! ocean time step 190 INTEGER, INTENT(in ) :: nsbc ! surface forcing type 191 192 INTEGER :: ji, jj, jpl ! dummy loop indices 193 REAL(wp), DIMENSION(:,:), POINTER :: ztmp 194 REAL(wp), DIMENSION(:,:,:), POINTER :: ztmpn 195 !!--------------------------------------------------------------------- 196 197 CALL wrk_alloc( jpi,jpj, ztmp ) 198 CALL wrk_alloc( jpi,jpj,ncat, ztmpn ) 204 199 205 200 IF( kt == nit000 ) THEN … … 368 363 CALL nemo2cice(ztmp,vocn,'F', -1. ) 369 364 370 IF( wrk_not_released(2, 1) .OR. wrk_not_released(3, 1) ) CALL ctl_stop('cice_sbc_in: failed to release workspace arrays') 365 CALL wrk_dealloc( jpi,jpj, ztmp ) 366 CALL wrk_dealloc( jpi,jpj,ncat, ztmpn ) 371 367 ! 372 368 END SUBROUTINE cice_sbc_in 373 369 370 374 371 SUBROUTINE cice_sbc_out (kt,nsbc) 375 372 !!--------------------------------------------------------------------- 376 373 !! *** ROUTINE cice_sbc_out *** 377 374 !! ** Purpose: Get fields from CICE and set surface fields for NEMO 378 !! 379 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released 380 USE wrk_nemo, ONLY: wrk_2d_1 ! 2D workspace 381 !! 375 !!--------------------------------------------------------------------- 382 376 INTEGER, INTENT( in ) :: kt ! ocean time step 383 377 INTEGER, INTENT( in ) :: nsbc ! surface forcing type 384 !!--------------------------------------------------------------------- 385 386 INTEGER :: ji, jj, jpl ! dummy loop indices 387 388 REAL(wp), DIMENSION(:,:), POINTER :: ztmp 389 390 IF( kt == nit000 ) THEN 378 379 INTEGER :: ji, jj, jpl ! dummy loop indices 380 REAL(wp), DIMENSION(:,:), POINTER :: ztmp 381 !!--------------------------------------------------------------------- 382 383 CALL wrk_alloc( jpi,jpj, ztmp ) 384 385 IF( kt == nit000 ) THEN 391 386 IF(lwp) WRITE(numout,*)'cice_sbc_out' 392 ENDIF 393 394 IF( wrk_in_use(2, 1) ) THEN 395 CALL ctl_stop('cice_sbc_out: requested workspace arrays are unavailable') ; RETURN 396 ENDIF 397 ztmp => wrk_2d_1(:,:) 398 387 ENDIF 388 399 389 ! x comp of ocean-ice stress 400 390 CALL cice2nemo(strocnx,ztmp,'F', -1. ) … … 532 522 ! Release work space 533 523 534 IF( wrk_not_released(2, 1) ) CALL ctl_stop('cice_sbc_out: failed to release workspace arrays')524 CALL wrk_dealloc( jpi,jpj, ztmp ) 535 525 ! 536 526 END SUBROUTINE cice_sbc_out 527 537 528 538 529 #if defined key_oasis3 || defined key_oasis4
Note: See TracChangeset
for help on using the changeset viewer.