Changeset 2446


Ignore:
Timestamp:
2010-11-30T15:50:33+01:00 (10 years ago)
Author:
acc
Message:

nemo_v3_3beta. Added support for ORCA1 when using key_dynldf_c3d. Changes to ldfdyn_c3d.h90 only. See #770

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/nemo_v3_3_beta/NEMOGCM/NEMO/OPA_SRC/LDF/ldfdyn_c3d.h90

    r2436 r2446  
    8383 
    8484 
    85          ! Special case for ORCA R2 and R4 configurations (overwrite the value of ahm1 ahm2) 
     85         ! Special case for ORCA R1, R2 and R4 configurations (overwrite the value of ahm1 ahm2) 
    8686         ! ============================================== 
    87          IF( cp_cfg == "orca" .AND. ( jp_cfg == 2 .OR. jp_cfg == 4 ) ) THEN 
     87         IF( cp_cfg == "orca" .AND. ( jp_cfg == 1 .OR. jp_cfg == 2 .OR. jp_cfg == 4 ) ) THEN  
    8888            IF(lwp) WRITE(numout,*) 
    89             IF(lwp) WRITE(numout,*) '              ORCA R2 or R4: overwrite the previous definition of ahm' 
    90             IF(lwp) WRITE(numout,*) '              =============' 
     89            IF(lwp) WRITE(numout,*) '              ORCA R1, R2 or R4: overwrite the previous definition of ahm' 
     90            IF(lwp) WRITE(numout,*) '              =================' 
    9191            CALL ldf_dyn_c3d_orca( ld_print ) 
    9292         ENDIF 
     
    189189      !!                  ***  ROUTINE ldf_dyn_c3d  *** 
    190190      !!                    
    191       !! ** Purpose :   ORCA R2 an R4 only 
     191      !! ** Purpose :   ORCA R1, R2 and R4 only 
    192192      !! 
    193193      !! ** Method  :   blah blah blah .... 
     
    218218      IF(lwp) WRITE(numout,*) '~~~~~~~~~~~~~~~' 
    219219      IF(lwp) WRITE(numout,*) 
    220       IF(lwp) WRITE(numout,*) '        orca R2 or R4 ocean model' 
     220      IF(lwp) WRITE(numout,*) '        orca R1, R2 or R4 ocean model' 
    221221      IF(lwp) WRITE(numout,*) '  reduced in the surface Eq. strip ' 
    222222      IF(lwp) WRITE(numout,*) 
     
    308308      ENDIF 
    309309 
     310      IF( jp_cfg == 1 )   THEN 
     311         zahmeq     = aht0  ! reduced to aht0 on equator; set to ahm0 if no tropical reduction is required 
     312         zahmm      = ahm0 
     313         zahm0(:,:) = ahm0 
     314      ENDIF 
     315 
    310316      DO jj = 1, jpj 
    311317         DO ji = 1, jpi 
     
    353359 
    354360      ! other level: re-increase the coef in the deep ocean 
    355        DO jk = 1, 21 
    356          zcoef(jk) = 1._wp 
    357       END DO 
    358       zcoef(22) = 2._wp 
    359       zcoef(23) = 3._wp 
    360       zcoef(24) = 5._wp 
    361       zcoef(25) = 7._wp 
    362       zcoef(26) = 9._wp 
    363       DO jk = 27, jpk 
    364          zcoef(jk) = 10._wp 
    365       END DO 
     361      !================================================================== 
     362      ! Prior to v3.3, zcoeff was hardwired according to k-index jk. 
    366363      ! 
     364      ! From v3.3 onwards this has been generalised to a function of  
     365      ! depth so that it can be used with any number of levels. 
     366      ! 
     367      ! The function has been chosen to match the original values (shown 
     368      ! in the following comments) when using the standard 31 ORCA levels.   
     369      !     DO jk = 1, 21 
     370      !        zcoef(jk) = 1._wp 
     371      !     END DO 
     372      !     zcoef(22) = 2._wp 
     373      !     zcoef(23) = 3._wp 
     374      !     zcoef(24) = 5._wp 
     375      !     zcoef(25) = 7._wp 
     376      !     zcoef(26) = 9._wp 
     377      !     DO jk = 27, jpk 
     378      !        zcoef(jk) = 10._wp 
     379      !     END DO 
     380      !================================================================== 
     381 
     382       IF(lwp) THEN 
     383          WRITE(numout,*) 
     384          WRITE(numout,*) '         1D zcoef array ' 
     385          WRITE(numout,*) '         ~~~~~~~~~~~~~~ ' 
     386          WRITE(numout,*) 
     387          WRITE(numout,*) '    jk        zcoef ' 
     388       ENDIF 
     389 
     390      DO jk=1, jpk 
     391         zcoef(jk) = 1.0_wp + NINT(9.0_wp*(gdept_0(jk)-800.0_wp)/(3000.0_wp-800.0_wp)) 
     392         zcoef(jk) = MIN(10.0_wp, MAX(1.0_wp, zcoef(jk))) 
     393         IF(lwp) WRITE(numout,'(4x,i3,6x,f7.3)') jk,zcoef(jk) 
     394      END DO 
     395 
    367396      DO jk = 2, jpk 
    368397         ahm1(:,:,jk) = MIN( zahm0(:,:), zcoef(jk) * ahm1(:,:,1) ) 
Note: See TracChangeset for help on using the changeset viewer.