- Timestamp:
- 2017-07-13T11:29:29+02:00 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/limthd.F90
r8326 r8327 83 83 ! 84 84 INTEGER :: ji, jj, jk, jl ! dummy loop indices 85 INTEGER :: n bpb! nb of icy pts for vertical thermo calculations85 INTEGER :: nidx ! nb of icy pts for vertical thermo calculations 86 86 REAL(wp) :: zfric_u, zqld, zqfr, zqfr_neg 87 87 REAL(wp) :: zvi_b, zsmv_b, zei_b, zfs_b, zfw_b, zft_b … … 213 213 214 214 ! select ice covered grid points 215 n bpb= 0216 DO jj = 1, jpj217 DO ji = 1, jpi215 nidx = 0 ; idxice(:) = 0 216 DO jj = 2, jpjm1 217 DO ji = 2, jpim1 218 218 IF ( a_i(ji,jj,jl) > epsi10 ) THEN 219 n bpb = nbpb+ 1220 npb(nbpb) = (jj - 1) * jpi + ji219 nidx = nidx + 1 220 idxice(nidx) = (jj - 1) * jpi + ji 221 221 ENDIF 222 222 END DO … … 234 234 ENDIF 235 235 236 IF( lk_mpp ) CALL mpp_ini_ice( n bpb, numout )237 238 IF( n bpb> 0 ) THEN ! If there is no ice, do nothing.236 IF( lk_mpp ) CALL mpp_ini_ice( nidx , numout ) 237 238 IF( nidx > 0 ) THEN ! If there is no ice, do nothing. 239 239 ! 240 240 s_i_new (:) = 0._wp ; dh_s_tot (:) = 0._wp ! --- some init --- ! … … 242 242 dh_snowice(:) = 0._wp ; dh_i_sub (:) = 0._wp 243 243 244 CALL lim_thd_1d2d( n bpb, jl, 1 ) ! --- Move to 1D arrays --- !244 CALL lim_thd_1d2d( nidx, jl, 1 ) ! --- Move to 1D arrays --- ! 245 245 ! 246 246 DO jk = 1, nlay_i ! --- Change units from J/m2 to J/m3 --- ! … … 251 251 ENDDO 252 252 ! 253 IF( ln_limdH ) CALL lim_thd_dif( 1, n bpb) ! --- Ice/Snow Temperature profile --- !254 ! 255 IF( ln_limdH ) CALL lim_thd_dh( 1, n bpb) ! --- Ice/Snow thickness --- !256 ! 257 IF( ln_limdH ) CALL lim_thd_ent( 1, n bpb, e_i_1d(1:nbpb,:) ) ! --- Ice enthalpy remapping --- !258 ! 259 CALL lim_thd_sal( 1, n bpb) ! --- Ice salinity --- !260 ! 261 CALL lim_thd_temp( 1, n bpb) ! --- temperature update --- !253 IF( ln_limdH ) CALL lim_thd_dif( 1, nidx ) ! --- Ice/Snow Temperature profile --- ! 254 ! 255 IF( ln_limdH ) CALL lim_thd_dh( 1, nidx ) ! --- Ice/Snow thickness --- ! 256 ! 257 IF( ln_limdH ) CALL lim_thd_ent( 1, nidx, e_i_1d(1:nidx,:) ) ! --- Ice enthalpy remapping --- ! 258 ! 259 CALL lim_thd_sal( 1, nidx ) ! --- Ice salinity --- ! 260 ! 261 CALL lim_thd_temp( 1, nidx ) ! --- temperature update --- ! 262 262 ! 263 263 IF( ln_limdH ) THEN 264 264 IF ( ( nn_monocat == 1 .OR. nn_monocat == 4 ) .AND. jpl == 1 ) THEN 265 CALL lim_thd_lam( 1, n bpb) ! --- extra lateral melting if monocat --- !265 CALL lim_thd_lam( 1, nidx ) ! --- extra lateral melting if monocat --- ! 266 266 END IF 267 267 END IF … … 274 274 ENDDO 275 275 ! 276 CALL lim_thd_1d2d( n bpb, jl, 2 ) ! --- Move to 2D arrays --- !276 CALL lim_thd_1d2d( nidx, jl, 2 ) ! --- Move to 2D arrays --- ! 277 277 ! 278 278 IF( lk_mpp ) CALL mpp_comm_free( ncomm_ice ) !RB necessary ?? … … 282 282 283 283 IF( ln_limdA) CALL lim_thd_da ! --- lateral melting --- ! 284 285 at_i(:,:) = SUM( a_i(:,:,:), dim=3 ) 284 286 285 287 ! Change thickness to volume … … 404 406 405 407 406 SUBROUTINE lim_thd_1d2d( n bpb, jl, kn )408 SUBROUTINE lim_thd_1d2d( nidx, jl, kn ) 407 409 !!----------------------------------------------------------------------- 408 410 !! *** ROUTINE lim_thd_1d2d *** … … 411 413 !!----------------------------------------------------------------------- 412 414 INTEGER, INTENT(in) :: kn ! 1= from 2D to 1D ; 2= from 1D to 2D 413 INTEGER, INTENT(in) :: n bpb! size of 1D arrays415 INTEGER, INTENT(in) :: nidx ! size of 1D arrays 414 416 INTEGER, INTENT(in) :: jl ! ice cat 415 417 ! … … 421 423 CASE( 1 ) ! from 2D to 1D 422 424 ! 423 CALL tab_2d_1d( n bpb, at_i_1d (1:nbpb), at_i , jpi, jpj, npb(1:nbpb) )424 CALL tab_2d_1d( n bpb, a_i_1d (1:nbpb), a_i(:,:,jl) , jpi, jpj, npb(1:nbpb) )425 CALL tab_2d_1d( n bpb, ht_i_1d (1:nbpb), ht_i(:,:,jl) , jpi, jpj, npb(1:nbpb) )426 CALL tab_2d_1d( n bpb, ht_s_1d (1:nbpb), ht_s(:,:,jl) , jpi, jpj, npb(1:nbpb) )427 ! 428 CALL tab_2d_1d( n bpb, t_su_1d (1:nbpb), t_su(:,:,jl) , jpi, jpj, npb(1:nbpb) )429 CALL tab_2d_1d( n bpb, sm_i_1d (1:nbpb), sm_i(:,:,jl) , jpi, jpj, npb(1:nbpb) )425 CALL tab_2d_1d( nidx, at_i_1d (1:nidx), at_i , jpi, jpj, idxice(1:nidx) ) 426 CALL tab_2d_1d( nidx, a_i_1d (1:nidx), a_i(:,:,jl) , jpi, jpj, idxice(1:nidx) ) 427 CALL tab_2d_1d( nidx, ht_i_1d (1:nidx), ht_i(:,:,jl) , jpi, jpj, idxice(1:nidx) ) 428 CALL tab_2d_1d( nidx, ht_s_1d (1:nidx), ht_s(:,:,jl) , jpi, jpj, idxice(1:nidx) ) 429 ! 430 CALL tab_2d_1d( nidx, t_su_1d (1:nidx), t_su(:,:,jl) , jpi, jpj, idxice(1:nidx) ) 431 CALL tab_2d_1d( nidx, sm_i_1d (1:nidx), sm_i(:,:,jl) , jpi, jpj, idxice(1:nidx) ) 430 432 DO jk = 1, nlay_s 431 CALL tab_2d_1d( n bpb, t_s_1d(1:nbpb,jk), t_s(:,:,jk,jl) , jpi, jpj, npb(1:nbpb) )432 CALL tab_2d_1d( n bpb, e_s_1d(1:nbpb,jk), e_s(:,:,jk,jl) , jpi, jpj, npb(1:nbpb) )433 CALL tab_2d_1d( nidx, t_s_1d(1:nidx,jk), t_s(:,:,jk,jl) , jpi, jpj, idxice(1:nidx) ) 434 CALL tab_2d_1d( nidx, e_s_1d(1:nidx,jk), e_s(:,:,jk,jl) , jpi, jpj, idxice(1:nidx) ) 433 435 END DO 434 436 DO jk = 1, nlay_i 435 CALL tab_2d_1d( nbpb, t_i_1d(1:nbpb,jk), t_i(:,:,jk,jl) , jpi, jpj, npb(1:nbpb) ) 436 CALL tab_2d_1d( nbpb, e_i_1d(1:nbpb,jk), e_i(:,:,jk,jl) , jpi, jpj, npb(1:nbpb) ) 437 CALL tab_2d_1d( nbpb, s_i_1d(1:nbpb,jk), s_i(:,:,jk,jl) , jpi, jpj, npb(1:nbpb) ) 438 END DO 439 ! 440 CALL tab_2d_1d( nbpb, qprec_ice_1d(1:nbpb), qprec_ice(:,:) , jpi, jpj, npb(1:nbpb) ) 441 CALL tab_2d_1d( nbpb, qevap_ice_1d(1:nbpb), qevap_ice(:,:,jl) , jpi, jpj, npb(1:nbpb) ) 442 CALL tab_2d_1d( nbpb, qsr_ice_1d (1:nbpb), qsr_ice(:,:,jl) , jpi, jpj, npb(1:nbpb) ) 443 CALL tab_2d_1d( nbpb, fr1_i0_1d (1:nbpb), fr1_i0 , jpi, jpj, npb(1:nbpb) ) 444 CALL tab_2d_1d( nbpb, fr2_i0_1d (1:nbpb), fr2_i0 , jpi, jpj, npb(1:nbpb) ) 445 CALL tab_2d_1d( nbpb, qns_ice_1d (1:nbpb), qns_ice(:,:,jl) , jpi, jpj, npb(1:nbpb) ) 446 CALL tab_2d_1d( nbpb, ftr_ice_1d (1:nbpb), ftr_ice(:,:,jl) , jpi, jpj, npb(1:nbpb) ) 447 CALL tab_2d_1d( nbpb, evap_ice_1d (1:nbpb), evap_ice(:,:,jl), jpi, jpj, npb(1:nbpb) ) 448 CALL tab_2d_1d( nbpb, dqns_ice_1d(1:nbpb), dqns_ice(:,:,jl), jpi, jpj, npb(1:nbpb) ) 449 CALL tab_2d_1d( nbpb, t_bo_1d (1:nbpb), t_bo , jpi, jpj, npb(1:nbpb) ) 450 CALL tab_2d_1d( nbpb, sprecip_1d (1:nbpb), sprecip , jpi, jpj, npb(1:nbpb) ) 451 CALL tab_2d_1d( nbpb, fhtur_1d (1:nbpb), fhtur , jpi, jpj, npb(1:nbpb) ) 452 CALL tab_2d_1d( nbpb, qlead_1d (1:nbpb), qlead , jpi, jpj, npb(1:nbpb) ) 453 CALL tab_2d_1d( nbpb, fhld_1d (1:nbpb), fhld , jpi, jpj, npb(1:nbpb) ) 454 ! 455 CALL tab_2d_1d( nbpb, wfx_snw_1d (1:nbpb), wfx_snw , jpi, jpj, npb(1:nbpb) ) 456 CALL tab_2d_1d( nbpb, wfx_snw_sum_1d(1:nbpb), wfx_snw_sum , jpi, jpj, npb(1:nbpb) ) 457 CALL tab_2d_1d( nbpb, wfx_sub_1d (1:nbpb), wfx_sub , jpi, jpj, npb(1:nbpb) ) 458 CALL tab_2d_1d( nbpb, wfx_snw_sub_1d(1:nbpb), wfx_snw_sub , jpi, jpj, npb(1:nbpb) ) 459 CALL tab_2d_1d( nbpb, wfx_ice_sub_1d(1:nbpb), wfx_ice_sub , jpi, jpj, npb(1:nbpb) ) 460 CALL tab_2d_1d( nbpb, wfx_err_sub_1d(1:nbpb), wfx_err_sub , jpi, jpj, npb(1:nbpb) ) 461 ! 462 CALL tab_2d_1d( nbpb, wfx_bog_1d (1:nbpb), wfx_bog , jpi, jpj, npb(1:nbpb) ) 463 CALL tab_2d_1d( nbpb, wfx_bom_1d (1:nbpb), wfx_bom , jpi, jpj, npb(1:nbpb) ) 464 CALL tab_2d_1d( nbpb, wfx_sum_1d (1:nbpb), wfx_sum , jpi, jpj, npb(1:nbpb) ) 465 CALL tab_2d_1d( nbpb, wfx_sni_1d (1:nbpb), wfx_sni , jpi, jpj, npb(1:nbpb) ) 466 CALL tab_2d_1d( nbpb, wfx_res_1d (1:nbpb), wfx_res , jpi, jpj, npb(1:nbpb) ) 467 CALL tab_2d_1d( nbpb, wfx_spr_1d (1:nbpb), wfx_spr , jpi, jpj, npb(1:nbpb) ) 468 ! 469 CALL tab_2d_1d( nbpb, sfx_bog_1d (1:nbpb), sfx_bog , jpi, jpj, npb(1:nbpb) ) 470 CALL tab_2d_1d( nbpb, sfx_bom_1d (1:nbpb), sfx_bom , jpi, jpj, npb(1:nbpb) ) 471 CALL tab_2d_1d( nbpb, sfx_sum_1d (1:nbpb), sfx_sum , jpi, jpj, npb(1:nbpb) ) 472 CALL tab_2d_1d( nbpb, sfx_sni_1d (1:nbpb), sfx_sni , jpi, jpj, npb(1:nbpb) ) 473 CALL tab_2d_1d( nbpb, sfx_bri_1d (1:nbpb), sfx_bri , jpi, jpj, npb(1:nbpb) ) 474 CALL tab_2d_1d( nbpb, sfx_res_1d (1:nbpb), sfx_res , jpi, jpj, npb(1:nbpb) ) 475 CALL tab_2d_1d( nbpb, sfx_sub_1d (1:nbpb), sfx_sub , jpi, jpj,npb(1:nbpb) ) 476 ! 477 CALL tab_2d_1d( nbpb, hfx_thd_1d (1:nbpb), hfx_thd , jpi, jpj, npb(1:nbpb) ) 478 CALL tab_2d_1d( nbpb, hfx_spr_1d (1:nbpb), hfx_spr , jpi, jpj, npb(1:nbpb) ) 479 CALL tab_2d_1d( nbpb, hfx_sum_1d (1:nbpb), hfx_sum , jpi, jpj, npb(1:nbpb) ) 480 CALL tab_2d_1d( nbpb, hfx_bom_1d (1:nbpb), hfx_bom , jpi, jpj, npb(1:nbpb) ) 481 CALL tab_2d_1d( nbpb, hfx_bog_1d (1:nbpb), hfx_bog , jpi, jpj, npb(1:nbpb) ) 482 CALL tab_2d_1d( nbpb, hfx_dif_1d (1:nbpb), hfx_dif , jpi, jpj, npb(1:nbpb) ) 483 CALL tab_2d_1d( nbpb, hfx_opw_1d (1:nbpb), hfx_opw , jpi, jpj, npb(1:nbpb) ) 484 CALL tab_2d_1d( nbpb, hfx_snw_1d (1:nbpb), hfx_snw , jpi, jpj, npb(1:nbpb) ) 485 CALL tab_2d_1d( nbpb, hfx_sub_1d (1:nbpb), hfx_sub , jpi, jpj, npb(1:nbpb) ) 486 CALL tab_2d_1d( nbpb, hfx_err_1d (1:nbpb), hfx_err , jpi, jpj, npb(1:nbpb) ) 487 CALL tab_2d_1d( nbpb, hfx_res_1d (1:nbpb), hfx_res , jpi, jpj, npb(1:nbpb) ) 488 CALL tab_2d_1d( nbpb, hfx_err_dif_1d (1:nbpb), hfx_err_dif , jpi, jpj, npb(1:nbpb) ) 489 CALL tab_2d_1d( nbpb, hfx_err_rem_1d (1:nbpb), hfx_err_rem , jpi, jpj, npb(1:nbpb) ) 490 CALL tab_2d_1d( nbpb, hfx_out_1d (1:nbpb), hfx_out , jpi, jpj, npb(1:nbpb) ) 437 CALL tab_2d_1d( nidx, t_i_1d(1:nidx,jk), t_i(:,:,jk,jl) , jpi, jpj, idxice(1:nidx) ) 438 CALL tab_2d_1d( nidx, e_i_1d(1:nidx,jk), e_i(:,:,jk,jl) , jpi, jpj, idxice(1:nidx) ) 439 CALL tab_2d_1d( nidx, s_i_1d(1:nidx,jk), s_i(:,:,jk,jl) , jpi, jpj, idxice(1:nidx) ) 440 END DO 441 ! 442 CALL tab_2d_1d( nidx, qprec_ice_1d(1:nidx), qprec_ice(:,:) , jpi, jpj, idxice(1:nidx) ) 443 CALL tab_2d_1d( nidx, qevap_ice_1d(1:nidx), qevap_ice(:,:,jl) , jpi, jpj, idxice(1:nidx) ) 444 CALL tab_2d_1d( nidx, qsr_ice_1d (1:nidx), qsr_ice(:,:,jl) , jpi, jpj, idxice(1:nidx) ) 445 CALL tab_2d_1d( nidx, fr1_i0_1d (1:nidx), fr1_i0 , jpi, jpj, idxice(1:nidx) ) 446 CALL tab_2d_1d( nidx, fr2_i0_1d (1:nidx), fr2_i0 , jpi, jpj, idxice(1:nidx) ) 447 CALL tab_2d_1d( nidx, qns_ice_1d (1:nidx), qns_ice(:,:,jl) , jpi, jpj, idxice(1:nidx) ) 448 CALL tab_2d_1d( nidx, ftr_ice_1d (1:nidx), ftr_ice(:,:,jl) , jpi, jpj, idxice(1:nidx) ) 449 CALL tab_2d_1d( nidx, evap_ice_1d (1:nidx), evap_ice(:,:,jl), jpi, jpj, idxice(1:nidx) ) 450 CALL tab_2d_1d( nidx, dqns_ice_1d(1:nidx), dqns_ice(:,:,jl), jpi, jpj, idxice(1:nidx) ) 451 CALL tab_2d_1d( nidx, t_bo_1d (1:nidx), t_bo , jpi, jpj, idxice(1:nidx) ) 452 CALL tab_2d_1d( nidx, sprecip_1d (1:nidx), sprecip , jpi, jpj, idxice(1:nidx) ) 453 CALL tab_2d_1d( nidx, fhtur_1d (1:nidx), fhtur , jpi, jpj, idxice(1:nidx) ) 454 CALL tab_2d_1d( nidx, fhld_1d (1:nidx), fhld , jpi, jpj, idxice(1:nidx) ) 455 ! 456 CALL tab_2d_1d( nidx, wfx_snw_1d (1:nidx), wfx_snw , jpi, jpj, idxice(1:nidx) ) 457 CALL tab_2d_1d( nidx, wfx_snw_sum_1d(1:nidx), wfx_snw_sum , jpi, jpj, idxice(1:nidx) ) 458 CALL tab_2d_1d( nidx, wfx_sub_1d (1:nidx), wfx_sub , jpi, jpj, idxice(1:nidx) ) 459 CALL tab_2d_1d( nidx, wfx_snw_sub_1d(1:nidx), wfx_snw_sub , jpi, jpj, idxice(1:nidx) ) 460 CALL tab_2d_1d( nidx, wfx_ice_sub_1d(1:nidx), wfx_ice_sub , jpi, jpj, idxice(1:nidx) ) 461 CALL tab_2d_1d( nidx, wfx_err_sub_1d(1:nidx), wfx_err_sub , jpi, jpj, idxice(1:nidx) ) 462 ! 463 CALL tab_2d_1d( nidx, wfx_bog_1d (1:nidx), wfx_bog , jpi, jpj, idxice(1:nidx) ) 464 CALL tab_2d_1d( nidx, wfx_bom_1d (1:nidx), wfx_bom , jpi, jpj, idxice(1:nidx) ) 465 CALL tab_2d_1d( nidx, wfx_sum_1d (1:nidx), wfx_sum , jpi, jpj, idxice(1:nidx) ) 466 CALL tab_2d_1d( nidx, wfx_sni_1d (1:nidx), wfx_sni , jpi, jpj, idxice(1:nidx) ) 467 CALL tab_2d_1d( nidx, wfx_res_1d (1:nidx), wfx_res , jpi, jpj, idxice(1:nidx) ) 468 CALL tab_2d_1d( nidx, wfx_spr_1d (1:nidx), wfx_spr , jpi, jpj, idxice(1:nidx) ) 469 ! 470 CALL tab_2d_1d( nidx, sfx_bog_1d (1:nidx), sfx_bog , jpi, jpj, idxice(1:nidx) ) 471 CALL tab_2d_1d( nidx, sfx_bom_1d (1:nidx), sfx_bom , jpi, jpj, idxice(1:nidx) ) 472 CALL tab_2d_1d( nidx, sfx_sum_1d (1:nidx), sfx_sum , jpi, jpj, idxice(1:nidx) ) 473 CALL tab_2d_1d( nidx, sfx_sni_1d (1:nidx), sfx_sni , jpi, jpj, idxice(1:nidx) ) 474 CALL tab_2d_1d( nidx, sfx_bri_1d (1:nidx), sfx_bri , jpi, jpj, idxice(1:nidx) ) 475 CALL tab_2d_1d( nidx, sfx_res_1d (1:nidx), sfx_res , jpi, jpj, idxice(1:nidx) ) 476 CALL tab_2d_1d( nidx, sfx_sub_1d (1:nidx), sfx_sub , jpi, jpj,idxice(1:nidx) ) 477 ! 478 CALL tab_2d_1d( nidx, hfx_thd_1d (1:nidx), hfx_thd , jpi, jpj, idxice(1:nidx) ) 479 CALL tab_2d_1d( nidx, hfx_spr_1d (1:nidx), hfx_spr , jpi, jpj, idxice(1:nidx) ) 480 CALL tab_2d_1d( nidx, hfx_sum_1d (1:nidx), hfx_sum , jpi, jpj, idxice(1:nidx) ) 481 CALL tab_2d_1d( nidx, hfx_bom_1d (1:nidx), hfx_bom , jpi, jpj, idxice(1:nidx) ) 482 CALL tab_2d_1d( nidx, hfx_bog_1d (1:nidx), hfx_bog , jpi, jpj, idxice(1:nidx) ) 483 CALL tab_2d_1d( nidx, hfx_dif_1d (1:nidx), hfx_dif , jpi, jpj, idxice(1:nidx) ) 484 CALL tab_2d_1d( nidx, hfx_opw_1d (1:nidx), hfx_opw , jpi, jpj, idxice(1:nidx) ) 485 CALL tab_2d_1d( nidx, hfx_snw_1d (1:nidx), hfx_snw , jpi, jpj, idxice(1:nidx) ) 486 CALL tab_2d_1d( nidx, hfx_sub_1d (1:nidx), hfx_sub , jpi, jpj, idxice(1:nidx) ) 487 CALL tab_2d_1d( nidx, hfx_err_1d (1:nidx), hfx_err , jpi, jpj, idxice(1:nidx) ) 488 CALL tab_2d_1d( nidx, hfx_res_1d (1:nidx), hfx_res , jpi, jpj, idxice(1:nidx) ) 489 CALL tab_2d_1d( nidx, hfx_err_dif_1d (1:nidx), hfx_err_dif , jpi, jpj, idxice(1:nidx) ) 490 CALL tab_2d_1d( nidx, hfx_err_rem_1d (1:nidx), hfx_err_rem , jpi, jpj, idxice(1:nidx) ) 491 CALL tab_2d_1d( nidx, hfx_out_1d (1:nidx), hfx_out , jpi, jpj, idxice(1:nidx) ) 491 492 ! 492 493 ! SIMIP diagnostics 493 CALL tab_2d_1d( n bpb, diag_fc_bo_1d (1:nbpb), diag_fc_bo , jpi, jpj, npb(1:nbpb) )494 CALL tab_2d_1d( n bpb, diag_fc_su_1d (1:nbpb), diag_fc_su , jpi, jpj, npb(1:nbpb) )494 CALL tab_2d_1d( nidx, diag_fc_bo_1d (1:nidx), diag_fc_bo , jpi, jpj, idxice(1:nidx) ) 495 CALL tab_2d_1d( nidx, diag_fc_su_1d (1:nidx), diag_fc_su , jpi, jpj, idxice(1:nidx) ) 495 496 ! ocean surface fields 496 CALL tab_2d_1d( n bpb, sst_1d(1:nbpb), sst_m, jpi, jpj, npb(1:nbpb) )497 CALL tab_2d_1d( n bpb, sss_1d(1:nbpb), sss_m, jpi, jpj, npb(1:nbpb) )497 CALL tab_2d_1d( nidx, sst_1d(1:nidx), sst_m, jpi, jpj, idxice(1:nidx) ) 498 CALL tab_2d_1d( nidx, sss_1d(1:nidx), sss_m, jpi, jpj, idxice(1:nidx) ) 498 499 ! 499 500 CASE( 2 ) ! from 1D to 2D 500 501 ! 501 CALL tab_1d_2d( n bpb, at_i , npb, at_i_1d (1:nbpb) , jpi, jpj )502 CALL tab_1d_2d( n bpb, ht_i(:,:,jl) , npb, ht_i_1d (1:nbpb) , jpi, jpj )503 CALL tab_1d_2d( n bpb, ht_s(:,:,jl) , npb, ht_s_1d (1:nbpb) , jpi, jpj )504 CALL tab_1d_2d( n bpb, a_i (:,:,jl) , npb, a_i_1d (1:nbpb) , jpi, jpj )505 CALL tab_1d_2d( n bpb, t_su(:,:,jl) , npb, t_su_1d (1:nbpb) , jpi, jpj )506 CALL tab_1d_2d( n bpb, sm_i(:,:,jl) , npb, sm_i_1d (1:nbpb) , jpi, jpj )502 CALL tab_1d_2d( nidx, at_i , idxice, at_i_1d (1:nidx) , jpi, jpj ) 503 CALL tab_1d_2d( nidx, ht_i(:,:,jl) , idxice, ht_i_1d (1:nidx) , jpi, jpj ) 504 CALL tab_1d_2d( nidx, ht_s(:,:,jl) , idxice, ht_s_1d (1:nidx) , jpi, jpj ) 505 CALL tab_1d_2d( nidx, a_i (:,:,jl) , idxice, a_i_1d (1:nidx) , jpi, jpj ) 506 CALL tab_1d_2d( nidx, t_su(:,:,jl) , idxice, t_su_1d (1:nidx) , jpi, jpj ) 507 CALL tab_1d_2d( nidx, sm_i(:,:,jl) , idxice, sm_i_1d (1:nidx) , jpi, jpj ) 507 508 DO jk = 1, nlay_s 508 CALL tab_1d_2d( n bpb, t_s(:,:,jk,jl), npb, t_s_1d (1:nbpb,jk), jpi, jpj)509 CALL tab_1d_2d( n bpb, e_s(:,:,jk,jl), npb, e_s_1d (1:nbpb,jk), jpi, jpj)509 CALL tab_1d_2d( nidx, t_s(:,:,jk,jl), idxice, t_s_1d (1:nidx,jk), jpi, jpj) 510 CALL tab_1d_2d( nidx, e_s(:,:,jk,jl), idxice, e_s_1d (1:nidx,jk), jpi, jpj) 510 511 END DO 511 512 DO jk = 1, nlay_i 512 CALL tab_1d_2d( nbpb, t_i(:,:,jk,jl), npb, t_i_1d (1:nbpb,jk), jpi, jpj) 513 CALL tab_1d_2d( nbpb, e_i(:,:,jk,jl), npb, e_i_1d (1:nbpb,jk), jpi, jpj) 514 CALL tab_1d_2d( nbpb, s_i(:,:,jk,jl), npb, s_i_1d (1:nbpb,jk), jpi, jpj) 515 END DO 516 CALL tab_1d_2d( nbpb, qlead , npb, qlead_1d (1:nbpb) , jpi, jpj ) 517 ! 518 CALL tab_1d_2d( nbpb, wfx_snw , npb, wfx_snw_1d(1:nbpb) , jpi, jpj ) 519 CALL tab_1d_2d( nbpb, wfx_snw_sum , npb, wfx_snw_sum_1d(1:nbpb),jpi, jpj ) 520 CALL tab_1d_2d( nbpb, wfx_sub , npb, wfx_sub_1d(1:nbpb) , jpi, jpj ) 521 CALL tab_1d_2d( nbpb, wfx_snw_sub , npb, wfx_snw_sub_1d(1:nbpb), jpi, jpj ) 522 CALL tab_1d_2d( nbpb, wfx_ice_sub , npb, wfx_ice_sub_1d(1:nbpb), jpi, jpj ) 523 CALL tab_1d_2d( nbpb, wfx_err_sub , npb, wfx_err_sub_1d(1:nbpb), jpi, jpj ) 524 ! 525 CALL tab_1d_2d( nbpb, wfx_bog , npb, wfx_bog_1d(1:nbpb) , jpi, jpj ) 526 CALL tab_1d_2d( nbpb, wfx_bom , npb, wfx_bom_1d(1:nbpb) , jpi, jpj ) 527 CALL tab_1d_2d( nbpb, wfx_sum , npb, wfx_sum_1d(1:nbpb) , jpi, jpj ) 528 CALL tab_1d_2d( nbpb, wfx_sni , npb, wfx_sni_1d(1:nbpb) , jpi, jpj ) 529 CALL tab_1d_2d( nbpb, wfx_res , npb, wfx_res_1d(1:nbpb) , jpi, jpj ) 530 CALL tab_1d_2d( nbpb, wfx_spr , npb, wfx_spr_1d(1:nbpb) , jpi, jpj ) 531 ! 532 CALL tab_1d_2d( nbpb, sfx_bog , npb, sfx_bog_1d(1:nbpb) , jpi, jpj ) 533 CALL tab_1d_2d( nbpb, sfx_bom , npb, sfx_bom_1d(1:nbpb) , jpi, jpj ) 534 CALL tab_1d_2d( nbpb, sfx_sum , npb, sfx_sum_1d(1:nbpb) , jpi, jpj ) 535 CALL tab_1d_2d( nbpb, sfx_sni , npb, sfx_sni_1d(1:nbpb) , jpi, jpj ) 536 CALL tab_1d_2d( nbpb, sfx_res , npb, sfx_res_1d(1:nbpb) , jpi, jpj ) 537 CALL tab_1d_2d( nbpb, sfx_bri , npb, sfx_bri_1d(1:nbpb) , jpi, jpj ) 538 CALL tab_1d_2d( nbpb, sfx_sub , npb, sfx_sub_1d(1:nbpb) , jpi, jpj ) 539 ! 540 CALL tab_1d_2d( nbpb, hfx_thd , npb, hfx_thd_1d(1:nbpb) , jpi, jpj ) 541 CALL tab_1d_2d( nbpb, hfx_spr , npb, hfx_spr_1d(1:nbpb) , jpi, jpj ) 542 CALL tab_1d_2d( nbpb, hfx_sum , npb, hfx_sum_1d(1:nbpb) , jpi, jpj ) 543 CALL tab_1d_2d( nbpb, hfx_bom , npb, hfx_bom_1d(1:nbpb) , jpi, jpj ) 544 CALL tab_1d_2d( nbpb, hfx_bog , npb, hfx_bog_1d(1:nbpb) , jpi, jpj ) 545 CALL tab_1d_2d( nbpb, hfx_dif , npb, hfx_dif_1d(1:nbpb) , jpi, jpj ) 546 CALL tab_1d_2d( nbpb, hfx_opw , npb, hfx_opw_1d(1:nbpb) , jpi, jpj ) 547 CALL tab_1d_2d( nbpb, hfx_snw , npb, hfx_snw_1d(1:nbpb) , jpi, jpj ) 548 CALL tab_1d_2d( nbpb, hfx_sub , npb, hfx_sub_1d(1:nbpb) , jpi, jpj ) 549 CALL tab_1d_2d( nbpb, hfx_err , npb, hfx_err_1d(1:nbpb) , jpi, jpj ) 550 CALL tab_1d_2d( nbpb, hfx_res , npb, hfx_res_1d(1:nbpb) , jpi, jpj ) 551 CALL tab_1d_2d( nbpb, hfx_err_rem , npb, hfx_err_rem_1d(1:nbpb), jpi, jpj ) 552 CALL tab_1d_2d( nbpb, hfx_err_dif , npb, hfx_err_dif_1d(1:nbpb), jpi, jpj ) 553 CALL tab_1d_2d( nbpb, hfx_out , npb, hfx_out_1d(1:nbpb) , jpi, jpj ) 554 ! 555 CALL tab_1d_2d( nbpb, qns_ice(:,:,jl), npb, qns_ice_1d(1:nbpb) , jpi, jpj) 556 CALL tab_1d_2d( nbpb, ftr_ice(:,:,jl), npb, ftr_ice_1d(1:nbpb) , jpi, jpj ) 513 CALL tab_1d_2d( nidx, t_i(:,:,jk,jl), idxice, t_i_1d (1:nidx,jk), jpi, jpj) 514 CALL tab_1d_2d( nidx, e_i(:,:,jk,jl), idxice, e_i_1d (1:nidx,jk), jpi, jpj) 515 CALL tab_1d_2d( nidx, s_i(:,:,jk,jl), idxice, s_i_1d (1:nidx,jk), jpi, jpj) 516 END DO 517 ! 518 CALL tab_1d_2d( nidx, wfx_snw , idxice, wfx_snw_1d(1:nidx) , jpi, jpj ) 519 CALL tab_1d_2d( nidx, wfx_snw_sum , idxice, wfx_snw_sum_1d(1:nidx),jpi, jpj ) 520 CALL tab_1d_2d( nidx, wfx_sub , idxice, wfx_sub_1d(1:nidx) , jpi, jpj ) 521 CALL tab_1d_2d( nidx, wfx_snw_sub , idxice, wfx_snw_sub_1d(1:nidx), jpi, jpj ) 522 CALL tab_1d_2d( nidx, wfx_ice_sub , idxice, wfx_ice_sub_1d(1:nidx), jpi, jpj ) 523 CALL tab_1d_2d( nidx, wfx_err_sub , idxice, wfx_err_sub_1d(1:nidx), jpi, jpj ) 524 ! 525 CALL tab_1d_2d( nidx, wfx_bog , idxice, wfx_bog_1d(1:nidx) , jpi, jpj ) 526 CALL tab_1d_2d( nidx, wfx_bom , idxice, wfx_bom_1d(1:nidx) , jpi, jpj ) 527 CALL tab_1d_2d( nidx, wfx_sum , idxice, wfx_sum_1d(1:nidx) , jpi, jpj ) 528 CALL tab_1d_2d( nidx, wfx_sni , idxice, wfx_sni_1d(1:nidx) , jpi, jpj ) 529 CALL tab_1d_2d( nidx, wfx_res , idxice, wfx_res_1d(1:nidx) , jpi, jpj ) 530 CALL tab_1d_2d( nidx, wfx_spr , idxice, wfx_spr_1d(1:nidx) , jpi, jpj ) 531 ! 532 CALL tab_1d_2d( nidx, sfx_bog , idxice, sfx_bog_1d(1:nidx) , jpi, jpj ) 533 CALL tab_1d_2d( nidx, sfx_bom , idxice, sfx_bom_1d(1:nidx) , jpi, jpj ) 534 CALL tab_1d_2d( nidx, sfx_sum , idxice, sfx_sum_1d(1:nidx) , jpi, jpj ) 535 CALL tab_1d_2d( nidx, sfx_sni , idxice, sfx_sni_1d(1:nidx) , jpi, jpj ) 536 CALL tab_1d_2d( nidx, sfx_res , idxice, sfx_res_1d(1:nidx) , jpi, jpj ) 537 CALL tab_1d_2d( nidx, sfx_bri , idxice, sfx_bri_1d(1:nidx) , jpi, jpj ) 538 CALL tab_1d_2d( nidx, sfx_sub , idxice, sfx_sub_1d(1:nidx) , jpi, jpj ) 539 ! 540 CALL tab_1d_2d( nidx, hfx_thd , idxice, hfx_thd_1d(1:nidx) , jpi, jpj ) 541 CALL tab_1d_2d( nidx, hfx_spr , idxice, hfx_spr_1d(1:nidx) , jpi, jpj ) 542 CALL tab_1d_2d( nidx, hfx_sum , idxice, hfx_sum_1d(1:nidx) , jpi, jpj ) 543 CALL tab_1d_2d( nidx, hfx_bom , idxice, hfx_bom_1d(1:nidx) , jpi, jpj ) 544 CALL tab_1d_2d( nidx, hfx_bog , idxice, hfx_bog_1d(1:nidx) , jpi, jpj ) 545 CALL tab_1d_2d( nidx, hfx_dif , idxice, hfx_dif_1d(1:nidx) , jpi, jpj ) 546 CALL tab_1d_2d( nidx, hfx_opw , idxice, hfx_opw_1d(1:nidx) , jpi, jpj ) 547 CALL tab_1d_2d( nidx, hfx_snw , idxice, hfx_snw_1d(1:nidx) , jpi, jpj ) 548 CALL tab_1d_2d( nidx, hfx_sub , idxice, hfx_sub_1d(1:nidx) , jpi, jpj ) 549 CALL tab_1d_2d( nidx, hfx_err , idxice, hfx_err_1d(1:nidx) , jpi, jpj ) 550 CALL tab_1d_2d( nidx, hfx_res , idxice, hfx_res_1d(1:nidx) , jpi, jpj ) 551 CALL tab_1d_2d( nidx, hfx_err_rem , idxice, hfx_err_rem_1d(1:nidx), jpi, jpj ) 552 CALL tab_1d_2d( nidx, hfx_err_dif , idxice, hfx_err_dif_1d(1:nidx), jpi, jpj ) 553 CALL tab_1d_2d( nidx, hfx_out , idxice, hfx_out_1d(1:nidx) , jpi, jpj ) 554 ! 555 CALL tab_1d_2d( nidx, qns_ice(:,:,jl), idxice, qns_ice_1d(1:nidx) , jpi, jpj) 556 CALL tab_1d_2d( nidx, ftr_ice(:,:,jl), idxice, ftr_ice_1d(1:nidx) , jpi, jpj ) 557 557 ! 558 558 ! SIMIP diagnostics 559 CALL tab_1d_2d( n bpb, t_si(:,:,jl) , npb, t_si_1d (1:nbpb) , jpi, jpj )560 CALL tab_1d_2d( n bpb, diag_fc_bo , npb, diag_fc_bo_1d(1:nbpb) , jpi, jpj )561 CALL tab_1d_2d( n bpb, diag_fc_su , npb, diag_fc_su_1d(1:nbpb) , jpi, jpj )559 CALL tab_1d_2d( nidx, t_si(:,:,jl) , idxice, t_si_1d (1:nidx) , jpi, jpj ) 560 CALL tab_1d_2d( nidx, diag_fc_bo , idxice, diag_fc_bo_1d(1:nidx) , jpi, jpj ) 561 CALL tab_1d_2d( nidx, diag_fc_su , idxice, diag_fc_su_1d(1:nidx) , jpi, jpj ) 562 562 END SELECT 563 563 !
Note: See TracChangeset
for help on using the changeset viewer.