New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 871 – NEMO

Changeset 871


Ignore:
Timestamp:
2008-03-27T17:32:35+01:00 (16 years ago)
Author:
ctlod
Message:

dev_001_SBC: modification to allow same results as the reference flxblk.F90, see ticket:#96

Location:
branches/dev_001_SBC/NEMO/OPA_SRC/SBC
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/dev_001_SBC/NEMO/OPA_SRC/SBC/sbcblk_clio.F90

    r840 r871  
    3838   PRIVATE 
    3939 
    40    PUBLIC sbc_blk_clio        ! routine called by flx.F90  
    41    PUBLIC blk_ice_clio        ! routine called by flx.F90  
     40   PUBLIC sbc_blk_clio        ! routine called by sbcmod.F90  
     41   PUBLIC blk_ice_clio        ! routine called by sbcice_lim.F90  
    4242 
    4343   INTEGER , PARAMETER ::   jpfld   = 7           ! maximum number of files to read  
     
    6060   INTEGER, PARAMETER  ::   jpintsr = 24          ! number of time step between sunrise and sunset 
    6161   !                                              ! uses for heat flux computation 
    62    LOGICAL ::   lbulk_init = .TRUE.   ! flag, bulk initialization done or not) 
     62   LOGICAL ::   lbulk_init = .TRUE.               ! flag, bulk initialization done or not) 
    6363 
    6464   REAL(wp) ::   cai = 1.40e-3 ! best estimate of atm drag in order to get correct FS export in ORCA2-LIM 
     
    9393   SUBROUTINE sbc_blk_clio( kt ) 
    9494      !!--------------------------------------------------------------------- 
    95       !!                    ***  ROUTINE sbc_blk_core  *** 
     95      !!                    ***  ROUTINE sbc_blk_clio  *** 
    9696      !!                    
    9797      !! ** Purpose :   provide at each time step the surface ocean fluxes 
     
    123123      INTEGER, INTENT( in  ) ::   kt   ! ocean time step 
    124124      !! 
    125       INTEGER  ::   jf       ! dummy indices 
    126       INTEGER  ::   ierror   ! return error code 
     125      INTEGER  ::   jf, ifpr, jfpr     ! dummy indices 
     126      INTEGER  ::   ierror             ! return error code 
    127127      !! 
    128128      CHARACTER(len=100) ::  cn_dir                            !   Root directory for location of CLIO files 
     
    131131      TYPE(FLD_N) ::   sn_humi, sn_ccov, sn_prec               !   "                                 " 
    132132      !! 
    133       NAMELIST/namsbc_core/ cn_dir, sn_wndi, sn_wndj, sn_wndm, sn_humi,   & 
     133      NAMELIST/namsbc_clio/ cn_dir, sn_wndi, sn_wndj, sn_wndm, sn_humi,   & 
    134134         &                          sn_ccov, sn_tair, sn_prec 
    135135      !!--------------------------------------------------------------------- 
     
    152152         sn_prec = FLD_N( 'precip'  ,   -12.    ,  'precip'  ,  .TRUE.    ,    0   ,     0    )  
    153153 
    154          REWIND( numnam )                    ! ... read in namlist namsbc_core 
    155          READ  ( numnam, namsbc_core ) 
     154         REWIND( numnam )                    ! ... read in namlist namsbc_clio 
     155         READ  ( numnam, namsbc_clio ) 
    156156 
    157157         ! store namelist information in an array 
     
    179179            WRITE(numout,*) 'sbc_blk_clio : flux formulattion for ocean surface boundary condition' 
    180180            WRITE(numout,*) '~~~~~~~~~~~~ ' 
    181             WRITE(numout,*) '          namsbc_core Namelist' 
     181            WRITE(numout,*) '          namsbc_clio Namelist' 
    182182            WRITE(numout,*) '          list of files and frequency (>0: in hours ; <0 in months)' 
    183183            DO jf = 1, jpfld 
     
    198198      CALL fld_read( kt, nn_fsbc, sf )                ! input fields provided at the current time-step 
    199199      ! 
     200      IF(lwp .AND. nitend-nit000 <= 100 ) THEN 
     201         IF( MOD( kt-1, nn_fsbc ) == 0 ) THEN 
     202            WRITE(numout,*) 
     203            WRITE(numout,*) ' read monthly CLIO fluxes: ok, kt: ', kt 
     204            WRITE(numout,*) 
     205            ifpr = INT(jpi/8)      ;      jfpr = INT(jpj/10) 
     206            WRITE(numout,*) TRIM(sf(jp_wndi)%clvar),' day: ',ndastp 
     207            CALL prihre( sf(jp_wndi)%fnow,jpi,jpj,1,jpi,ifpr,1,jpj,jfpr,0.,numout ) 
     208            WRITE(numout,*) 
     209            WRITE(numout,*) TRIM(sf(jp_wndj)%clvar),' day: ',ndastp 
     210            CALL prihre( sf(jp_wndj)%fnow,jpi,jpj,1,jpi,ifpr,1,jpj,jfpr,0.,numout ) 
     211            WRITE(numout,*) 
     212            WRITE(numout,*) TRIM(sf(jp_humi)%clvar),' day: ',ndastp 
     213            CALL prihre( sf(jp_humi)%fnow,jpi,jpj,1,jpi,ifpr,1,jpj,jfpr,0.,numout ) 
     214            WRITE(numout,*) 
     215            WRITE(numout,*) TRIM(sf(jp_wndm)%clvar),' day: ',ndastp 
     216            CALL prihre( sf(jp_wndm)%fnow,jpi,jpj,1,jpi,ifpr,1,jpj,jfpr,0.,numout ) 
     217            WRITE(numout,*) 
     218            WRITE(numout,*) TRIM(sf(jp_ccov)%clvar),' day: ',ndastp 
     219            CALL prihre( sf(jp_ccov)%fnow,jpi,jpj,1,jpi,ifpr,1,jpj,jfpr,0.,numout ) 
     220            WRITE(numout,*) 
     221            WRITE(numout,*) TRIM(sf(jp_prec)%clvar),' day: ',ndastp 
     222            CALL prihre( sf(jp_prec)%fnow,jpi,jpj,1,jpi,ifpr,1,jpj,jfpr,0.,numout ) 
     223            WRITE(numout,*) 
     224            WRITE(numout,*) TRIM(sf(jp_tair)%clvar),' day: ',ndastp 
     225            CALL prihre( sf(jp_tair)%fnow,jpi,jpj,1,jpi,ifpr,1,jpj,jfpr,0.,numout ) 
     226            WRITE(numout,*) 
     227         ENDIF 
     228      ENDIF 
     229 
    200230      IF( MOD( kt - 1, nn_fsbc ) == 0 ) THEN 
    201231          CALL blk_oce_clio( sst_m, ssu_m, ssv_m )    ! compute the surface ocean fluxes using CLIO bulk formulea 
     
    261291      DO jj = 1 , jpj 
    262292         DO ji = 1, jpi 
    263             zcoef = 1.3 * cao * SQRT(  sf(jp_wndi)%fnow(ji,jj)*sf(jp_wndi)%fnow(ji,jj)   & 
    264                &                     + sf(jp_wndj)%fnow(ji,jj)*sf(jp_wndj)%fnow(ji,jj) ) 
    265             utau(ji,jj) = 1.3 * cao * zcoef * sf(jp_wndi)%fnow(ji,jj) 
    266             vtau(ji,jj) = 1.3 * cao * zcoef * sf(jp_wndj)%fnow(ji,jj) 
     293            utau(ji,jj) = sf(jp_wndi)%fnow(ji,jj) 
     294            vtau(ji,jj) = sf(jp_wndj)%fnow(ji,jj) 
    267295         END DO 
    268296      END DO 
     
    615643         p_dqla(:,:,jl) = p_dqla(:,:,jl) * tmask(:,:,1) 
    616644      END DO 
     645 
    617646   END SUBROUTINE blk_ice_clio 
    618647 
  • branches/dev_001_SBC/NEMO/OPA_SRC/SBC/sbcice_lim.F90

    r840 r871  
    120120         CALL blk_albedo( alb_ice_os , alb_oce_os , alb_ice_cs , alb_oce_cs ) 
    121121 
    122  
    123122         ! ... surface ice boundary condition (stress at I-point, latente, sensible, etc.... 
    124123         !!gm preciser la list exacte 
     
    142141            CALL prt_ctl( tab2d_1=tprecip  ,clinfo1=' precip   : ', tab2d_2=sprecip  , clinfo2=' Snow     : ' ) 
    143142            CALL prt_ctl( tab2d_1=utaui_ice,clinfo1=' utaui_ice: ', tab2d_2=vtaui_ice, clinfo2=' vtaui_ice: ' ) 
     143            CALL prt_ctl( tab2d_1=sst_m    ,clinfo1=' sst      : ', tab2d_2=sss_m    , clinfo2=' sss      : ' ) 
     144            CALL prt_ctl( tab2d_1=ui_oce   ,clinfo1=' u_io     : ', tab2d_2=vi_oce   , clinfo2=' v_io     : ' ) 
    144145            CALL prt_ctl( tab2d_1=hsnif    ,clinfo1=' hsnif  1 : ', tab2d_2=hicif    , clinfo2=' hicif    : ' ) 
    145146            CALL prt_ctl( tab2d_1=frld     ,clinfo1=' frld   1 : ', tab2d_2=sist     , clinfo2=' sist     : ' ) 
Note: See TracChangeset for help on using the changeset viewer.