Changeset 1696
- Timestamp:
- 2009-10-30T19:03:06+01:00 (14 years ago)
- Location:
- trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/CONFIG/ORCA2_LIM/EXP00/namelist
r1634 r1696 195 195 cn_snd_crt_grid = 'T' ! 'T' 196 196 ! receive 197 cn_rcv_w10m = 'coupled' ! 'none' 'coupled' 197 cn_rcv_w10m = 'none' ! 'none' 'coupled' 198 cn_rcv_taumod = 'coupled' ! 'none' 'coupled' 198 199 cn_rcv_tau_nature = 'oce only' ! 'oce only' 'oce and ice' 'mixed oce-ice' 199 200 cn_rcv_tau_refere = 'cartesian' ! 'spherical' 'cartesian' -
trunk/CONFIG/ORCA2_LIM_PISCES/EXP00/namelist
r1634 r1696 196 196 ! receive 197 197 cn_rcv_w10m = 'coupled' ! 'none' 'coupled' 198 cn_rcv_taumod = 'coupled' ! 'none' 'coupled' 198 199 cn_rcv_tau_nature = 'oce only' ! 'oce only' 'oce and ice' 'mixed oce-ice' 199 200 cn_rcv_tau_refere = 'cartesian' ! 'spherical' 'cartesian' -
trunk/NEMO/OPA_SRC/SBC/sbccpl.F90
r1695 r1696 78 78 INTEGER, PARAMETER :: jpr_semp = 24 ! solid freshwater budget (sublimation - snow) 79 79 INTEGER, PARAMETER :: jpr_oemp = 25 ! ocean freshwater budget (evap - precip) 80 INTEGER, PARAMETER :: jpr_w10m = 26 ! 81 INTEGER, PARAMETER :: jpr_dqnsdt = 27 ! 82 INTEGER, PARAMETER :: jpr_rnf = 28 ! 83 INTEGER, PARAMETER :: jpr_cal = 29 ! 80 INTEGER, PARAMETER :: jpr_w10m = 26 ! 10m wind 81 INTEGER, PARAMETER :: jpr_dqnsdt = 27 ! d(Q non solar)/d(temperature) 82 INTEGER, PARAMETER :: jpr_rnf = 28 ! runoffs 83 INTEGER, PARAMETER :: jpr_cal = 29 ! calving 84 INTEGER, PARAMETER :: jpr_taum = 30 ! wind stress module 84 85 #if ! defined key_cpl_carbon_cycle 85 INTEGER, PARAMETER :: jprcv = 29 ! total number of fields recieved86 INTEGER, PARAMETER :: jprcv = 30 ! total number of fields received 86 87 #else 87 INTEGER, PARAMETER :: jpr_co2 = 3 088 INTEGER, PARAMETER :: jprcv = 3 0 ! total number of fields recieved88 INTEGER, PARAMETER :: jpr_co2 = 31 89 INTEGER, PARAMETER :: jprcv = 31 ! total number of fields received 89 90 #endif 90 91 INTEGER, PARAMETER :: jps_fice = 1 ! ice fraction … … 120 121 CHARACTER(len=100) :: cn_snd_co2 = 'none' ! 'none' or 'coupled' 121 122 #endif 122 ! Rec ieved from the atmosphere !123 ! Received from the atmosphere ! 123 124 CHARACTER(len=100) :: cn_rcv_tau_nature = 'oce only' ! 'oce only' 'oce and ice' or 'mixed oce-ice' 124 125 CHARACTER(len=100) :: cn_rcv_tau_refere = 'spherical' ! 'spherical' or 'cartesian' … … 132 133 CHARACTER(len=100) :: cn_rcv_rnf = 'coupled' ! 'coupled' 'climato' or 'mixed' 133 134 CHARACTER(len=100) :: cn_rcv_cal = 'none' ! 'none' or 'coupled' 135 CHARACTER(len=100) :: cn_rcv_taumod = 'none' ! 'none' or 'coupled' 134 136 #if defined key_cpl_carbon_cycle 135 137 CHARACTER(len=100) :: cn_rcv_co2 = 'none' ! 'none' or 'coupled' … … 205 207 WRITE(numout,*)' runoffs cn_rcv_rnf = ', cn_rcv_rnf 206 208 WRITE(numout,*)' calving cn_rcv_cal = ', cn_rcv_cal 209 WRITE(numout,*)' stress module cn_rcv_taumod = ', cn_rcv_taumod 207 210 WRITE(numout,*)' sent fields' 208 211 WRITE(numout,*)' surface temperature cn_snd_temperature = ', cn_snd_temperature … … 406 409 ! ! 10m wind module ! 407 410 ! ! ------------------------- ! 408 srcv(jpr_w10m)%clname = 'O_Wind10' ; IF( TRIM(cn_rcv_w10m) == 'coupled' ) srcv(jpr_w10m)%laction = .TRUE. 411 srcv(jpr_w10m)%clname = 'O_Wind10' ; IF( TRIM(cn_rcv_w10m ) == 'coupled' ) srcv(jpr_w10m)%laction = .TRUE. 412 ! 413 ! ! ------------------------- ! 414 ! ! wind stress module ! 415 ! ! ------------------------- ! 416 srcv(jpr_taum)%clname = 'O_TauMod' ; IF( TRIM(cn_rcv_taumod) == 'coupled' ) srcv(jpr_taum)%laction = .TRUE. 409 417 410 418 #if defined key_cpl_carbon_cycle … … 412 420 ! ! Atmospheric CO2 ! 413 421 ! ! ------------------------- ! 414 srcv(jpr_co2 )%clname = 'O_AtmCO2' ; IF( TRIM(cn_rcv_co2 ) == 'coupled' ) srcv(jpr_co2 )%laction = .TRUE.422 srcv(jpr_co2 )%clname = 'O_AtmCO2' ; IF( TRIM(cn_rcv_co2 ) == 'coupled' ) srcv(jpr_co2 )%laction = .TRUE. 415 423 #endif 416 424 … … 548 556 !! qns , qsr non solar and solar ocean heat fluxes ('ocean only case) 549 557 !! emp = emps evap. - precip. (- runoffs) (- calving) ('ocean only case) 550 !! wndm 10m wind speed !!!!gm to be checked551 558 !!---------------------------------------------------------------------- 552 559 INTEGER, INTENT(in) :: kt ! ocean model time step index … … 554 561 INTEGER, INTENT(in) :: k_ice ! ice management in the sbc (=0/1/2/3) 555 562 !! 563 LOGICAL :: llnewtx, llnewtau ! update wind stress components and module?? 556 564 INTEGER :: ji, jj, jn ! dummy loop indices 557 565 INTEGER :: isec ! number of seconds since nit000 (assuming rdttra did not change since nit000) … … 573 581 574 582 ! ! ========================= ! 575 IF( srcv(jpr_otx1)%laction ) THEN ! ocean stress!583 IF( srcv(jpr_otx1)%laction ) THEN ! ocean stress components ! 576 584 ! ! ========================= ! 577 585 ! define frcv(:,:,jpr_otx1) and frcv(:,:,jpr_oty1): stress at U/V point along model grid … … 618 626 CALL lbc_lnk( frcv(:,:,jpr_otx1), 'U', -1. ) ; CALL lbc_lnk( frcv(:,:,jpr_oty1), 'V', -1. ) 619 627 ENDIF 628 llnewtx = .TRUE. 629 ELSE 630 llnewtx = .FALSE. 620 631 ENDIF 621 632 ! ! ========================= ! … … 624 635 frcv(:,:,jpr_otx1) = 0.e0 ! here simply set to zero 625 636 frcv(:,:,jpr_oty1) = 0.e0 ! an external read in a file can be added instead 637 llnewtx = .TRUE. 626 638 ! 627 639 ENDIF 628 640 629 ! u(v)tau will be modified by ice model -> need to be reset before each call of the ice/fsbc630 IF( MOD( kt-1, k_fsbc ) == 0 ) THEN631 632 utau(:,:) = frcv(:,:,jpr_otx1)633 vtau(:,:) = frcv(:,:,jpr_oty1)634 ! 635 ! wind stress module at T-point641 ! ! ========================= ! 642 ! ! wind stress module ! (taum) 643 ! ! ========================= ! 644 ! 645 IF( .NOT. srcv(jpr_taum)%laction ) THEN ! compute wind stress module from its components if not received 646 ! => need to be done only when otx1 was changed 647 IF( llnewtx ) THEN 636 648 !CDIR NOVERRCHK 637 DO jj = 2, jpjm1649 DO jj = 2, jpjm1 638 650 !CDIR NOVERRCHK 639 DO ji = fs_2, fs_jpim1 ! vect. opt. 640 zzx = utau(ji-1,jj ) + utau(ji,jj) 641 zzy = vtau(ji ,jj-1) + vtau(ji,jj) 642 taum(ji,jj) = 0.5 * SQRT( zzx * zzx + zzy * zzy ) 651 DO ji = fs_2, fs_jpim1 ! vect. opt. 652 zzx = frcv(ji-1,jj ,jpr_otx1) + frcv(ji,jj,jpr_otx1) 653 zzy = frcv(ji ,jj-1,jpr_oty1) + frcv(ji,jj,jpr_oty1) 654 frcv(ji,jj,jpr_taum) = 0.5 * SQRT( zzx * zzx + zzy * zzy ) 655 END DO 643 656 END DO 644 END DO 645 CALL lbc_lnk( taum(:,:), 'T', 1. ) 646 ! 647 ! wind speed module at T-point 648 IF( .NOT. srcv(jpr_w10m)%laction ) THEN 657 CALL lbc_lnk( frcv(:,:,jpr_taum), 'T', 1. ) 658 llnewtau = .TRUE. 659 ELSE 660 llnewtau = .FALSE. 661 ENDIF 662 ELSE 663 llnewtau = nrcvinfo(jpr_taum) == PRISM_Recvd .OR. nrcvinfo(jpr_taum) == PRISM_FromRest .OR. & 664 & nrcvinfo(jpr_taum) == PRISM_RecvOut .OR. nrcvinfo(jpr_taum) == PRISM_FromRestOut 665 ENDIF 666 667 ! ! ========================= ! 668 ! ! 10 m wind speed ! (wndm) 669 ! ! ========================= ! 670 ! 671 IF( .NOT. srcv(jpr_w10m)%laction ) THEN ! compute wind spreed from wind stress module if not received 672 ! => need to be done only when taumod was changed 673 IF( llnewtau ) THEN 649 674 zcoef = 1. / ( zrhoa * zcdrag ) 650 675 !CDIR NOVERRCHK … … 652 677 !CDIR NOVERRCHK 653 678 DO ji = 1, jpi 654 wndm(ji,jj) = SQRT( taum(ji,jj) * zcoef )679 frcv(ji,jj,jpr_w10m) = SQRT( frcv(ji,jj,jpr_taum) * zcoef ) 655 680 END DO 656 681 END DO 657 682 ENDIF 683 ENDIF 684 685 ! u(v)tau and taum will be modified by ice model (wndm will be changed by PISCES) 686 ! -> need to be reset before each call of the ice/fsbc 687 IF( MOD( kt-1, k_fsbc ) == 0 ) THEN 688 ! 689 utau(:,:) = frcv(:,:,jpr_otx1) 690 vtau(:,:) = frcv(:,:,jpr_oty1) 691 taum(:,:) = frcv(:,:,jpr_taum) 692 wndm(:,:) = frcv(:,:,jpr_w10m) 658 693 ! 659 694 ENDIF … … 954 989 !! ===>> CAUTION here this changes the net heat flux received from 955 990 !! the atmosphere 956 !! * 10m wind module (wndm)957 991 !! 958 992 !! N.B. - fields over sea-ice are passed in argument so that … … 974 1008 !! pdqns_ice d(non-solar heat flux)/d(Temperature) over the ice 975 1009 !! sprecip solid precipitation over the ocean 976 !! wndm 10m wind module977 1010 !!---------------------------------------------------------------------- 978 1011 REAL(wp), INTENT(in ), DIMENSION(jpi,jpj,jpl) :: p_frld ! lead fraction [0 to 1] … … 1081 1114 END SELECT 1082 1115 1083 1084 1116 SELECT CASE( TRIM( cn_rcv_dqnsdt ) ) 1085 1117 CASE ('coupled') … … 1087 1119 END SELECT 1088 1120 1089 1090 ! ! ========================= !1091 ! ! 10 m wind speed ! (wndm)1092 ! ! ========================= !1093 !1094 IF( srcv(jpr_w10m )%laction ) wndm(:,:) = frcv(:,:,jpr_w10m)1095 !1096 1121 END SUBROUTINE sbc_cpl_ice_flx 1097 1122
Note: See TracChangeset
for help on using the changeset viewer.