Changeset 2777
- Timestamp:
- 2011-06-07T11:55:02+02:00 (13 years ago)
- Location:
- trunk/NEMOGCM/NEMO
- Files:
-
- 20 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMOGCM/NEMO/LIM_SRC_3/dom_ice.F90
r2715 r2777 36 36 CONTAINS 37 37 38 FUNCTION dom_ice_alloc 38 FUNCTION dom_ice_alloc() 39 39 !!------------------------------------------------------------------- 40 40 !! *** Routine dom_ice_alloc *** -
trunk/NEMOGCM/NEMO/LIM_SRC_3/ice.F90
r2715 r2777 162 162 INTEGER , PUBLIC :: nitrun !: number of iteration 163 163 INTEGER , PUBLIC :: numit !: iteration number 164 REAL(wp), PUBLIC :: tpstot !: time of the run in seconds165 164 REAL(wp), PUBLIC :: rdt_ice !: ice time step 166 165 -
trunk/NEMOGCM/NEMO/LIM_SRC_3/limcons.F90
r2715 r2777 77 77 !!--------------------------------------------------------------------- 78 78 ! 79 pout(:,:) = 0._wp 79 80 DO jl = 1, ksum 80 pout(:,:) = pin(:,:,1,jl)81 81 DO jk = 2, klay 82 82 pout(:,:) = pout(:,:) + pin(:,:,jk,jl) -
trunk/NEMOGCM/NEMO/LIM_SRC_3/limistate.F90
r2715 r2777 73 73 !-------------------------------------------------------------------- 74 74 75 IF( wrk_in_use( 1, 1,2) ) THEN75 IF( wrk_in_use(2, 1) .OR. wrk_in_use(1, 1,2,3,4) ) THEN 76 76 CALL ctl_stop( 'lim_istate: requested workspace arrays unavailable' ) ; RETURN 77 77 ENDIF … … 517 517 CALL lbc_lnk( fsbbq , 'T', 1. ) 518 518 ! 519 IF( wrk_not_released(1, 1,2) ) CALL ctl_stop('lim_istate : failed to release workspace arrays') 519 IF( wrk_not_released(2, 1) .OR. wrk_not_released(1, 1,2,3,4) ) & 520 & CALL ctl_stop('lim_istate : failed to release workspace arrays') 520 521 ! 521 522 END SUBROUTINE lim_istate -
trunk/NEMOGCM/NEMO/LIM_SRC_3/limitd_me.F90
r2715 r2777 508 508 !! ** Inputs / Ouputs : kstrngth (what kind of ice strength we are using) 509 509 !!---------------------------------------------------------------------- 510 USE wrk_nemo, ONLY: zworka => wrk_2d_ 1! 2D workspace510 USE wrk_nemo, ONLY: zworka => wrk_2d_3 ! 2D workspace 511 511 ! 512 512 INTEGER, INTENT(in) :: kstrngth ! = 1 for Rothrock formulation, 0 for Hibler (1979) … … 519 519 !!---------------------------------------------------------------------- 520 520 521 IF( wrk_in_use(2, 1) ) THEN521 IF( wrk_in_use(2, 3) ) THEN 522 522 CALL ctl_stop('lim_itd_me_icestrength : requested workspace array unavailable') ; RETURN 523 523 ENDIF … … 675 675 CALL lbc_lnk( strength, 'T', 1. ) ! Boundary conditions 676 676 677 IF( wrk_not_released(2, 1) ) CALL ctl_stop('lim_itd_me_icestrength: failed to release workspace array')677 IF( wrk_not_released(2, 3) ) CALL ctl_stop('lim_itd_me_icestrength: failed to release workspace array') 678 678 ! 679 679 END SUBROUTINE lim_itd_me_icestrength … … 894 894 895 895 ! Normalization factor : aksum, ensures mass conservation 896 aksum(:,:) = athorn( ji,jj,0)896 aksum(:,:) = athorn(:,:,0) 897 897 DO jl = 1, jpl 898 898 aksum(:,:) = aksum(:,:) + aridge(:,:,jl) * ( 1._wp - 1._wp / krdg(:,:,jl) ) & -
trunk/NEMOGCM/NEMO/LIM_SRC_3/limthd_dh.F90
r2715 r2777 699 699 END DO !ji 700 700 ! 701 IF( wrk_not_released(1, 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21 ) ) &701 IF( wrk_not_released(1, 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22) ) & 702 702 CALL ctl_stop('lim_thd_dh : failed to release workspace arrays') 703 703 ! -
trunk/NEMOGCM/NEMO/LIM_SRC_3/limthd_dif.F90
r2715 r2777 330 330 IF( thcon_i_swi == 0 ) THEN ! Untersteiner (1964) formula 331 331 DO ji = kideb , kiut 332 ztcond_i(ji,0) = rcdic + zbeta*s_i_b(ji,1) / & 333 MIN(-zeps,t_i_b(ji,1)-rtt) 332 ztcond_i(ji,0) = rcdic + zbeta*s_i_b(ji,1) / MIN(-zeps,t_i_b(ji,1)-rtt) 334 333 ztcond_i(ji,0) = MAX(ztcond_i(ji,0),zkimin) 335 334 END DO 336 335 DO layer = 1, nlay_i-1 337 336 DO ji = kideb , kiut 338 ztcond_i(ji,layer) = rcdic + zbeta*( s_i_b(ji,layer) & 339 + s_i_b(ji,layer+1) ) / MIN(-2.0*zeps, & 340 t_i_b(ji,layer)+t_i_b(ji,layer+1)-2.0*rtt) 341 ztcond_i(ji,layer) = MAX(ztcond_i(ji,layer),zkimin) 342 END DO 343 END DO 344 ENDIF 345 346 IF ( thcon_i_swi .EQ. 1 ) THEN ! Pringle (0.011/2=0.0055) 347 DO layer = 1, nlay_i-1 348 DO ji = kideb , kiut 349 ztcond_i(ji,layer) = rcdic + 0.09*( s_i_b(ji,layer) & 350 + s_i_b(ji,layer+1) ) / MIN(-2.0*zeps, & 351 t_i_b(ji,layer)+t_i_b(ji,layer+1)-2.0*rtt) - & 352 0.0055* ( t_i_b(ji,layer) + t_i_b(ji,layer+1) - 2.0*rtt ) 337 ztcond_i(ji,layer) = rcdic + zbeta*( s_i_b(ji,layer) + s_i_b(ji,layer+1) ) / & 338 MIN(-2.0_wp * zeps, t_i_b(ji,layer)+t_i_b(ji,layer+1) - 2.0_wp * rtt) 353 339 ztcond_i(ji,layer) = MAX(ztcond_i(ji,layer),zkimin) 354 340 END DO 355 END DO356 ENDIF357 358 IF ( thcon_i_swi .EQ. 0 ) THEN ! Untersteiner359 DO ji = kideb , kiut360 ztcond_i(ji,nlay_i) = rcdic + zbeta*s_i_b(ji,nlay_i) / &361 MIN(-zeps,t_bo_b(ji)-rtt)362 ztcond_i(ji,nlay_i) = MAX(ztcond_i(ji,nlay_i),zkimin)363 341 END DO 364 342 ENDIF … … 373 351 DO ji = kideb , kiut 374 352 ztcond_i(ji,layer) = rcdic + 0.090_wp * ( s_i_b(ji,layer) + s_i_b(ji,layer+1) ) & 375 & / MIN(-2.0 *zeps, t_i_b(ji,layer)+t_i_b(ji,layer+1)-2.0*rtt) &353 & / MIN(-2.0_wp * zeps, t_i_b(ji,layer)+t_i_b(ji,layer+1) - 2.0_wp * rtt) & 376 354 & - 0.0055_wp* ( t_i_b(ji,layer) + t_i_b(ji,layer+1) - 2.0*rtt ) 377 355 ztcond_i(ji,layer) = MAX( ztcond_i(ji,layer), zkimin ) -
trunk/NEMOGCM/NEMO/LIM_SRC_3/limthd_ent.F90
r2715 r2777 122 122 123 123 IF( wrk_in_use(1, 1,2,3,4,5,6,7,8) ) THEN 124 CALL ctl_stop('lim_thd_ dh: requestead workspace arrays unavailable') ; RETURN124 CALL ctl_stop('lim_thd_ent : requestead workspace arrays unavailable') ; RETURN 125 125 END IF 126 126 … … 477 477 ! Cotes of old ice layers 478 478 !------------------------- 479 zm0(:,0) = 0. -wp479 zm0(:,0) = 0._wp 480 480 481 481 DO jk = 1, maxnbot0 -
trunk/NEMOGCM/NEMO/LIM_SRC_3/limthd_lac.F90
r2715 r2777 28 28 USE wrk_nemo ! workspace manager 29 29 USE in_out_manager ! I/O manager 30 USE lib_mpp ! MPP library30 USE lib_mpp ! MPP library 31 31 32 32 IMPLICIT NONE … … 111 111 !!-----------------------------------------------------------------------! 112 112 113 IF( wrk_in_use(1, 1,2,3,4,5,6,7,8,9,10,11,12,13,14 ) .OR. &113 IF( wrk_in_use(1, 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15) .OR. & 114 114 & wrk_in_use(2, 1,2,3,4,5,6,7,8) ) THEN 115 CALL ctl_stop('lim_thd_ dh: requestead workspace arrays unavailable.') ; RETURN115 CALL ctl_stop('lim_thd_lac : requestead workspace arrays unavailable.') ; RETURN 116 116 END IF 117 117 ! Set-up pointers to sub-arrays of workspace arrays … … 130 130 zqbgow => wrk_1d_13(1:jpij) ! heat budget of the open water (negative) 131 131 zdhex => wrk_1d_14(1:jpij) ! excessively thick accreted sea ice (hlead-hice) 132 zswinew => wrk_1d_15(1:jpij) ! switch for new ice or not 132 133 133 134 … … 690 691 ENDIF 691 692 ! 692 IF( wrk_not_released(1, 1,2,3,4,5,6,7,8,9,10,11,12,13,14 ) .OR. &693 IF( wrk_not_released(1, 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15) .OR. & 693 694 wrk_not_released(2, 1,2,3,4,5,6,7,8) ) & 694 695 CALL ctl_stop( 'lim_thd_lac : failed to release workspace arrays' ) -
trunk/NEMOGCM/NEMO/LIM_SRC_3/limthd_sal.F90
r2715 r2777 21 21 USE thd_ice ! LIM thermodynamics 22 22 USE limvar ! LIM variables 23 USE wrk_nemo ! workspace manager24 23 USE in_out_manager ! I/O manager 25 24 USE lib_mpp ! MPP library … … 50 49 !! -> num_sal = 4 -> S = S(h) [Cox and Weeks 74] 51 50 !!--------------------------------------------------------------------- 51 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released 52 USE wrk_nemo, ONLY: wrk_1d_1, wrk_1d_2, wrk_1d_3 53 ! 52 54 INTEGER, INTENT(in) :: kideb, kiut ! thickness category index 53 55 ! … … 61 63 62 64 IF( wrk_in_use(1, 1,2,3) ) THEN 63 CALL ctl_stop('lim_thd_ dh: requestead workspace arrays unavailable.') ; RETURN65 CALL ctl_stop('lim_thd_sal : requestead workspace arrays unavailable.') ; RETURN 64 66 END IF 65 67 ! Set-up pointers to sub-arrays of workspace arrays … … 238 240 ENDIF 239 241 ! 240 IF( wrk_not_released(1, 1,2,3) ) CALL ctl_stop( 'lim_thd_ lac: failed to release workspace arrays' )242 IF( wrk_not_released(1, 1,2,3) ) CALL ctl_stop( 'lim_thd_sal : failed to release workspace arrays' ) 241 243 ! 242 244 END SUBROUTINE lim_thd_sal -
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 -
trunk/NEMOGCM/NEMO/LIM_SRC_3/limvar.F90
r2715 r2777 50 50 USE dom_ice ! LIM domain 51 51 USE thd_ice ! LIM thermodynamics 52 USE wrk_nemo ! workspace manager53 52 USE in_out_manager ! I/O manager 54 53 USE lib_mpp ! MPP library … … 298 297 !! ** References : Vancoppenolle et al., 2007 (in preparation) 299 298 !!------------------------------------------------------------------ 299 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released 300 USE wrk_nemo, ONLY: wrk_3d_3, wrk_3d_4 300 301 INTEGER :: ji, jj, jk, jl ! dummy loop index 301 302 REAL(wp) :: dummy_fac0, dummy_fac1, dummy_fac, zsal ! local scalar … … 305 306 !!------------------------------------------------------------------ 306 307 307 IF( wrk_in_use( 2, 1,2) ) THEN308 IF( wrk_in_use( 3, 3,4 ) ) THEN 308 309 CALL ctl_stop( 'lim_var_salprof: requested workspace arrays unavailable' ) ; RETURN 309 310 END IF 310 311 311 z_slope_s => wrk_3d_ 1(:,:,1:jpl) ! slope of the salinity profile312 zalpha => wrk_3d_ 2(:,:,1:jpl) ! weight factor for s between s_i_0 and s_i_1312 z_slope_s => wrk_3d_3(:,:,1:jpl) ! slope of the salinity profile 313 zalpha => wrk_3d_4(:,:,1:jpl) ! weight factor for s between s_i_0 and s_i_1 313 314 314 315 !--------------------------------------- … … 389 390 ENDIF ! num_sal 390 391 ! 391 IF( wrk_not_released( 2, 1,2) ) CALL ctl_stop('lim_var_salprof: failed to release workspace arrays.')392 IF( wrk_not_released(3, 3,4) ) CALL ctl_stop('lim_var_salprof: failed to release workspace arrays.') 392 393 ! 393 394 END SUBROUTINE lim_var_salprof … … 432 433 !! Works with 1d vectors and is used by thermodynamic modules 433 434 !!------------------------------------------------------------------- 435 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released 436 USE wrk_nemo, ONLY: wrk_1d_4 434 437 INTEGER, INTENT(in) :: kideb, kiut ! thickness category index 435 438 ! … … 442 445 !!--------------------------------------------------------------------- 443 446 444 IF( wrk_in_use(1, 1) ) THEN447 IF( wrk_in_use(1, 4) ) THEN 445 448 CALL ctl_stop('lim_var_salprof1d : requestead workspace arrays unavailable.') ; RETURN 446 449 END IF 447 450 ! Set-up pointers to sub-arrays of workspace arrays 448 z_slope_s => wrk_1d_ 1(1:jpij)451 z_slope_s => wrk_1d_4 (1:jpij) 449 452 450 453 !--------------------------------------- … … 511 514 ENDIF 512 515 ! 513 IF( wrk_not_released(1, 1) ) CALL ctl_stop( 'lim_var_salprof1d : failed to release workspace arrays' )516 IF( wrk_not_released(1, 4) ) CALL ctl_stop( 'lim_var_salprof1d : failed to release workspace arrays' ) 514 517 ! 515 518 END SUBROUTINE lim_var_salprof1d -
trunk/NEMOGCM/NEMO/LIM_SRC_3/limwri.F90
r2715 r2777 49 49 REAL(wp) :: zzero = 0._wp 50 50 REAL(wp) :: zone = 1._wp 51 52 REAL(wp), SAVE, ALLOCATABLE, DIMENSION(:,:,:) :: zcmo, zcmoa ! additional fields 51 53 52 54 !!---------------------------------------------------------------------- … … 73 75 USE wrk_nemo, ONLY: wrk_not_released, wrk_in_use 74 76 USE wrk_nemo, ONLY: zfield => wrk_2d_1 ! 2D workspace 75 USE wrk_nemo, ONLY: wrk_3d_ 1, wrk_3D_2, wrk_3d_3! 3D workspace77 USE wrk_nemo, ONLY: wrk_3d_3, wrk_3d_4, wrk_3d_5 ! 3D workspace 76 78 ! 77 79 INTEGER, INTENT(in) :: kindic ! if kindic < 0 there has been an error somewhere … … 81 83 REAL(wp),DIMENSION(1) :: zdept 82 84 REAL(wp) :: zsto, zjulian, zout, zindh, zinda, zindb 83 REAL(wp), POINTER, DIMENSION(:,:,:) :: zcmo, zcmoa ! additional fields84 85 REAL(wp), POINTER, DIMENSION(:,:,:) :: zmaskitd, zoi, zei 85 86 … … 92 93 !!------------------------------------------------------------------- 93 94 95 IF( wrk_in_use(2, 1) .OR. wrk_in_use(3, 3,4,5) ) THEN 96 CALL ctl_stop( 'lim_wri : requested workspace arrays unavailable' ) ; RETURN 97 ENDIF 98 94 99 ipl = jpl 95 100 96 zcmo => wrk_3d_1(:,:,1:jpnoumax) 97 zcmoa => wrk_3d_2(:,:,1:jpnoumax) 98 zmaskitd => wrk_3d_2(:,:,1:jpl) 99 zoi => wrk_3d_2(:,:,1:jpl) 100 zei => wrk_3d_2(:,:,1:jpl) 101 zmaskitd => wrk_3d_3(:,:,1:jpl) 102 zoi => wrk_3d_4(:,:,1:jpl) 103 zei => wrk_3d_5(:,:,1:jpl) 101 104 102 105 103 106 IF( numit == nstart ) THEN 104 107 105 ALLOCATE( ndex51(jpij) , ndexitd(jpij*jpl) , STAT=ierr ) 108 ALLOCATE( ndex51(jpij), ndexitd(jpij*jpl), zcmo(jpi,jpj,jpnoumax), zcmoa(jpi,jpj,jpnoumax), STAT=ierr ) 109 IF( lk_mpp ) CALL mpp_sum ( ierr ) 106 110 IF( ierr /= 0 ) THEN 107 111 CALL ctl_stop( 'lim_wri : unable to allocate standard arrays' ) ; RETURN … … 350 354 ENDIF 351 355 356 IF( wrk_not_released(2, 1) .OR. wrk_not_released(3, 3,4,5) ) & 357 CALL ctl_stop( 'lim_wri: failed to release workspace arrays' ) 358 352 359 END SUBROUTINE lim_wri 353 360 #endif -
trunk/NEMOGCM/NEMO/OPA_SRC/DOM/istate.F90
r2715 r2777 459 459 460 460 IF(wrk_in_use(3, 1) ) THEN 461 CALL ctl_stop('ista ge_uvg: requested workspace array unavailable') ; RETURN461 CALL ctl_stop('istate_uvg: requested workspace array unavailable') ; RETURN 462 462 ENDIF 463 463 … … 558 558 ! 559 559 IF( wrk_not_released(3, 1) ) THEN 560 CALL ctl_stop('ista ge_uvg: failed to release workspace array')560 CALL ctl_stop('istate_uvg: failed to release workspace array') 561 561 ENDIF 562 562 ! -
trunk/NEMOGCM/NEMO/OPA_SRC/DYN/dynkeg.F90
r2715 r2777 63 63 64 64 IF( wrk_in_use(3,1) ) THEN 65 CALL ctl_stop('dyn_ke y: requested workspace array is unavailable') ; RETURN65 CALL ctl_stop('dyn_keg: requested workspace array is unavailable') ; RETURN 66 66 ENDIF 67 67 … … 136 136 & tab3d_2=va, clinfo2= ' Va: ', mask2=vmask, clinfo3='dyn' ) 137 137 ! 138 IF( wrk_not_released(3, 1) ) CALL ctl_stop('dyn_ke y: failed to release workspace array')138 IF( wrk_not_released(3, 1) ) CALL ctl_stop('dyn_keg: failed to release workspace array') 139 139 ! 140 140 END SUBROUTINE dyn_keg -
trunk/NEMOGCM/NEMO/OPA_SRC/SBC/fldread.F90
r2715 r2777 822 822 ! 823 823 IF( wrk_in_use(2, 1) .OR. iwrk_in_use(2,1) ) THEN 824 CALL ctl_stop('fld_weight s: requested workspace arrays are unavailable') ; RETURN824 CALL ctl_stop('fld_weight: requested workspace arrays are unavailable') ; RETURN 825 825 ENDIF 826 826 ! 827 827 IF( nxt_wgt > tot_wgts ) THEN 828 CALL ctl_stop("fld_weight s: weights array size exceeded, increase tot_wgts")828 CALL ctl_stop("fld_weight: weights array size exceeded, increase tot_wgts") 829 829 ENDIF 830 830 ! … … 936 936 937 937 IF( wrk_not_released(2, 1) .OR. & 938 iwrk_not_released(2, 1) ) CALL ctl_stop('fld_weight s: failed to release workspace arrays')938 iwrk_not_released(2, 1) ) CALL ctl_stop('fld_weight: failed to release workspace arrays') 939 939 ! 940 940 END SUBROUTINE fld_weight -
trunk/NEMOGCM/NEMO/OPA_SRC/SBC/sbc_ice.F90
r2715 r2777 57 57 58 58 # if defined key_lim3 59 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: tatm_ice!: air temperature59 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: tatm_ice !: air temperature 60 60 # endif 61 61 … … 77 77 & utau_ice(jpi,jpj) , vtau_ice(jpi,jpj) , & 78 78 & fr1_i0 (jpi,jpj) , fr2_i0 (jpi,jpj) , & 79 # if defined key_lim3 80 & emp_ice(jpi,jpj) , tatm_ice(jpi,jpj) , STAT= sbc_ice_alloc ) 81 # else 79 82 & emp_ice(jpi,jpj) , STAT= sbc_ice_alloc ) 83 # endif 80 84 ! 81 85 IF( lk_mpp ) CALL mpp_sum ( sbc_ice_alloc ) -
trunk/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_clio.F90
r2715 r2777 177 177 CALL fld_read( kt, nn_fsbc, sf ) ! input fields provided at the current time-step 178 178 ! 179 #if defined key_lim3180 tatm_ice(:,:) = sf(jp_tair)%fnow(:,:,1) !RB ugly patch181 #endif182 ! ! surface ocean fluxes computed with CLIO bulk formulea183 179 IF( MOD( kt - 1, nn_fsbc ) == 0 ) CALL blk_oce_clio( sf, sst_m ) 184 180 ! … … 467 463 zpatm = 101000. ! atmospheric pressure (assumed constant here) 468 464 465 #if defined key_lim3 466 tatm_ice(:,:) = sf(jp_tair)%fnow(:,:,1) ! LIM3: make Tair available in sea-ice. WARNING allocated after call to ice_init 467 #endif 468 ! ! surface ocean fluxes computed with CLIO bulk formulea 469 469 !------------------------------------! 470 470 ! momentum fluxes (utau, vtau ) ! -
trunk/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_core.F90
r2748 r2777 180 180 CALL fld_read( kt, nn_fsbc, sf ) ! input fields provided at the current time-step 181 181 182 #if defined key_lim3183 tatm_ice(:,:) = sf(jp_tair)%fnow(:,:,1) ! LIM3: make Tair available in sea-ice184 #endif185 182 ! ! surface ocean fluxes computed with CLIO bulk formulea 186 183 IF( MOD( kt - 1, nn_fsbc ) == 0 ) CALL blk_oce_core( sf, sst_m, ssu_m, ssv_m ) … … 472 469 !!gm end 473 470 471 #if defined key_lim3 472 tatm_ice(:,:) = sf(jp_tair)%fnow(:,:,1) ! LIM3: make Tair available in sea-ice. WARNING allocated after call to ice_init 473 #endif 474 474 ! ----------------------------------------------------------------------------- ! 475 475 ! Wind components and module relative to the moving ocean ( U10m - U_ice ) ! … … 882 882 & 30,31,32,33,34 ) .OR. & 883 883 iwrk_not_released(2, 1) ) & 884 CALL ctl_stop('TURB_CORE_ 1Z: failed to release workspace arrays')884 CALL ctl_stop('TURB_CORE_2Z: failed to release workspace arrays') 885 885 ! 886 886 END SUBROUTINE TURB_CORE_2Z -
trunk/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_lim.F90
r2715 r2777 90 90 !!--------------------------------------------------------------------- 91 91 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released 92 USE wrk_nemo, ONLY: zalb_ice_os => wrk_3d_1 ! albedo of the ice under overcast sky 93 USE wrk_nemo, ONLY: zalb_ice_cs => wrk_3d_2 ! albedo of ice under clear sky 92 USE wrk_nemo, ONLY: wrk_3d_1, wrk_3d_2 ! for albedo of ice under overcast/clear sky 94 93 !! 95 94 INTEGER, INTENT(in) :: kt ! ocean time step … … 98 97 INTEGER :: jl ! dummy loop index 99 98 REAL(wp) :: zcoef ! local scalar 99 REAL(wp), POINTER, DIMENSION(:,:,:) :: zalb_ice_os, zalb_ice_cs ! albedo of the ice under overcast/clear sky 100 100 !!---------------------------------------------------------------------- 101 101 … … 103 103 CALL ctl_stop( 'sbc_ice_lim: requested workspace arrays are unavailable' ) ; RETURN 104 104 ENDIF 105 zalb_ice_os => wrk_3d_1(:,:,1:jpl) ; zalb_ice_cs => wrk_3d_2(:,:,1:jpl) 105 106 106 107 IF( kt == nit000 ) THEN
Note: See TracChangeset
for help on using the changeset viewer.