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 642 for trunk/NEMO/OPA_SRC/DYN – NEMO

Changeset 642 for trunk/NEMO/OPA_SRC/DYN


Ignore:
Timestamp:
2007-03-15T12:17:58+01:00 (17 years ago)
Author:
opalod
Message:

nemo_v2_bugfix_028 : CT : correction to be able to compile without compilation stop when using key_zco cpp key

Location:
trunk/NEMO/OPA_SRC/DYN
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMO/OPA_SRC/DYN/dynnxt.F90

    r592 r642  
    7373      INTEGER  ::   ji, jj, jk   ! dummy loop indices 
    7474      REAL(wp) ::   z2dt         ! temporary scalar 
     75      REAL(wp) ::   zsshun1, zsshvn1         ! temporary scalar 
    7576      !! Variable volume 
    76       REAL(wp) ::   zsshun, zsshvn           ! temporary scalars 
    77       REAL(wp), DIMENSION(jpi,jpj)     ::  & 
    78          zsshub, zsshua, zsshvb, zsshva      ! 2D workspace 
     77      REAL(wp), DIMENSION(jpi,jpj)     ::  & ! 2D workspace 
     78         zsshub, zsshun, zsshua,           & 
     79         zsshvb, zsshvn, zsshva 
    7980      REAL(wp), DIMENSION(jpi,jpj,jpk) ::  & 
    8081         zfse3ub, zfse3un, zfse3ua, &        ! 3D workspace 
     
    134135         ! Scale factors at before and after time step 
    135136         ! ------------------------------------------- 
    136          DO jk = 1, jpkm1 
    137             zfse3ub(:,:,jk)  = fsve3u(:,:,jk) * ( 1 + zsshub(:,:) * muu(:,:,jk) ) 
    138             zfse3ua(:,:,jk)  = fsve3u(:,:,jk) * ( 1 + zsshua(:,:) * muu(:,:,jk) ) 
    139             zfse3vb(:,:,jk)  = fsve3v(:,:,jk) * ( 1 + zsshvb(:,:) * muv(:,:,jk) ) 
    140             zfse3va(:,:,jk)  = fsve3v(:,:,jk) * ( 1 + zsshva(:,:) * muv(:,:,jk) ) 
    141          END DO 
     137         zfse3ub(:,:,:) = sfe3( zsshub, 'U' )   ;    zfse3ua(:,:,:) = sfe3( zsshua, 'U' ) 
     138         zfse3vb(:,:,:) = sfe3( zsshvb, 'V' )   ;    zfse3va(:,:,:) = sfe3( zsshva, 'V' ) 
    142139 
    143140         ! Asselin filtered scale factor at now time step 
    144141         ! ---------------------------------------------- 
    145142         IF( (neuler == 0 .AND. kt == nit000) .OR. lk_dynspg_ts ) THEN 
    146             zfse3un(:,:,:) = fse3u(:,:,:) 
    147             zfse3vn(:,:,:) = fse3v(:,:,:) 
     143            zfse3un(:,:,:) = sfe3ini( 'U' ) 
     144            zfse3vn(:,:,:) = sfe3ini( 'V' ) 
    148145         ELSE 
    149             DO jk = 1, jpkm1 
    150                DO jj = 1, jpj 
    151                   DO ji = 1, jpi 
    152                      zsshun = atfp * ( zsshub(ji,jj) + zsshua(ji,jj) ) + atfp1 * sshu(ji,jj) 
    153                      zsshvn = atfp * ( zsshvb(ji,jj) + zsshva(ji,jj) ) + atfp1 * sshv(ji,jj) 
    154                      zfse3un(ji,jj,jk) = fsve3u(ji,jj,jk) * ( 1 + zsshun * muu(ji,jj,jk) ) 
    155                      zfse3vn(ji,jj,jk) = fsve3v(ji,jj,jk) * ( 1 + zsshvn * muv(ji,jj,jk) ) 
    156                   END DO 
    157                END DO 
    158             END DO 
     146            zsshun(:,:) = atfp * ( zsshub(:,:) + zsshua(:,:) ) + atfp1 * sshu(:,:) 
     147            zsshvn(:,:) = atfp * ( zsshvb(:,:) + zsshva(:,:) ) + atfp1 * sshv(:,:) 
     148            zfse3un(:,:,:) = sfe3( zsshun, 'U' )   ;    zfse3vn(:,:,:) = sfe3( zsshvn, 'V' ) 
    159149         ENDIF 
    160150 
    161151         ! Thickness weighting 
    162152         ! ------------------- 
    163          ua(:,:,1:jpkm1) = ua(:,:,1:jpkm1) * fse3u (:,:,1:jpkm1) 
    164          va(:,:,1:jpkm1) = va(:,:,1:jpkm1) * fse3v (:,:,1:jpkm1) 
    165  
    166          un(:,:,1:jpkm1) = un(:,:,1:jpkm1) * fse3u (:,:,1:jpkm1) 
    167          vn(:,:,1:jpkm1) = vn(:,:,1:jpkm1) * fse3v (:,:,1:jpkm1) 
    168  
    169          ub(:,:,1:jpkm1) = ub(:,:,1:jpkm1) * zfse3ub(:,:,1:jpkm1) 
    170          vb(:,:,1:jpkm1) = vb(:,:,1:jpkm1) * zfse3vb(:,:,1:jpkm1) 
     153         DO jk = 1, jpkm1 
     154            DO jj = 1, jpj 
     155               DO ji = 1, jpi 
     156                  ua(ji,jj,jk) = ua(ji,jj,jk) * fse3u(ji,jj,jk) 
     157                  va(ji,jj,jk) = va(ji,jj,jk) * fse3v(ji,jj,jk) 
     158 
     159                  un(ji,jj,jk) = un(ji,jj,jk) * fse3u(ji,jj,jk) 
     160                  vn(ji,jj,jk) = vn(ji,jj,jk) * fse3v(ji,jj,jk) 
     161 
     162                  ub(ji,jj,jk) = ub(ji,jj,jk) * zfse3ub(ji,jj,jk) 
     163                  vb(ji,jj,jk) = vb(ji,jj,jk) * zfse3vb(ji,jj,jk) 
     164               END DO 
     165            END DO 
     166         END DO 
    171167 
    172168      ENDIF 
     
    241237               DO jj = 1, jpj 
    242238                  DO ji = 1, jpi 
    243                      zsshun = umask(ji,jj,jk) / fse3u(ji,jj,jk) 
    244                      zsshvn = vmask(ji,jj,jk) / fse3v(ji,jj,jk) 
    245                      ub(ji,jj,jk) = un(ji,jj,jk) * zsshun * umask(ji,jj,jk) 
    246                      vb(ji,jj,jk) = vn(ji,jj,jk) * zsshvn * vmask(ji,jj,jk) 
    247                      zsshun = umask(ji,jj,jk) / zfse3ua(ji,jj,jk) 
    248                      zsshvn = vmask(ji,jj,jk) / zfse3va(ji,jj,jk) 
    249                      un(ji,jj,jk) = ua(ji,jj,jk) * zsshun * umask(ji,jj,jk) 
    250                      vn(ji,jj,jk) = va(ji,jj,jk) * zsshvn * vmask(ji,jj,jk) 
     239                     zsshun1 = umask(ji,jj,jk) / fse3u(ji,jj,jk) 
     240                     zsshvn1 = vmask(ji,jj,jk) / fse3v(ji,jj,jk) 
     241                     ub(ji,jj,jk) = un(ji,jj,jk) * zsshun1 * umask(ji,jj,jk) 
     242                     vb(ji,jj,jk) = vn(ji,jj,jk) * zsshvn1 * vmask(ji,jj,jk) 
     243                     zsshun1 = umask(ji,jj,jk) / zfse3ua(ji,jj,jk) 
     244                     zsshvn1 = vmask(ji,jj,jk) / zfse3va(ji,jj,jk) 
     245                     un(ji,jj,jk) = ua(ji,jj,jk) * zsshun1 * umask(ji,jj,jk) 
     246                     vn(ji,jj,jk) = va(ji,jj,jk) * zsshvn1 * vmask(ji,jj,jk) 
    251247                  END DO 
    252248               END DO 
     
    268264               DO jj = 1, jpj 
    269265                  DO ji = 1, jpi 
    270                      zsshun = umask(ji,jj,jk) / zfse3un(ji,jj,jk) 
    271                      zsshvn = vmask(ji,jj,jk) / zfse3vn(ji,jj,jk) 
     266                     zsshun1 = umask(ji,jj,jk) / zfse3un(ji,jj,jk) 
     267                     zsshvn1 = vmask(ji,jj,jk) / zfse3vn(ji,jj,jk) 
    272268                     ub(ji,jj,jk) = ( atfp  * ( ub(ji,jj,jk) + ua(ji,jj,jk) ) & 
    273                        &            + atfp1 * un(ji,jj,jk) ) * zsshun 
     269                       &            + atfp1 * un(ji,jj,jk) ) * zsshun1 
    274270                     vb(ji,jj,jk) = ( atfp  * ( vb(ji,jj,jk) + va(ji,jj,jk) ) & 
    275                        &            + atfp1 * vn(ji,jj,jk) ) * zsshvn 
    276                      zsshun = umask(ji,jj,jk) / zfse3ua(ji,jj,jk) 
    277                      zsshvn = vmask(ji,jj,jk) / zfse3va(ji,jj,jk) 
    278                      un(ji,jj,jk) = ua(ji,jj,jk) * zsshun 
    279                      vn(ji,jj,jk) = va(ji,jj,jk) * zsshvn 
     271                       &            + atfp1 * vn(ji,jj,jk) ) * zsshvn1 
     272                     zsshun1 = umask(ji,jj,jk) / zfse3ua(ji,jj,jk) 
     273                     zsshvn1 = vmask(ji,jj,jk) / zfse3va(ji,jj,jk) 
     274                     un(ji,jj,jk) = ua(ji,jj,jk) * zsshun1 
     275                     vn(ji,jj,jk) = va(ji,jj,jk) * zsshvn1 
    280276                  END DO 
    281277               END DO 
  • trunk/NEMO/OPA_SRC/DYN/dynspg_flt.F90

    r592 r642  
    187187         ! Scale factors at before and after time step 
    188188         ! ------------------------------------------- 
    189          DO jk = 1, jpkm1 
    190             zfse3ua(:,:,jk)  = fsve3u(:,:,jk) * ( 1 + zsshua(:,:) * muu(:,:,jk) ) 
    191             zfse3va(:,:,jk)  = fsve3v(:,:,jk) * ( 1 + zsshva(:,:) * muv(:,:,jk) ) 
    192             zfse3ub(:,:,jk)  = fsve3u(:,:,jk) * ( 1 + zsshub(:,:) * muu(:,:,jk) ) 
    193             zfse3vb(:,:,jk)  = fsve3v(:,:,jk) * ( 1 + zsshvb(:,:) * muv(:,:,jk) ) 
    194          END DO 
     189         zfse3ua(:,:,:) = sfe3( zsshua, 'U' )    ;    zfse3ub(:,:,:) = sfe3( zsshub, 'U' ) 
     190         zfse3va(:,:,:) = sfe3( zsshva, 'V' )    ;    zfse3vb(:,:,:) = sfe3( zsshvb, 'V' ) 
    195191 
    196192         ! Thickness weighting 
    197193         ! ------------------- 
    198          ua(:,:,1:jpkm1) = ua(:,:,1:jpkm1) * fse3u(:,:,1:jpkm1) 
    199          va(:,:,1:jpkm1) = va(:,:,1:jpkm1) * fse3v(:,:,1:jpkm1) 
    200  
    201          zub(:,:,1:jpkm1) = ub(:,:,1:jpkm1) * zfse3ub(:,:,1:jpkm1) 
    202          zvb(:,:,1:jpkm1) = vb(:,:,1:jpkm1) * zfse3vb(:,:,1:jpkm1) 
     194         DO jk = 1, jpkm1 
     195            DO jj = 1, jpj 
     196               DO ji = 1, jpi 
     197                  ua(ji,jj,jk) = ua(ji,jj,jk) * fse3u(ji,jj,jk) 
     198                  va(ji,jj,jk) = va(ji,jj,jk) * fse3v(ji,jj,jk) 
     199 
     200                  zub(ji,jj,jk) = ub(ji,jj,jk) * zfse3ub(ji,jj,jk) 
     201                  zvb(ji,jj,jk) = vb(ji,jj,jk) * zfse3vb(ji,jj,jk) 
     202               END DO 
     203            END DO 
     204         END DO 
    203205 
    204206         ! Evaluate the masked next velocity (effect of the additional force not included) 
  • trunk/NEMO/OPA_SRC/DYN/dynspg_ts.F90

    r592 r642  
    511511            ! Scale factors at before and after time step 
    512512            ! ------------------------------------------- 
    513             DO jk = 1, jpkm1 
    514                zfse3un_e(:,:,jk)  = fsve3u(:,:,jk) * ( 1 + zsshun_e(:,:) * muu(:,:,jk) ) 
    515                zfse3vn_e(:,:,jk)  = fsve3v(:,:,jk) * ( 1 + zsshvn_e(:,:) * muv(:,:,jk) ) 
    516             END DO 
     513            zfse3un_e(:,:,:) = sfe3( zsshun_e, 'U' )    ;    zfse3vn_e(:,:,:) = sfe3( zsshvn_e, 'V' ) 
    517514 
    518515            ! Ocean depth at U- and V-points 
Note: See TracChangeset for help on using the changeset viewer.