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 1308 – NEMO

Changeset 1308


Ignore:
Timestamp:
2009-02-16T10:41:26+01:00 (15 years ago)
Author:
smasson
Message:

bugfix related to surface current in sbccpl + other typos, see ticket:334

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMO/OPA_SRC/SBC/sbccpl.F90

    r1249 r1308  
    356356      ! 
    357357      ! non solar sensitivity mandatory for ice model 
    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' ) 
     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' ) 
    360360      ! 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             CALL ctl_stop( 'sbc_cpl_init: namsbc_cpl namelist mismatch between cn_rcv_qns and cn_rcv_dqnsdt' ) 
     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' ) 
    363363      !                                                      ! ------------------------- ! 
    364364      !                                                      !    Ice Qsr penetration    !    
     
    395395      CASE( 'weighted oce and ice' )   ;   ssnd( (/jps_toce, jps_tice/) )%laction = .TRUE. 
    396396      CASE( 'mixed oce-ice'        )   ;   ssnd(   jps_tmix             )%laction = .TRUE. 
     397      CASE default   ;   CALL ctl_stop( 'sbc_cpl_init: wrong definition of cn_snd_temperature' ) 
    397398      END SELECT 
    398399      
     
    406407      CASE( 'weighted ice'  )   ;   ssnd(jps_albice)%laction = .TRUE. 
    407408      CASE( 'mixed oce-ice' )   ;   ssnd(jps_albmix)%laction = .TRUE. 
     409      CASE default   ;   CALL ctl_stop( 'sbc_cpl_init: wrong definition of cn_snd_albedo' ) 
    408410      END SELECT 
    409411      ! 
     
    412414      !     2. receiving mixed oce-ice solar radiation  
    413415      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 sky 
    416         albedo_oce_mix(:,:) = ( zacs(:,:) + zaos(:,:) ) * 0.5 
     416         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 
    417419      ENDIF 
    418420 
     
    446448      CASE( 'weighted oce and ice' )   !   nothing to do 
    447449      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)' ) 
    448451      END SELECT 
    449452 
     
    597600         CASE( 'conservative' ) 
    598601            emp(:,:) = frcv(:,:,jpr_tevp) - ( frcv(:,:,jpr_rain) + frcv(:,:,jpr_snow) ) 
    599          CASE( 'ocean only', 'oce and ice' ) 
     602         CASE( 'oce only', 'oce and ice' ) 
    600603            emp(:,:) = frcv(:,:,jpr_oemp) 
     604         CASE default 
     605            CALL ctl_stop( 'sbc_cpl_rcv: wrong definition of cn_rcv_emp' ) 
    601606         END SELECT 
    602607         ! 
     
    10061011                                           ztmp2(:,:) =   tn_ice(:,:)       *  fr_i(:,:) 
    10071012      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' ) 
    10081014      END SELECT 
    10091015      IF( ssnd(jps_toce)%laction )   CALL cpl_prism_snd( jps_toce, isec, ztmp1, info ) 
     
    10371043               DO ji = fs_2, fs_jpim1   ! vector opt. 
    10381044                  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) )  
    10401046               END DO 
    10411047            END DO 
     
    10451051                  DO ji = fs_2, fs_jpim1   ! vector opt. 
    10461052                     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) 
    10501056                  END DO 
    10511057               END DO 
     
    10541060                  DO ji = fs_2, fs_jpim1   ! vector opt. 
    10551061                     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)   
    10571063                     zitx1(ji,jj) = 0.25 * ( utaui_ice(ji+1,jj+1) + utaui_ice(ji,jj+1)   & 
    10581064                        &                  + utaui_ice(ji+1,jj  ) + utaui_ice(ji,jj  ) ) * fr_i(ji,jj) 
     
    10661072            IF( cice_grid == 'C' ) THEN      ! 'C'-grid ice velocity 
    10671073               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 DO 
     1074                  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 
    10741080               END DO 
    10751081            ELSE                            ! 'B'-grid ice velocity 
     
    10771083                  DO ji = fs_2, fs_jpim1   ! vector opt. 
    10781084                     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) 
    10841090                  END DO 
    10851091               END DO 
Note: See TracChangeset for help on using the changeset viewer.