NOC-MSM / SE-NEMO

Shelf Enabled Global NEMO
GNU General Public License v3.0
2 stars 1 forks source link

diahth.F90 not 100% about this, pycndep option in 4.2.1, but other diffs #131

Closed jdha closed 11 months ago

jdha commented 11 months ago

@chris-O-wilson can you look at diahth.F90 and update to solve pycndep changes you looked at - are these equivalent?

In MY_SRC 4.0.4:

            DO jj = 1, jpj
               DO ji = 1, jpi
                  IF( tmask(ji,jj,nla10) == 1. ) THEN
                     ! zu  =  1779.50 + 11.250 * tsn(ji,jj,nla10,jp_tem) - 3.80   * tsn(ji,jj,nla10,jp_sal)  &
                     !    &           - 0.0745 * tsn(ji,jj,nla10,jp_tem) * tsn(ji,jj,nla10,jp_tem)   &
                     !    &           - 0.0100 * tsn(ji,jj,nla10,jp_tem) * tsn(ji,jj,nla10,jp_sal)
                     ! zv  =  5891.00 + 38.000 * tsn(ji,jj,nla10,jp_tem) + 3.00   * tsn(ji,jj,nla10,jp_sal)  &
                     !    &           - 0.3750 * tsn(ji,jj,nla10,jp_tem) * tsn(ji,jj,nla10,jp_tem)
                     ! zut =    11.25 -  0.149 * tsn(ji,jj,nla10,jp_tem) - 0.01   * tsn(ji,jj,nla10,jp_sal)
                     ! zvt =    38.00 -  0.750 * tsn(ji,jj,nla10,jp_tem)
                     ! zw  = (zu + 0.698*zv) * (zu + 0.698*zv)
                     ! zdelr(ji,jj) = ztem2 * (1000.*(zut*zv - zvt*zu)/zw)
                     zdelr(ji,jj) = rab_n(ji,jj,nla10,jp_tem)*0.2*rau0
                  ELSE
                     zdelr(ji,jj) = 0._wp
                  ENDIF
               END DO
            END DO

In MY_SRC 4.2.1:

            DO_2D( 1, 1, 1, 1 )
               IF( tmask(ji,jj,nla10) == 1. ) THEN
                  zu  =  1779.50 + 11.250 * ts(ji,jj,nla10,jp_tem,Kmm) - 3.80   * ts(ji,jj,nla10,jp_sal,Kmm)  &
                     &           - 0.0745 * ts(ji,jj,nla10,jp_tem,Kmm) * ts(ji,jj,nla10,jp_tem,Kmm)   &
                     &           - 0.0100 * ts(ji,jj,nla10,jp_tem,Kmm) * ts(ji,jj,nla10,jp_sal,Kmm)
                  zv  =  5891.00 + 38.000 * ts(ji,jj,nla10,jp_tem,Kmm) + 3.00   * ts(ji,jj,nla10,jp_sal,Kmm)  &
                     &           - 0.3750 * ts(ji,jj,nla10,jp_tem,Kmm) * ts(ji,jj,nla10,jp_tem,Kmm)
                  zut =    11.25 -  0.149 * ts(ji,jj,nla10,jp_tem,Kmm) - 0.01   * ts(ji,jj,nla10,jp_sal,Kmm)
                  zvt =    38.00 -  0.750 * ts(ji,jj,nla10,jp_tem,Kmm)
                  zw  = (zu + 0.698*zv) * (zu + 0.698*zv)
                  zdelr(ji,jj) = ztem2 * (1000.*(zut*zv - zvt*zu)/zw)
               ELSE
                  zdelr(ji,jj) = 0._wp
               ENDIF
            END_2D

Also the bug in initialisation (I think this is what you originally updated) appears to have been corrected in 4.2.1:

Original 4.0.4:

 IF( iom_use( 'mlddzt' ) .OR. iom_use( 'mldr0_3' ) .OR. iom_use( 'mldr0_1' ) ) THEN

MY_SRC 4.0.4:

 IF( iom_use( 'mlddzt' ) .OR. iom_use( 'mldr0_3' ) .OR. iom_use( 'mldr0_1' )        .OR.   &
            &  iom_use( 'mld_dt02' ) .OR. iom_use( 'topthdep' ) .OR. iom_use( 'mldr10_3' )  .OR.   &
            &  iom_use( 'pycndep' ) .OR. iom_use( 'tinv'     ) .OR. iom_use( 'depti'    )  ) THEN

MY_SRC_4.2.1:

         IF( iom_use( 'tinv'   ) )   ztinv  (:,:) = 0._wp  
         IF( iom_use( 'depti'  ) )   zdepinv(:,:) = 0._wp  
         IF( iom_use( 'mlddzt' ) )   zmaxdzT(:,:) = 0._wp  
         IF( iom_use( 'mlddzt' ) .OR. iom_use( 'mld_dt02' ) .OR. iom_use( 'topthdep' )   &
            &                    .OR. iom_use( 'mldr10_3' ) .OR. iom_use( 'pycndep'  ) ) THEN