Changeset 1308 for trunk/NEMO/OPA_SRC/SBC/sbccpl.F90
- Timestamp:
- 2009-02-16T10:41:26+01:00 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/OPA_SRC/SBC/sbccpl.F90
r1249 r1308 356 356 ! 357 357 ! non solar sensitivity mandatory for ice model 358 IF( TRIM( cn_rcv_dqnsdt ) == 'none' . and. k_ice /= 0 ) &359 358 IF( TRIM( cn_rcv_dqnsdt ) == 'none' .AND. k_ice /= 0 ) & 359 CALL ctl_stop( 'sbc_cpl_init: cn_rcv_dqnsdt must be coupled in namsbc_cpl namelist' ) 360 360 ! non solar sensitivity mandatory for mixed oce-ice solar radiation coupling technique 361 IF( TRIM( cn_rcv_dqnsdt ) == 'none' . and. TRIM( cn_rcv_qns ) == 'mixed oce-ice' ) &362 361 IF( TRIM( cn_rcv_dqnsdt ) == 'none' .AND. TRIM( cn_rcv_qns ) == 'mixed oce-ice' ) & 362 CALL ctl_stop( 'sbc_cpl_init: namsbc_cpl namelist mismatch between cn_rcv_qns and cn_rcv_dqnsdt' ) 363 363 ! ! ------------------------- ! 364 364 ! ! Ice Qsr penetration ! … … 395 395 CASE( 'weighted oce and ice' ) ; ssnd( (/jps_toce, jps_tice/) )%laction = .TRUE. 396 396 CASE( 'mixed oce-ice' ) ; ssnd( jps_tmix )%laction = .TRUE. 397 CASE default ; CALL ctl_stop( 'sbc_cpl_init: wrong definition of cn_snd_temperature' ) 397 398 END SELECT 398 399 … … 406 407 CASE( 'weighted ice' ) ; ssnd(jps_albice)%laction = .TRUE. 407 408 CASE( 'mixed oce-ice' ) ; ssnd(jps_albmix)%laction = .TRUE. 409 CASE default ; CALL ctl_stop( 'sbc_cpl_init: wrong definition of cn_snd_albedo' ) 408 410 END SELECT 409 411 ! … … 412 414 ! 2. receiving mixed oce-ice solar radiation 413 415 IF ( TRIM ( cn_snd_albedo ) == 'mixed oce-ice' .OR. TRIM ( cn_rcv_qsr ) == 'mixed oce-ice' ) THEN 414 CALL albedo_oce( zaos, zacs )415 ! Due to lack of information on nebulosity : mean clear/overcast sky416 albedo_oce_mix(:,:) = ( zacs(:,:) + zaos(:,:) ) * 0.5416 CALL albedo_oce( zaos, zacs ) 417 ! Due to lack of information on nebulosity : mean clear/overcast sky 418 albedo_oce_mix(:,:) = ( zacs(:,:) + zaos(:,:) ) * 0.5 417 419 ENDIF 418 420 … … 446 448 CASE( 'weighted oce and ice' ) ! nothing to do 447 449 CASE( 'mixed oce-ice' ) ; ssnd(jps_ivx1:jps_ivz1)%laction = .FALSE. 450 CASE default ; CALL ctl_stop( 'sbc_cpl_init: wrong definition of cn_snd_crt(1)' ) 448 451 END SELECT 449 452 … … 597 600 CASE( 'conservative' ) 598 601 emp(:,:) = frcv(:,:,jpr_tevp) - ( frcv(:,:,jpr_rain) + frcv(:,:,jpr_snow) ) 599 CASE( 'oce anonly', 'oce and ice' )602 CASE( 'oce only', 'oce and ice' ) 600 603 emp(:,:) = frcv(:,:,jpr_oemp) 604 CASE default 605 CALL ctl_stop( 'sbc_cpl_rcv: wrong definition of cn_rcv_emp' ) 601 606 END SELECT 602 607 ! … … 1006 1011 ztmp2(:,:) = tn_ice(:,:) * fr_i(:,:) 1007 1012 CASE( 'mixed oce-ice' ) ; ztmp1(:,:) = ( tn(:,:,1) + rt0 ) * zfr_l(:,:) + tn_ice(:,:) * fr_i(:,:) 1013 CASE default ; CALL ctl_stop( 'sbc_cpl_snd: wrong definition of cn_snd_temperature' ) 1008 1014 END SELECT 1009 1015 IF( ssnd(jps_toce)%laction ) CALL cpl_prism_snd( jps_toce, isec, ztmp1, info ) … … 1037 1043 DO ji = fs_2, fs_jpim1 ! vector opt. 1038 1044 zotx1(ji,jj) = 0.5 * ( un(ji,jj,1) + un(ji-1,jj ,1) ) 1039 zoty1(ji,jj) = 0.5 * ( vn(ji,jj,1) + un(ji ,jj-1,1) )1045 zoty1(ji,jj) = 0.5 * ( vn(ji,jj,1) + vn(ji ,jj-1,1) ) 1040 1046 END DO 1041 1047 END DO … … 1045 1051 DO ji = fs_2, fs_jpim1 ! vector opt. 1046 1052 zotx1(ji,jj) = 0.5 * ( un (ji,jj,1) + un (ji-1,jj ,1) ) * zfr_l(ji,jj) 1047 zoty1(ji,jj) = 0.5 * ( vn (ji,jj,1) + un (ji ,jj-1,1) ) * zfr_l(ji,jj)1048 zitx1(ji,jj) = 0.5 * ( utaui_ice(ji,jj ) + utaui_ice(ji-1,jj )) * fr_i(ji,jj)1049 zity1(ji,jj) = 0.5 * ( vtaui_ice(ji,jj ) + vtaui_ice(ji ,jj-1)) * fr_i(ji,jj)1053 zoty1(ji,jj) = 0.5 * ( vn (ji,jj,1) + vn (ji ,jj-1,1) ) * zfr_l(ji,jj) 1054 zitx1(ji,jj) = 0.5 * ( utaui_ice(ji,jj ) + utaui_ice(ji-1,jj ) ) * fr_i(ji,jj) 1055 zity1(ji,jj) = 0.5 * ( vtaui_ice(ji,jj ) + vtaui_ice(ji ,jj-1 ) ) * fr_i(ji,jj) 1050 1056 END DO 1051 1057 END DO … … 1054 1060 DO ji = fs_2, fs_jpim1 ! vector opt. 1055 1061 zotx1(ji,jj) = 0.5 * ( un(ji,jj,1) + un(ji-1,jj-1,1) ) * zfr_l(ji,jj) 1056 zoty1(ji,jj) = 0.5 * ( vn(ji,jj,1) + un(ji ,jj-1,1) ) * zfr_l(ji,jj)1062 zoty1(ji,jj) = 0.5 * ( vn(ji,jj,1) + vn(ji ,jj-1,1) ) * zfr_l(ji,jj) 1057 1063 zitx1(ji,jj) = 0.25 * ( utaui_ice(ji+1,jj+1) + utaui_ice(ji,jj+1) & 1058 1064 & + utaui_ice(ji+1,jj ) + utaui_ice(ji,jj ) ) * fr_i(ji,jj) … … 1066 1072 IF( cice_grid == 'C' ) THEN ! 'C'-grid ice velocity 1067 1073 DO jj = 2, jpjm1 1068 DO ji = fs_2, fs_jpim1 ! vector opt.1069 zotx1(ji,jj) = 0.5 * ( un (ji,jj,1) + un (ji-1,jj ,1) ) * zfr_l(ji,jj) &1070 + 0.5 * ( utaui_ice(ji,jj) + utaui_ice(ji-1,jj )) * fr_i(ji,jj)1071 zoty1(ji,jj) = 0.5 * ( vn (ji,jj,1) + un (ji ,jj-1,1) ) * zfr_l(ji,jj) &1072 + 0.5 * ( vtaui_ice(ji,jj) + vtaui_ice(ji ,jj-1)) * fr_i(ji,jj)1073 END DO1074 DO ji = fs_2, fs_jpim1 ! vector opt. 1075 zotx1(ji,jj) = 0.5 * ( un (ji,jj,1) + un (ji-1,jj ,1) ) * zfr_l(ji,jj) & 1076 & + 0.5 * ( utaui_ice(ji,jj ) + utaui_ice(ji-1,jj ) ) * fr_i(ji,jj) 1077 zoty1(ji,jj) = 0.5 * ( vn (ji,jj,1) + vn (ji ,jj-1,1) ) * zfr_l(ji,jj) & 1078 & + 0.5 * ( vtaui_ice(ji,jj ) + vtaui_ice(ji ,jj-1 ) ) * fr_i(ji,jj) 1079 END DO 1074 1080 END DO 1075 1081 ELSE ! 'B'-grid ice velocity … … 1077 1083 DO ji = fs_2, fs_jpim1 ! vector opt. 1078 1084 zotx1(ji,jj) = 0.5 * ( un(ji,jj,1) + un(ji-1,jj-1,1) ) * zfr_l(ji,jj) & 1079 + 0.25 * ( utaui_ice(ji+1,jj+1) + utaui_ice(ji,jj+1) &1080 + utaui_ice(ji+1,jj ) + utaui_ice(ji,jj ) ) * fr_i(ji,jj)1081 zoty1(ji,jj) = 0.5 * ( vn(ji,jj,1) + un(ji ,jj-1,1) ) * zfr_l(ji,jj) &1082 + 0.25 * ( vtaui_ice(ji+1,jj+1) + vtaui_ice(ji,jj+1) &1083 + vtaui_ice(ji+1,jj ) + vtaui_ice(ji,jj ) ) * fr_i(ji,jj)1085 & + 0.25 * ( utaui_ice(ji+1,jj+1) + utaui_ice(ji,jj+1) & 1086 & + utaui_ice(ji+1,jj ) + utaui_ice(ji,jj ) ) * fr_i(ji,jj) 1087 zoty1(ji,jj) = 0.5 * ( vn(ji,jj,1) + vn(ji ,jj-1,1) ) * zfr_l(ji,jj) & 1088 & + 0.25 * ( vtaui_ice(ji+1,jj+1) + vtaui_ice(ji,jj+1) & 1089 & + vtaui_ice(ji+1,jj ) + vtaui_ice(ji,jj ) ) * fr_i(ji,jj) 1084 1090 END DO 1085 1091 END DO
Note: See TracChangeset
for help on using the changeset viewer.