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 11993 for NEMO/trunk/src/OCE/TRA – NEMO

Ignore:
Timestamp:
2019-11-28T11:20:53+01:00 (5 years ago)
Author:
cetlod
Message:

trunk : undo bad commit. Oups

Location:
NEMO/trunk/src/OCE/TRA
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • NEMO/trunk/src/OCE/TRA/eosbn2.F90

    r11989 r11993  
    3030   !!   eos_insitu_2d : Compute the in situ density for 2d fields 
    3131   !!   bn2           : Compute the Brunt-Vaisala frequency 
     32   !!   bn2           : compute the Brunt-Vaisala frequency 
    3233   !!   eos_pt_from_ct: compute the potential temperature from the Conservative Temperature 
    3334   !!   eos_rab       : generic interface of in situ thermal/haline expansion ratio  
     
    6667   END INTERFACE 
    6768   ! 
    68    INTERFACE eos_pt_from_ct 
    69       MODULE PROCEDURE eos_pt_from_ct_2d, eos_pt_from_ct_3d 
    70    END INTERFACE 
    71  
    7269   PUBLIC   eos            ! called by step, istate, tranpc and zpsgrd modules 
    7370   PUBLIC   bn2            ! called by step module 
     
    7976 
    8077   !                               !!** Namelist nameos ** 
    81    LOGICAL , PUBLIC ::   ln_TEOS10   
    82    LOGICAL , PUBLIC ::   ln_EOS80   
    83    LOGICAL , PUBLIC ::   ln_SEOS   
     78   LOGICAL , PUBLIC ::   ln_TEOS10 
     79   LOGICAL , PUBLIC ::   ln_EOS80 
     80   LOGICAL , PUBLIC ::   ln_SEOS 
    8481 
    8582   ! Parameters 
     
    939936 
    940937 
    941    FUNCTION eos_pt_from_ct_2d( ctmp, psal ) RESULT( ptmp ) 
     938   FUNCTION eos_pt_from_ct( ctmp, psal ) RESULT( ptmp ) 
    942939      !!---------------------------------------------------------------------- 
    943940      !!                 ***  ROUTINE eos_pt_from_ct  *** 
     
    962959      !!---------------------------------------------------------------------- 
    963960      ! 
    964       IF( ln_timing )   CALL timing_start('eos_pt_from_ct_2d') 
     961      IF( ln_timing )   CALL timing_start('eos_pt_from_ct') 
    965962      ! 
    966963      zdeltaS = 5._wp 
     
    993990      END DO 
    994991      ! 
    995       IF( ln_timing )   CALL timing_stop('eos_pt_from_ct_2d') 
    996       ! 
    997    END FUNCTION eos_pt_from_ct_2d 
    998  
    999     
    1000    FUNCTION eos_pt_from_ct_3d( ctmp, psal ) RESULT( ptmp ) 
    1001       !!---------------------------------------------------------------------- 
    1002       !!                 ***  ROUTINE eos_pt_from_ct  *** 
    1003       !! 
    1004       !! ** Purpose :   Compute pot.temp. from cons. temp. [Celcius] 
    1005       !! 
    1006       !! ** Method  :   rational approximation (5/3th order) of TEOS-10 algorithm 
    1007       !!       checkvalue: pt=20.02391895 Celsius for sa=35.7g/kg, ct=20degC 
    1008       !! 
    1009       !! Reference  :   TEOS-10, UNESCO 
    1010       !!                Rational approximation to TEOS10 algorithm (rms error on WOA13 values: 4.0e-5 degC) 
    1011       !!---------------------------------------------------------------------- 
    1012       REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(in) ::   ctmp   ! Cons. Temp [Celcius] 
    1013       REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(in) ::   psal   ! salinity   [psu] 
    1014       ! Leave result array automatic rather than making explicitly allocated 
    1015       REAL(wp), DIMENSION(jpi,jpj,jpk) ::   ptmp   ! potential temperature [Celcius] 
    1016       ! 
    1017       INTEGER  ::   ji, jj, jk           ! dummy loop indices 
    1018       REAL(wp) ::   zt , zs , ztm        ! local scalars 
    1019       REAL(wp) ::   zn , zd              ! local scalars 
    1020       REAL(wp) ::   zdeltaS , z1_S0 , z1_T0 
    1021       !!---------------------------------------------------------------------- 
    1022       ! 
    1023       IF ( ln_timing )   CALL timing_start('eos_pt_from_ct_3d') 
    1024       ! 
    1025       zdeltaS = 5._wp 
    1026       z1_S0   = 0.875_wp/35.16504_wp 
    1027       z1_T0   = 1._wp/40._wp 
    1028       ! 
    1029       DO jk = 1, jpkm1 
    1030          DO jj = 1, jpj 
    1031             DO ji = 1, jpi 
    1032                ! 
    1033                zt  = ctmp   (ji,jj,jk) * z1_T0 
    1034                zs  = SQRT( ABS( psal(ji,jj,jk) + zdeltaS ) * r1_S0 ) 
    1035                ztm = tmask(ji,jj,jk) 
    1036                ! 
    1037                zn = ((((-2.1385727895e-01_wp*zt   & 
    1038                   &   - 2.7674419971e-01_wp*zs+1.0728094330_wp)*zt   & 
    1039                   &   + (2.6366564313_wp*zs+3.3546960647_wp)*zs-7.8012209473_wp)*zt   & 
    1040                   &   + ((1.8835586562_wp*zs+7.3949191679_wp)*zs-3.3937395875_wp)*zs-5.6414948432_wp)*zt   & 
    1041                   &   + (((3.5737370589_wp*zs-1.5512427389e+01_wp)*zs+2.4625741105e+01_wp)*zs   & 
    1042                   &      +1.9912291000e+01_wp)*zs-3.2191146312e+01_wp)*zt   & 
    1043                   &   + ((((5.7153204649e-01_wp*zs-3.0943149543_wp)*zs+9.3052495181_wp)*zs   & 
    1044                   &      -9.4528934807_wp)*zs+3.1066408996_wp)*zs-4.3504021262e-01_wp 
    1045                   ! 
    1046                zd = (2.0035003456_wp*zt   & 
    1047                   &   -3.4570358592e-01_wp*zs+5.6471810638_wp)*zt   & 
    1048                   &   + (1.5393993508_wp*zs-6.9394762624_wp)*zs+1.2750522650e+01_wp 
    1049                   ! 
    1050                ptmp(ji,jj,jk) = ( zt / z1_T0 + zn / zd ) * ztm 
    1051                   ! 
    1052             END DO 
    1053          END DO 
    1054       END DO 
    1055       ! 
    1056       IF( ln_timing )   CALL timing_stop('eos_pt_from_ct_3d') 
    1057       ! 
    1058    END FUNCTION eos_pt_from_ct_3d 
     992      IF( ln_timing )   CALL timing_stop('eos_pt_from_ct') 
     993      ! 
     994   END FUNCTION eos_pt_from_ct 
    1059995 
    1060996 
     
    17151651 
    17161652         r1_S0  = 0.875_wp/35.16504_wp   ! Used to convert CT in potential temperature when using bulk formulae (eos_pt_from_ct) 
    1717  
     1653          
    17181654         IF(lwp) THEN 
    17191655            WRITE(numout,*) 
  • NEMO/trunk/src/OCE/TRA/traadv.F90

    r11989 r11993  
    134134      ! 
    135135!!gm ??? 
    136       CALL dia_ptr( kt, zvn )                                    ! diagnose the effective MSF  
     136      IF( ln_diaptr )   CALL dia_ptr( zvn )                                    ! diagnose the effective MSF  
    137137!!gm ??? 
    138138      ! 
    139  
    140139      IF( l_trdtra )   THEN                    !* Save ta and sa trends 
    141140         ALLOCATE( ztrdt(jpi,jpj,jpk), ztrds(jpi,jpj,jpk) ) 
  • NEMO/trunk/src/OCE/TRA/traadv_cen.F90

    r11989 r11993  
    6161      !! ** Action : - update pta  with the now advective tracer trends 
    6262      !!             - send trends to trdtra module for further diagnostcs (l_trdtra=T) 
    63       !!             - poleward advective heat and salt transport (ln_diaptr=T) 
     63      !!             - htr_adv, str_adv : poleward advective heat and salt transport (ln_diaptr=T) 
    6464      !!---------------------------------------------------------------------- 
    6565      INTEGER                              , INTENT(in   ) ::   kt              ! ocean time-step index 
     
    8989      l_hst = .FALSE. 
    9090      l_ptr = .FALSE. 
    91       IF( ( cdtype == 'TRA' .AND. l_trdtra ) .OR. ( cdtype == 'TRC' .AND. l_trdtrc ) )       l_trd = .TRUE. 
    92       IF(   cdtype == 'TRA' .AND. ( iom_use( 'sophtadv' ) .OR. iom_use( 'sophtadv' ) )  )    l_ptr = .TRUE.  
     91      IF( ( cdtype == 'TRA' .AND. l_trdtra ) .OR. ( cdtype == 'TRC' .AND. l_trdtrc ) )        l_trd = .TRUE. 
     92      IF(   cdtype == 'TRA' .AND. ln_diaptr )                                                 l_ptr = .TRUE.  
    9393      IF(   cdtype == 'TRA' .AND. ( iom_use("uadv_heattr") .OR. iom_use("vadv_heattr") .OR. & 
    94          &                          iom_use("uadv_salttr") .OR. iom_use("vadv_salttr")  ) )  l_hst = .TRUE. 
     94         &                          iom_use("uadv_salttr") .OR. iom_use("vadv_salttr")  ) )   l_hst = .TRUE. 
    9595      ! 
    9696      !                     
  • NEMO/trunk/src/OCE/TRA/traadv_fct.F90

    r11989 r11993  
    6868      !! ** Action : - update pta  with the now advective tracer trends 
    6969      !!             - send trends to trdtra module for further diagnostics (l_trdtra=T) 
    70       !!             - poleward advective heat and salt transport (ln_diaptr=T) 
     70      !!             - htr_adv, str_adv : poleward advective heat and salt transport (ln_diaptr=T) 
    7171      !!---------------------------------------------------------------------- 
    7272      INTEGER                              , INTENT(in   ) ::   kt              ! ocean time-step index 
     
    101101      l_ptr = .FALSE. 
    102102      ll_zAimp = .FALSE. 
    103       IF( ( cdtype == 'TRA' .AND. l_trdtra  ) .OR. ( cdtype =='TRC' .AND. l_trdtrc ) )      l_trd = .TRUE. 
    104       IF(   cdtype == 'TRA' .AND. ( iom_use( 'sophtadv' ) .OR. iom_use( 'sophtadv' ) ) )    l_ptr = .TRUE.  
    105       IF(   cdtype == 'TRA' .AND. ( iom_use("uadv_heattr") .OR. iom_use("vadv_heattr") .OR.  & 
     103      IF( ( cdtype =='TRA' .AND. l_trdtra  ) .OR. ( cdtype =='TRC' .AND. l_trdtrc ) )       l_trd = .TRUE. 
     104      IF(   cdtype =='TRA' .AND. ln_diaptr )                                                l_ptr = .TRUE.  
     105      IF(   cdtype =='TRA' .AND. ( iom_use("uadv_heattr") .OR. iom_use("vadv_heattr") .OR.  & 
    106106         &                         iom_use("uadv_salttr") .OR. iom_use("vadv_salttr")  ) )  l_hst = .TRUE. 
    107107      ! 
  • NEMO/trunk/src/OCE/TRA/traadv_mus.F90

    r11989 r11993  
    6868      !! ** Action : - update pta  with the now advective tracer trends 
    6969      !!             - send trends to trdtra module for further diagnostcs (l_trdtra=T) 
    70       !!             - poleward advective heat and salt transport (ln_diaptr=T) 
     70      !!             - htr_adv, str_adv : poleward advective heat and salt transport (ln_diaptr=T) 
    7171      !! 
    7272      !! References : Estubier, A., and M. Levy, Notes Techn. Pole de Modelisation 
     
    120120      l_ptr = .FALSE. 
    121121      IF( ( cdtype == 'TRA' .AND. l_trdtra ) .OR. ( cdtype == 'TRC' .AND. l_trdtrc ) )      l_trd = .TRUE. 
    122       IF(   cdtype == 'TRA' .AND. ( iom_use( 'sophtadv' ) .OR. iom_use( 'sophtadv' ) )  )   l_ptr = .TRUE.  
     122      IF(   cdtype == 'TRA' .AND. ln_diaptr )                                               l_ptr = .TRUE.  
    123123      IF(   cdtype == 'TRA' .AND. ( iom_use("uadv_heattr") .OR. iom_use("vadv_heattr") .OR. & 
    124124         &                          iom_use("uadv_salttr") .OR. iom_use("vadv_salttr")  ) ) l_hst = .TRUE. 
  • NEMO/trunk/src/OCE/TRA/traadv_qck.F90

    r11989 r11993  
    2121   USE trdtra          ! trends manager: tracers  
    2222   USE diaptr          ! poleward transport diagnostics 
    23    USE iom 
    2423   ! 
    2524   USE in_out_manager  ! I/O manager 
     
    8180      !! ** Action : - update pta  with the now advective tracer trends 
    8281      !!             - send trends to trdtra module for further diagnostcs (l_trdtra=T) 
    83       !!             - poleward advective heat and salt transport (ln_diaptr=T) 
     82      !!             - htr_adv, str_adv : poleward advective heat and salt transport (ln_diaptr=T) 
    8483      !! 
    8584      !! ** Reference : Leonard (1979, 1991) 
     
    104103      l_trd = .FALSE. 
    105104      l_ptr = .FALSE. 
    106       IF( ( cdtype == 'TRA' .AND. l_trdtra ) .OR. ( cdtype == 'TRC' .AND. l_trdtrc ) )   l_trd = .TRUE. 
    107       IF(   cdtype == 'TRA' .AND. ( iom_use( 'sophtadv' ) .OR. iom_use( 'sophtadv' ) ) ) l_ptr = .TRUE.  
     105      IF( ( cdtype == 'TRA' .AND. l_trdtra ) .OR. ( cdtype == 'TRC' .AND. l_trdtrc ) )      l_trd = .TRUE. 
     106      IF(   cdtype == 'TRA' .AND. ln_diaptr )                                              l_ptr = .TRUE.  
    108107      ! 
    109108      ! 
  • NEMO/trunk/src/OCE/TRA/traadv_ubs.F90

    r11989 r11993  
    7979      !! ** Action : - update pta  with the now advective tracer trends 
    8080      !!             - send trends to trdtra module for further diagnostcs (l_trdtra=T) 
    81       !!             - poleward advective heat and salt transport (ln_diaptr=T) 
     81      !!             - htr_adv, str_adv : poleward advective heat and salt transport (ln_diaptr=T) 
    8282      !! 
    8383      !! Reference : Shchepetkin, A. F., J. C. McWilliams, 2005, Ocean Modelling, 9, 347-404.  
     
    111111      l_ptr = .FALSE. 
    112112      IF( ( cdtype == 'TRA' .AND. l_trdtra ) .OR. ( cdtype == 'TRC' .AND. l_trdtrc ) )      l_trd = .TRUE. 
    113       IF(   cdtype == 'TRA' .AND. ( iom_use( 'sophtadv' ) .OR. iom_use( 'sophtadv' ) )  )   l_ptr = .TRUE.  
     113      IF(   cdtype == 'TRA' .AND. ln_diaptr )                                               l_ptr = .TRUE.  
    114114      IF(   cdtype == 'TRA' .AND. ( iom_use("uadv_heattr") .OR. iom_use("vadv_heattr") .OR. & 
    115115         &                          iom_use("uadv_salttr") .OR. iom_use("vadv_salttr")  ) ) l_hst = .TRUE. 
  • NEMO/trunk/src/OCE/TRA/trabbc.F90

    r11989 r11993  
    100100      ENDIF 
    101101      ! 
    102       CALL iom_put ( "hfgeou" , rau0_rcp * qgh_trd0(:,:) ) 
    103       ! 
    104102      IF(ln_ctl)   CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' bbc  - Ta: ', mask1=tmask, clinfo3='tra-ta' ) 
    105103      ! 
  • NEMO/trunk/src/OCE/TRA/traldf_iso.F90

    r11989 r11993  
    124124      l_hst = .FALSE. 
    125125      l_ptr = .FALSE. 
    126       IF( cdtype == 'TRA' .AND. ( iom_use( 'sophtldf' ) .OR. iom_use( 'sopstldf' ) ) )     l_ptr = .TRUE.  
     126      IF( cdtype == 'TRA' .AND. ln_diaptr )                                                 l_ptr = .TRUE.  
    127127      IF( cdtype == 'TRA' .AND. ( iom_use("uadv_heattr") .OR. iom_use("vadv_heattr") .OR. & 
    128128         &                        iom_use("uadv_salttr") .OR. iom_use("vadv_salttr")  ) )   l_hst = .TRUE. 
  • NEMO/trunk/src/OCE/TRA/traldf_lap_blp.F90

    r11989 r11993  
    8989      l_hst = .FALSE. 
    9090      l_ptr = .FALSE. 
    91       IF( cdtype == 'TRA' .AND. ( iom_use( 'sophtldf' ) .OR. iom_use( 'sopstldf' ) ) )     l_ptr = .TRUE. 
     91      IF( cdtype == 'TRA' .AND. ln_diaptr )                                                l_ptr = .TRUE.  
    9292      IF( cdtype == 'TRA' .AND. ( iom_use("uadv_heattr") .OR. iom_use("vadv_heattr") .OR. & 
    9393         &                        iom_use("uadv_salttr") .OR. iom_use("vadv_salttr")  ) )  l_hst = .TRUE. 
  • NEMO/trunk/src/OCE/TRA/traldf_triad.F90

    r11989 r11993  
    110110      l_hst = .FALSE. 
    111111      l_ptr = .FALSE. 
    112       IF( cdtype == 'TRA' .AND. ( iom_use( 'sophtldf' ) .OR. iom_use( 'sopstldf' ) ) )      l_ptr = .TRUE.  
     112      IF( cdtype == 'TRA' .AND. ln_diaptr )                                                 l_ptr = .TRUE.  
    113113      IF( cdtype == 'TRA' .AND. ( iom_use("uadv_heattr") .OR. iom_use("vadv_heattr") .OR. & 
    114114         &                        iom_use("uadv_salttr") .OR. iom_use("vadv_salttr")  ) )   l_hst = .TRUE. 
Note: See TracChangeset for help on using the changeset viewer.