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 5299 for branches/2015/dev_r5218_CNRS17_coupling/NEMOGCM/NEMO/OPA_SRC/SBC/sbcssm.F90 – NEMO

Ignore:
Timestamp:
2015-05-27T18:17:08+02:00 (9 years ago)
Author:
smasson
Message:

dev_r5218_CNRS17_coupling: bugfixes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2015/dev_r5218_CNRS17_coupling/NEMOGCM/NEMO/OPA_SRC/SBC/sbcssm.F90

    r5223 r5299  
    5858      REAL(wp) ::   zcoef, zf_sbc       ! local scalar 
    5959      REAL(wp), DIMENSION(jpi,jpj,jpts) :: zts 
    60       REAL(wp), DIMENSION(jpi,jpj)      :: zub, zvb,zdep 
    6160      !!--------------------------------------------------------------------- 
    6261       
    6362      !                                        !* surface T-, U-, V- ocean level variables (T, S, depth, velocity) 
    64       IF( nn_components == jp_iam_opa ) THEN 
    65          DO jj = 1, jpj 
    66             DO ji = 1, jpi 
    67                zts(ji,jj,jp_tem) = tsb(ji,jj,mikt(ji,jj),jp_tem) 
    68                zts(ji,jj,jp_sal) = tsb(ji,jj,mikt(ji,jj),jp_sal) 
    69             END DO 
     63      DO jj = 1, jpj 
     64         DO ji = 1, jpi 
     65            zts(ji,jj,jp_tem) = tsn(ji,jj,mikt(ji,jj),jp_tem) 
     66            zts(ji,jj,jp_sal) = tsn(ji,jj,mikt(ji,jj),jp_sal) 
    7067         END DO 
    71       ELSE 
    72          DO jj = 1, jpj 
    73             DO ji = 1, jpi 
    74                zts(ji,jj,jp_tem) = tsb(ji,jj,mikt(ji,jj),jp_tem) 
    75                zts(ji,jj,jp_sal) = tsb(ji,jj,mikt(ji,jj),jp_sal) 
    76             END DO 
    77          END DO 
    78       ENDIF 
    79       zub(:,:)        = ub (:,:,1       ) 
    80       zvb(:,:)        = vb (:,:,1       ) 
    81       ! 
    82       IF( lk_vvl ) THEN 
    83          zdep(:,:) = fse3t_n(:,:,1) 
    84       ENDIF 
    85       !                                                   ! ---------------------------------------- ! 
     68      END DO 
     69      ! 
    8670      IF( nn_fsbc == 1 ) THEN                             !   Instantaneous surface fields        ! 
    8771         !                                                ! ---------------------------------------- ! 
    88          ssu_m(:,:) = zub(:,:) 
    89          ssv_m(:,:) = zvb(:,:) 
     72         ssu_m(:,:) = ub(:,:,1) 
     73         ssv_m(:,:) = vb(:,:,1) 
    9074         IF( ln_useCT )  THEN    ;   sst_m(:,:) = eos_pt_from_ct( zts(:,:,jp_tem), zts(:,:,jp_sal) ) 
    9175         ELSE                    ;   sst_m(:,:) = zts(:,:,jp_tem) 
     
    9377         sss_m(:,:) = zts(:,:,jp_sal) 
    9478         !                          ! removed inverse barometer ssh when Patm forcing is used (for sea-ice dynamics) 
    95          IF( nn_components == jp_iam_opa ) THEN 
    96             IF( ln_apr_dyn ) THEN   ;   ssh_m(:,:) = sshb(:,:) - 0.5 * ( ssh_ib(:,:) + ssh_ibb(:,:) ) 
    97             ELSE                    ;   ssh_m(:,:) = sshb(:,:) 
    98             ENDIF 
    99          ELSE 
    100             IF( ln_apr_dyn ) THEN   ;   ssh_m(:,:) = sshn(:,:) - 0.5 * ( ssh_ib(:,:) + ssh_ibb(:,:) ) 
    101             ELSE                    ;   ssh_m(:,:) = sshn(:,:) 
    102             ENDIF 
    103          ENDIF 
    104          ! 
    105          IF( lk_vvl )   fse3t_m(:,:) = zdep(:,:) 
     79         IF( ln_apr_dyn ) THEN   ;   ssh_m(:,:) = sshn(:,:) - 0.5 * ( ssh_ib(:,:) + ssh_ibb(:,:) ) 
     80         ELSE                    ;   ssh_m(:,:) = sshn(:,:) 
     81         ENDIF 
     82         ! 
     83         IF( lk_vvl )   fse3t_m(:,:) = fse3t_n(:,:,1) 
    10684         ! 
    10785      ELSE 
     
    11290            IF(lwp) WRITE(numout,*) '~~~~~~~   mean fields initialised to instantaneous values' 
    11391            zcoef = REAL( nn_fsbc - 1, wp ) 
    114             ssu_m(:,:) = zcoef * zub(:,:) 
    115             ssv_m(:,:) = zcoef * zvb(:,:) 
     92            ssu_m(:,:) = zcoef * ub(:,:,1) 
     93            ssv_m(:,:) = zcoef * vb(:,:,1) 
    11694            IF( ln_useCT )  THEN    ;   sst_m(:,:) = zcoef * eos_pt_from_ct( zts(:,:,jp_tem), zts(:,:,jp_sal) ) 
    11795            ELSE                    ;   sst_m(:,:) = zcoef * zts(:,:,jp_tem) 
     
    11997            sss_m(:,:) = zcoef * zts(:,:,jp_sal) 
    12098            !                          ! removed inverse barometer ssh when Patm forcing is used (for sea-ice dynamics) 
    121             IF( nn_components == jp_iam_opa ) THEN 
    122                IF( ln_apr_dyn ) THEN   ;   ssh_m(:,:) = zcoef * ( sshb(:,:) - 0.5 * ( ssh_ib(:,:) + ssh_ibb(:,:) ) ) 
    123                ELSE                    ;   ssh_m(:,:) = zcoef * sshb(:,:) 
    124                ENDIF 
    125             ELSE 
    126                IF( ln_apr_dyn ) THEN   ;   ssh_m(:,:) = zcoef * ( sshn(:,:) - 0.5 * ( ssh_ib(:,:) + ssh_ibb(:,:) ) ) 
    127                ELSE                    ;   ssh_m(:,:) = zcoef * sshn(:,:) 
    128                ENDIF 
     99            IF( ln_apr_dyn ) THEN   ;   ssh_m(:,:) = zcoef * ( sshn(:,:) - 0.5 * ( ssh_ib(:,:) + ssh_ibb(:,:) ) ) 
     100            ELSE                    ;   ssh_m(:,:) = zcoef * sshn(:,:) 
    129101            ENDIF 
    130102            ! 
    131             IF( lk_vvl )   fse3t_m(:,:) = zcoef * zdep(:,:) 
     103            IF( lk_vvl )   fse3t_m(:,:) = zcoef * fse3t_n(:,:,1) 
    132104            !                                             ! ---------------------------------------- ! 
    133105         ELSEIF( MOD( kt - 2 , nn_fsbc ) == 0 ) THEN      !   Initialisation: New mean computation   ! 
     
    143115         !                                                !        Cumulate at each time step        ! 
    144116         !                                                ! ---------------------------------------- ! 
    145          ssu_m(:,:) = ssu_m(:,:) + zub(:,:) 
    146          ssv_m(:,:) = ssv_m(:,:) + zvb(:,:) 
     117         ssu_m(:,:) = ssu_m(:,:) + ub(:,:,1) 
     118         ssv_m(:,:) = ssv_m(:,:) + vb(:,:,1) 
    147119         IF( ln_useCT )  THEN    ;   sst_m(:,:) = sst_m(:,:) + eos_pt_from_ct( zts(:,:,jp_tem), zts(:,:,jp_sal) ) 
    148120         ELSE                    ;   sst_m(:,:) = sst_m(:,:) + zts(:,:,jp_tem) 
     
    150122         sss_m(:,:) = sss_m(:,:) + zts(:,:,jp_sal) 
    151123         !                          ! removed inverse barometer ssh when Patm forcing is used (for sea-ice dynamics) 
    152          IF( nn_components == jp_iam_opa ) THEN 
    153             IF( ln_apr_dyn ) THEN   ;   ssh_m(:,:) = ssh_m(:,:) + sshb(:,:) - 0.5 * ( ssh_ib(:,:) + ssh_ibb(:,:) ) 
    154             ELSE                    ;   ssh_m(:,:) = ssh_m(:,:) + sshb(:,:) 
    155             ENDIF 
    156          ELSE 
    157             IF( ln_apr_dyn ) THEN   ;   ssh_m(:,:) = ssh_m(:,:) + sshb(:,:) - 0.5 * ( ssh_ib(:,:) + ssh_ibb(:,:) ) 
    158             ELSE                    ;   ssh_m(:,:) = ssh_m(:,:) + sshb(:,:) 
    159             ENDIF 
    160          ENDIF 
    161          ! 
    162          IF( lk_vvl )   fse3t_m(:,:) = fse3t_m(:,:) + zdep(:,:) 
     124         IF( ln_apr_dyn ) THEN   ;   ssh_m(:,:) = ssh_m(:,:) + sshn(:,:) - 0.5 * ( ssh_ib(:,:) + ssh_ibb(:,:) ) 
     125         ELSE                    ;   ssh_m(:,:) = ssh_m(:,:) + sshn(:,:) 
     126         ENDIF 
     127         ! 
     128         IF( lk_vvl )   fse3t_m(:,:) = fse3t_m(:,:) + fse3t_n(:,:,1) 
    163129 
    164130         !                                                ! ---------------------------------------- ! 
Note: See TracChangeset for help on using the changeset viewer.