Changeset 5030
- Timestamp:
- 2015-01-14T17:45:17+01:00 (9 years ago)
- Location:
- branches/2015/dev_r5021_UKMO1_CICE_coupling/NEMOGCM/NEMO/OPA_SRC/SBC
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2015/dev_r5021_UKMO1_CICE_coupling/NEMOGCM/NEMO/OPA_SRC/SBC/sbc_ice.F90
r5026 r5030 92 92 INTEGER , PUBLIC, PARAMETER :: jpl = ncat 93 93 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: u_ice, v_ice ! jpi, jpj 94 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: a_p, ht_p ! Meltpond fraction and depth 94 95 #endif 95 96 … … 148 149 & v_ice(jpi,jpj) , fr2_i0(jpi,jpj) , alb_ice(jpi,jpj,1) , & 149 150 & emp_ice(jpi,jpj) , qns_ice(jpi,jpj,1) , dqns_ice(jpi,jpj,1) , & 150 & STAT=ierr(2) )151 & a_p(jpi,jpj,jpl) , ht_p(jpi,jpj,jpl) , STAT=ierr(2) ) 151 152 152 153 #endif … … 157 158 ! 158 159 #if defined key_cice || defined key_lim2 159 IF( lk_cpl ) 160 IF( lk_cpl ) ALLOCATE( ht_i(jpi,jpj,jpl) , ht_s(jpi,jpj,jpl) , STAT=ierr(5) ) 160 161 #endif 161 162 -
branches/2015/dev_r5021_UKMO1_CICE_coupling/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90
r5026 r5030 104 104 INTEGER, PARAMETER :: jps_ivz1 = 14 ! 105 105 INTEGER, PARAMETER :: jps_co2 = 15 106 INTEGER, PARAMETER :: jpsnd = 15 ! total number of fields sended 107 106 INTEGER, PARAMETER :: jps_a_p = 16 ! meltpond fraction 107 INTEGER, PARAMETER :: jps_ht_p = 17 ! meltpond depth (m) 108 INTEGER, PARAMETER :: jpsnd = 18 ! total number of fields sended 108 109 ! !!** namelist namsbc_cpl ** 109 110 TYPE :: FLD_C … … 115 116 END TYPE FLD_C 116 117 ! Send to the atmosphere ! 117 TYPE(FLD_C) :: sn_snd_temp, sn_snd_alb, sn_snd_thick, sn_snd_crt, sn_snd_co2 118 TYPE(FLD_C) :: sn_snd_temp, sn_snd_alb, sn_snd_thick, sn_snd_crt, sn_snd_co2, sn_snd_mpnd 118 119 ! Received from the atmosphere ! 119 120 TYPE(FLD_C) :: sn_rcv_w10m, sn_rcv_taumod, sn_rcv_tau, sn_rcv_dqnsdt, sn_rcv_qsr, sn_rcv_qns, sn_rcv_emp, sn_rcv_rnf … … 238 239 WRITE(numout,*)' - mesh = ', sn_snd_crt%clvgrd 239 240 WRITE(numout,*)' oce co2 flux = ', TRIM(sn_snd_co2%cldes ), ' (', TRIM(sn_snd_co2%clcat ), ')' 241 WRITE(numout,*)' meltponds fraction & depth = ', TRIM(sn_snd_mpnd%cldes ), ' (', TRIM(sn_snd_mpnd%clcat ), ')' 240 242 WRITE(numout,*)' nn_cplmodel = ', nn_cplmodel 241 243 WRITE(numout,*)' ln_usecplmask = ', ln_usecplmask … … 508 510 509 511 ! ! ------------------------- ! 510 ! ! Ice fraction & Thickness !512 ! ! Ice fraction & Thickness 511 513 ! ! ------------------------- ! 512 514 ssnd(jps_fice)%clname = 'OIceFrc' 513 515 ssnd(jps_hice)%clname = 'OIceTck' 514 516 ssnd(jps_hsnw)%clname = 'OSnwTck' 517 ssnd(jps_a_p)%clname = 'OPndFrc' 518 ssnd(jps_ht_p)%clname = 'OPndTck' 515 519 IF( k_ice /= 0 ) THEN 516 520 ssnd(jps_fice)%laction = .TRUE. ! if ice treated in the ocean (even in climato case) … … 535 539 CASE default ; CALL ctl_stop( 'sbc_cpl_init: wrong definition of sn_snd_thick%cldes' ) 536 540 END SELECT 541 542 ! ! ------------------------- ! 543 ! ! Ice Meltponds ! 544 ! ! ------------------------- ! 545 #if defined key_cice && ! defined key_cice4 546 ! Meltponds only CICE5 547 ssnd(jps_a_p)%clname = 'OPndFrc' 548 ssnd(jps_ht_p)%clname = 'OPndTck' 549 SELECT CASE ( TRIM( sn_snd_mpnd%cldes ) ) 550 CASE ( 'none' ) 551 ssnd(jps_a_p)%laction = .FALSE. 552 ssnd(jps_ht_p)%laction = .FALSE. 553 CASE ( 'ice only' ) 554 ssnd(jps_a_p)%laction = .TRUE. 555 ssnd(jps_ht_p)%laction = .TRUE. 556 IF ( TRIM( sn_snd_mpnd%clcat ) == 'yes' ) THEN 557 ssnd(jps_a_p)%nct = jpl 558 ssnd(jps_ht_p)%nct = jpl 559 ELSE 560 IF ( jpl > 1 ) THEN 561 CALL ctl_stop( 'sbc_cpl_init: use weighted ice option for sn_snd_mpnd%cldes if not exchanging category fields' ) 562 ENDIF 563 ENDIF 564 CASE ( 'weighted ice' ) 565 ssnd(jps_a_p)%laction = .TRUE. 566 ssnd(jps_ht_p)%laction = .TRUE. 567 IF ( TRIM( sn_snd_mpnd%clcat ) == 'yes' ) THEN 568 ssnd(jps_a_p)%nct = jpl 569 ssnd(jps_ht_p)%nct = jpl 570 ENDIF 571 CASE default ; CALL ctl_stop( 'sbc_cpl_init: wrong definition of sn_snd_mpnd%cldes' ) 572 END SELECT 573 #else 574 IF( TRIM( sn_snd_mpnd%cldes /= 'none' ) THEN 575 CALL ctl_stop('Meltponds can only be used with CICEv5') 576 ENDIF 577 #endif 537 578 538 579 ! ! ------------------------- ! … … 650 691 REAL(wp) :: zcdrag = 1.5e-3 ! drag coefficient 651 692 REAL(wp) :: zzx, zzy ! temporary variables 652 REAL(wp), POINTER, DIMENSION (:,:) :: ztx, zty693 REAL(wp), POINTER, DIMENSION:,:) :: ztx, zty 653 694 !!---------------------------------------------------------------------- 654 695 ! … … 1448 1489 ENDIF 1449 1490 ! 1491 ! Send meltpond fields 1492 SELECT CASE( sn_snd_mpnd%cldes) 1493 CASE( 'weighted ice' ) 1494 SELECT CASE( sn_snd_mpnd%clcat ) 1495 CASE( 'yes' ) 1496 ztmp3(:,:,1:jpl) = a_p(:,:,1:jpl) * a_i(:,:,1:jpl) 1497 ztmp4(:,:,1:jpl) = ht_p(:,:,1:jpl) * a_i(:,:,1:jpl) 1498 CASE( 'no' ) 1499 ztmp3(:,:,:) = 0.0 1500 ztmp4(:,:,:) = 0.0 1501 DO jl=1,jpl 1502 ztmp3(:,:,1) = ztmp3(:,:,1) + a_p(:,:,jpl) * a_i(:,:,jpl) 1503 ztmp4(:,:,1) = ztmp4(:,:,1) + ht_p(:,:,jpl) * a_i(:,:,jpl) 1504 ENDDO 1505 CASE default ; CALL ctl_stop( 'sbc_cpl_mpd: wrong definition of sn_snd_mpnd%clcat' ) 1506 END SELECT 1507 CASE( 'ice only' ) 1508 ztmp3(:,:,1:jpl) = a_p(:,:,1:jpl) 1509 ztmp4(:,:,1:jpl) = ht_p(:,:,1:jpl) 1510 END SELECT 1511 IF( ssnd(jps_a_p)%laction ) CALL cpl_prism_snd( jps_a_p, isec, ztmp3, info ) 1512 IF( ssnd(jps_ht_p)%laction ) CALL cpl_prism_snd( jps_ht_p, isec, ztmp4, info ) 1513 ! 1514 ! 1450 1515 #if defined key_cpl_carbon_cycle 1451 1516 ! ! ------------------------- ! -
branches/2015/dev_r5021_UKMO1_CICE_coupling/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_cice.F90
r5026 r5030 37 37 USE ice_gather_scatter 38 38 USE ice_calendar, only: dt 39 # if defined key_cice4 39 40 USE ice_state, only: aice,aicen,uvel,vvel,vsno,vsnon,vice,vicen 40 # if defined key_cice441 41 USE ice_flux, only: strax,stray,strocnx,strocny,frain,fsnow, & 42 42 sst,sss,uocn,vocn,ss_tltx,ss_tlty,fsalt_gbm, & … … 47 47 USE ice_therm_vertical, only: calc_Tsfc 48 48 #else 49 USE ice_state, only: aice,aicen,uvel,nt_hpnd,trcrn,vvel,vsno,& 50 vsnon,vice,vicen 49 51 USE ice_flux, only: strax,stray,strocnx,strocny,frain,fsnow, & 50 52 sst,sss,uocn,vocn,ss_tltx,ss_tlty,fsalt_ai, & … … 54 56 swvdr,swvdf,swidr,swidf 55 57 USE ice_therm_shared, only: calc_Tsfc 58 USE ice_shortwave, only: apeffn 56 59 #endif 57 60 USE ice_forcing, only: frcvdr,frcvdf,frcidr,frcidf … … 702 705 CALL cice2nemo(vicen(:,:,jl,:),ht_i(:,:,jl),'T', 1. ) 703 706 ENDDO 707 708 #if ! defined key_cice4 709 ! Meltpond fraction and depth 710 DO jl = 1,ncat 711 CALL cice2nemo(apeffn(:,:,jl,:),a_p(:,:,jl),'T', 1. ) 712 CALL cice2nemo(trcrn(:,:,jl,:),ht_p(:,:,jl),'T', 1. ) 713 ENDDO 714 #endif 715 704 716 ! 705 717 IF( nn_timing == 1 ) CALL timing_stop('cice_sbc_hadgam')
Note: See TracChangeset
for help on using the changeset viewer.