Changeset 9818
- Timestamp:
- 2018-06-21T12:32:55+02:00 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/dev_r5518_nemo2cice_prints/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_cice.F90
r9817 r9818 218 218 ! there is no restart file. 219 219 ! Values from a CICE restart file would overwrite this 220 CALL nemo2cice( tsn(:,:,1,jp_tem) , sst , 'T' , 1. )220 CALL nemo2cice( tsn(:,:,1,jp_tem) , sst , 'T' , 1., 'sst1') 221 221 #endif 222 222 … … 225 225 ! calculate surface freezing temperature and send to CICE 226 226 CALL eos_fzp(sss_m(:,:), sstfrz(:,:), fsdept_n(:,:,1)) 227 CALL nemo2cice(sstfrz,Tf, 'T', 1. )227 CALL nemo2cice(sstfrz,Tf, 'T', 1., 'tfl' ) 228 228 229 229 CALL cice2nemo(aice,fr_i, 'T', 1. ) … … 353 353 ENDDO 354 354 ENDDO 355 CALL nemo2cice(ztmp,strax,'F', -1. )355 CALL nemo2cice(ztmp,strax,'F', -1. , 'strax') 356 356 357 357 ! y comp of wind stress (CI_2) … … 363 363 ENDDO 364 364 ENDDO 365 CALL nemo2cice(ztmp,stray,'F', -1. )365 CALL nemo2cice(ztmp,stray,'F', -1. , 'stray') 366 366 367 367 … … 392 392 393 393 DO jl=1,ncat 394 CALL nemo2cice(ztmpn(:,:,jl),flatn_f(:,:,jl,:),'T', 1. )394 CALL nemo2cice(ztmpn(:,:,jl),flatn_f(:,:,jl,:),'T', 1., 'flatn' ) 395 395 396 396 ! GBM conductive flux through ice (CI_6) … … 401 401 ztmp(:,:) = botmelt(:,:,jl) 402 402 ENDIF 403 CALL nemo2cice(ztmp,fcondtopn_f(:,:,jl,:),'T', 1. )403 CALL nemo2cice(ztmp,fcondtopn_f(:,:,jl,:),'T', 1., 'fcondtopn' ) 404 404 405 405 ! GBM surface heat flux (CI_7) … … 410 410 ztmp(:,:) = (topmelt(:,:,jl)+botmelt(:,:,jl)) 411 411 ENDIF 412 CALL nemo2cice(ztmp,fsurfn_f(:,:,jl,:),'T', 1. )412 CALL nemo2cice(ztmp,fsurfn_f(:,:,jl,:),'T', 1., 'fsurfn_f' ) 413 413 ENDDO 414 414 … … 418 418 ! x comp and y comp of atmosphere surface wind (CICE expects on T points) 419 419 ztmp(:,:) = wndi_ice(:,:) 420 CALL nemo2cice(ztmp,uatm,'T', -1. )420 CALL nemo2cice(ztmp,uatm,'T', -1., 'uatm' ) 421 421 ztmp(:,:) = wndj_ice(:,:) 422 CALL nemo2cice(ztmp,vatm,'T', -1. )422 CALL nemo2cice(ztmp,vatm,'T', -1. , 'vatm') 423 423 ztmp(:,:) = SQRT ( wndi_ice(:,:)**2 + wndj_ice(:,:)**2 ) 424 CALL nemo2cice(ztmp,wind,'T', 1. ) ! Wind speed (m/s)424 CALL nemo2cice(ztmp,wind,'T', 1., 'wind' ) ! Wind speed (m/s) 425 425 ztmp(:,:) = qsr_ice(:,:,1) 426 CALL nemo2cice(ztmp,fsw,'T', 1. ) ! Incoming short-wave (W/m^2)426 CALL nemo2cice(ztmp,fsw,'T', 1., 'fsw' ) ! Incoming short-wave (W/m^2) 427 427 ztmp(:,:) = qlw_ice(:,:,1) 428 CALL nemo2cice(ztmp,flw,'T', 1. ) ! Incoming long-wave (W/m^2)428 CALL nemo2cice(ztmp,flw,'T', 1., 'flw' ) ! Incoming long-wave (W/m^2) 429 429 ztmp(:,:) = tatm_ice(:,:) 430 CALL nemo2cice(ztmp,Tair,'T', 1. ) ! Air temperature (K)431 CALL nemo2cice(ztmp,potT,'T', 1. ) ! Potential temp (K)430 CALL nemo2cice(ztmp,Tair,'T', 1., 'tair' ) ! Air temperature (K) 431 CALL nemo2cice(ztmp,potT,'T', 1. , 'pott') ! Potential temp (K) 432 432 ! Following line uses MAX(....) to avoid problems if tatm_ice has unset halo rows 433 433 ztmp(:,:) = 101000. / ( 287.04 * MAX(1.0,tatm_ice(:,:)) ) 434 434 ! Constant (101000.) atm pressure assumed 435 CALL nemo2cice(ztmp,rhoa,'T', 1. ) ! Air density (kg/m^3)435 CALL nemo2cice(ztmp,rhoa,'T', 1., 'rhoa' ) ! Air density (kg/m^3) 436 436 ztmp(:,:) = qatm_ice(:,:) 437 CALL nemo2cice(ztmp,Qa,'T', 1. ) ! Specific humidity (kg/kg)437 CALL nemo2cice(ztmp,Qa,'T', 1., 'qa' ) ! Specific humidity (kg/kg) 438 438 ztmp(:,:)=10.0 439 CALL nemo2cice(ztmp,zlvl,'T', 1. ) ! Atmos level height (m)439 CALL nemo2cice(ztmp,zlvl,'T', 1., 'zlvl' ) ! Atmos level height (m) 440 440 441 441 ! May want to check all values are physically realistic (as in CICE routine … … 444 444 ! Divide shortwave into spectral bands (as in prepare_forcing) 445 445 ztmp(:,:)=qsr_ice(:,:,1)*frcvdr ! visible direct 446 CALL nemo2cice(ztmp,swvdr,'T', 1. )446 CALL nemo2cice(ztmp,swvdr,'T', 1., 'swvdr' ) 447 447 ztmp(:,:)=qsr_ice(:,:,1)*frcvdf ! visible diffuse 448 CALL nemo2cice(ztmp,swvdf,'T', 1. )448 CALL nemo2cice(ztmp,swvdf,'T', 1., 'swvdf' ) 449 449 ztmp(:,:)=qsr_ice(:,:,1)*frcidr ! near IR direct 450 CALL nemo2cice(ztmp,swidr,'T', 1. )450 CALL nemo2cice(ztmp,swidr,'T', 1., 'swidr' ) 451 451 ztmp(:,:)=qsr_ice(:,:,1)*frcidf ! near IR diffuse 452 CALL nemo2cice(ztmp,swidf,'T', 1. )452 CALL nemo2cice(ztmp,swidf,'T', 1., 'swidf' ) 453 453 454 454 ENDIF … … 458 458 IF( iom_use('snowpre') ) CALL iom_put('snowpre',MAX( (1.0-fr_i(:,:))*sprecip(:,:) ,0.0)) !!Joakim edit 459 459 ztmp(:,:)=MAX(fr_i(:,:)*sprecip(:,:),0.0) 460 CALL nemo2cice(ztmp,fsnow,'T', 1. )460 CALL nemo2cice(ztmp,fsnow,'T', 1., 'fsnow' ) 461 461 462 462 ! Rainfall 463 463 IF( iom_use('precip') ) CALL iom_put('precip', (1.0-fr_i(:,:))*(tprecip(:,:)-sprecip(:,:)) ) !!Joakim edit 464 464 ztmp(:,:)=fr_i(:,:)*(tprecip(:,:)-sprecip(:,:)) 465 CALL nemo2cice(ztmp,frain,'T', 1. )465 CALL nemo2cice(ztmp,frain,'T', 1., 'frain' ) 466 466 467 467 ! Recalculate freezing temperature and send to CICE 468 468 CALL eos_fzp(sss_m(:,:), sstfrz(:,:), fsdept_n(:,:,1)) 469 CALL nemo2cice(sstfrz,Tf,'T', 1. )469 CALL nemo2cice(sstfrz,Tf,'T', 1., 'Tf' ) 470 470 471 471 ! Freezing/melting potential 472 472 ! Calculated over NEMO leapfrog timestep (hence 2*dt) 473 473 nfrzmlt(:,:)=rau0*rcp*fse3t_m(:,:)*(sstfrz(:,:)-sst_m(:,:))/(2.0*dt) 474 CALL nemo2cice(nfrzmlt,frzmlt,'T', 1. )474 CALL nemo2cice(nfrzmlt,frzmlt,'T', 1., 'frzmlt' ) 475 475 476 476 ! SST and SSS 477 477 478 CALL nemo2cice(sst_m,sst,'T', 1. )479 CALL nemo2cice(sss_m,sss,'T', 1. )478 CALL nemo2cice(sst_m,sst,'T', 1.,'sst' ) 479 CALL nemo2cice(sss_m,sss,'T', 1.,'sss' ) 480 480 481 481 IF( ksbc == jp_purecpl ) THEN 482 482 ! Sea ice surface skin temperature 483 483 DO jl=1,ncat 484 CALL nemo2cice(tsfc_ice(:,:,jl), trcrn(:,:,nt_tsfc,jl,:),'T',1. )484 CALL nemo2cice(tsfc_ice(:,:,jl), trcrn(:,:,nt_tsfc,jl,:),'T',1., 'trcrn') 485 485 ENDDO 486 486 ENDIF … … 493 493 ENDDO 494 494 ENDDO 495 CALL nemo2cice(ztmp,uocn,'F', -1. )495 CALL nemo2cice(ztmp,uocn,'F', -1., 'uocn' ) 496 496 497 497 ! V point to F point … … 501 501 ENDDO 502 502 ENDDO 503 CALL nemo2cice(ztmp,vocn,'F', -1. )503 CALL nemo2cice(ztmp,vocn,'F', -1., 'vocn' ) 504 504 505 505 IF( nn_ice_embd == 2 ) THEN !== embedded sea ice: compute representative ice top surface ==! … … 529 529 ENDDO 530 530 ENDDO 531 CALL nemo2cice(ztmp,ss_tltx,'F', -1. )531 CALL nemo2cice(ztmp,ss_tltx,'F', -1., 'ss_tltx' ) 532 532 533 533 ! T point to F point … … 539 539 ENDDO 540 540 ENDDO 541 CALL nemo2cice(ztmp,ss_tlty,'F', -1. )541 CALL nemo2cice(ztmp,ss_tlty,'F', -1., 'ss_tlty' ) 542 542 543 543 CALL wrk_dealloc( jpi,jpj, ztmp, zpice ) … … 925 925 END SUBROUTINE cice_sbc_force 926 926 927 SUBROUTINE nemo2cice( pn, pc, cd_type, psgn )927 SUBROUTINE nemo2cice( pn, pc, cd_type, psgn, varname) 928 928 !!--------------------------------------------------------------------- 929 929 !! *** ROUTINE nemo2cice *** … … 957 957 #endif 958 958 REAL (kind=dbl_kind), dimension(nx_block,ny_block,max_blocks) :: pc 959 CHARACTER(len=10), INTENT( in ) :: varname 959 960 INTEGER (int_kind) :: & 960 961 field_type, &! id for type of field (scalar, vector, angle) … … 1034 1035 CALL scatter_global(pc, pcg, 0, distrb_info, grid_loc, field_type) 1035 1036 #endif 1037 1038 IF ( ln_ctl ) THEN 1039 WRITE(numout,*)'nemo2cice: ',varname,' min,max = ',MINVAL(pc(:,:,:)), MAXVAL(pc(:,:,:)) 1040 CALL flush(numout) 1041 ENDIF 1036 1042 1037 1043 END SUBROUTINE nemo2cice
Note: See TracChangeset
for help on using the changeset viewer.