- Timestamp:
- 2019-12-10T15:44:23+01:00 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/SBC/sbcice_cice.F90
r11536 r12154 132 132 IF ( ksbc == jp_flx ) THEN 133 133 CALL cice_sbc_force(kt) 134 ELSE IF 134 ELSE IF( ksbc == jp_purecpl ) THEN 135 135 CALL sbc_cpl_ice_flx( fr_i ) 136 136 ENDIF … … 140 140 CALL cice_sbc_out ( kt, ksbc ) 141 141 142 IF 142 IF( ksbc == jp_purecpl ) CALL cice_sbc_hadgam(kt+1) 143 143 144 144 ENDIF ! End sea-ice time step only … … 168 168 ! there is no restart file. 169 169 ! Values from a CICE restart file would overwrite this 170 IF 170 IF( .NOT. ln_rstart ) THEN 171 171 CALL nemo2cice( tsn(:,:,1,jp_tem) , sst , 'T' , 1.) 172 172 ENDIF … … 177 177 178 178 ! Do some CICE consistency checks 179 IF 180 IF 179 IF( (ksbc == jp_flx) .OR. (ksbc == jp_purecpl) ) THEN 180 IF( calc_strair .OR. calc_Tsfc ) THEN 181 181 CALL ctl_stop( 'STOP', 'cice_sbc_init : Forcing option requires calc_strair=F and calc_Tsfc=F in ice_in' ) 182 182 ENDIF 183 ELSEIF 184 IF 183 ELSEIF(ksbc == jp_blk) THEN 184 IF( .NOT. (calc_strair .AND. calc_Tsfc) ) THEN 185 185 CALL ctl_stop( 'STOP', 'cice_sbc_init : Forcing option requires calc_strair=T and calc_Tsfc=T in ice_in' ) 186 186 ENDIF … … 202 202 203 203 CALL cice2nemo(aice,fr_i, 'T', 1. ) 204 IF 204 IF( (ksbc == jp_flx) .OR. (ksbc == jp_purecpl) ) THEN 205 205 DO jl=1,ncat 206 206 CALL cice2nemo(aicen(:,:,jl,:),a_i(:,:,jl), 'T', 1. ) … … 297 297 ! forced and coupled case 298 298 299 IF 299 IF( (ksbc == jp_flx).OR.(ksbc == jp_purecpl) ) THEN 300 300 301 301 ztmpn(:,:,:)=0.0 … … 322 322 323 323 ! Surface downward latent heat flux (CI_5) 324 IF 324 IF(ksbc == jp_flx) THEN 325 325 DO jl=1,ncat 326 326 ztmpn(:,:,jl)=qla_ice(:,:,1)*a_i(:,:,jl) … … 332 332 DO jj=1,jpj 333 333 DO ji=1,jpi 334 IF 334 IF(fr_i(ji,jj).eq.0.0) THEN 335 335 DO jl=1,ncat 336 336 ztmpn(ji,jj,jl)=0.0 … … 351 351 ! GBM conductive flux through ice (CI_6) 352 352 ! Convert to GBM 353 IF 353 IF(ksbc == jp_flx) THEN 354 354 ztmp(:,:) = botmelt(:,:,jl)*a_i(:,:,jl) 355 355 ELSE … … 360 360 ! GBM surface heat flux (CI_7) 361 361 ! Convert to GBM 362 IF 362 IF(ksbc == jp_flx) THEN 363 363 ztmp(:,:) = (topmelt(:,:,jl)+botmelt(:,:,jl))*a_i(:,:,jl) 364 364 ELSE … … 368 368 ENDDO 369 369 370 ELSE IF 370 ELSE IF(ksbc == jp_blk) THEN 371 371 372 372 ! Pass bulk forcing fields to CICE (which will calculate heat fluxes etc itself) … … 546 546 ! Freshwater fluxes 547 547 548 IF 548 IF(ksbc == jp_flx) THEN 549 549 ! Note that emp from the forcing files is evap*(1-aice)-(tprecip-aice*sprecip) 550 550 ! What we want here is evap*(1-aice)-tprecip*(1-aice) hence manipulation below … … 552 552 ! Better to use evap and tprecip? (but for now don't read in evap in this case) 553 553 emp(:,:) = emp(:,:)+fr_i(:,:)*(tprecip(:,:)-sprecip(:,:)) 554 ELSE IF 554 ELSE IF(ksbc == jp_blk) THEN 555 555 emp(:,:) = (1.0-fr_i(:,:))*emp(:,:) 556 ELSE IF 556 ELSE IF(ksbc == jp_purecpl) THEN 557 557 ! emp_tot is set in sbc_cpl_ice_flx (called from cice_sbc_in above) 558 558 ! This is currently as required with the coupling fields from the UM atmosphere … … 584 584 ! Scale qsr and qns according to ice fraction (bulk formulae only) 585 585 586 IF 586 IF(ksbc == jp_blk) THEN 587 587 qsr(:,:)=qsr(:,:)*(1.0-fr_i(:,:)) 588 588 qns(:,:)=qns(:,:)*(1.0-fr_i(:,:)) 589 589 ENDIF 590 590 ! Take into account snow melting except for fully coupled when already in qns_tot 591 IF 591 IF(ksbc == jp_purecpl) THEN 592 592 qsr(:,:)= qsr_tot(:,:) 593 593 qns(:,:)= qns_tot(:,:) … … 624 624 625 625 CALL cice2nemo(aice,fr_i,'T', 1. ) 626 IF 626 IF( (ksbc == jp_flx).OR.(ksbc == jp_purecpl) ) THEN 627 627 DO jl=1,ncat 628 628 CALL cice2nemo(aicen(:,:,jl,:),a_i(:,:,jl), 'T', 1. ) … … 879 879 ! B. Gather pn into global array (png) 880 880 881 IF 881 IF( jpnij > 1) THEN 882 882 CALL mppsync 883 883 CALL mppgather (pn,0,png) … … 892 892 ! (may be OK but not 100% sure) 893 893 894 IF 894 IF(nproc==0) THEN 895 895 ! pcg(:,:)=0.0 896 896 DO jn=1,jpnij … … 1015 1015 ! the lbclnk call on pn will replace these with sensible values 1016 1016 1017 IF 1017 IF(nproc==0) THEN 1018 1018 png(:,:,:)=0.0 1019 1019 DO jn=1,jpnij … … 1028 1028 ! C. Scatter png into NEMO field (pn) for each processor 1029 1029 1030 IF 1030 IF( jpnij > 1) THEN 1031 1031 CALL mppsync 1032 1032 CALL mppscatter (png,0,pn)
Note: See TracChangeset
for help on using the changeset viewer.