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 503 for trunk/NEMO/OPA_SRC/TRA/tradmp.F90 – NEMO

Ignore:
Timestamp:
2006-09-27T10:52:29+02:00 (18 years ago)
Author:
opalod
Message:

nemo_v1_update_064 : CT : general trends update including the addition of mean windows analysis possibility in the mixed layer

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMO/OPA_SRC/TRA/tradmp.F90

    r473 r503  
    44   !! Ocean physics: internal restoring trend on active tracers (T and S) 
    55   !!====================================================================== 
     6   !! History :  5.0  !  91-03  (O. Marti, G. Madec)  Original code 
     7   !!                 !  92-06  (M. Imbard)  doctor norme 
     8   !!                 !  96-01  (G. Madec)  statement function for e3 
     9   !!                 !  97-05  (G. Madec)  macro-tasked on jk-slab 
     10   !!                 !  98-07  (M. Imbard, G. Madec) ORCA version 
     11   !!            7.0  !  01-02  (M. Imbard)  cofdis, Original code 
     12   !!            8.1  !  01-02  (G. Madec, E. Durand)  cleaning 
     13   !!            8.5  !  02-08  (G. Madec, E. Durand)  free form + modules 
     14   !!---------------------------------------------------------------------- 
    615#if   defined key_tradmp   ||   defined key_esopa 
    716   !!---------------------------------------------------------------------- 
    817   !!   key_tradmp                                         internal damping 
     18   !!---------------------------------------------------------------------- 
    919   !!---------------------------------------------------------------------- 
    1020   !!   tra_dmp      : update the tracer trend with the internal damping 
     
    1424   !!   cofdis       : compute the distance to the coastline 
    1525   !!---------------------------------------------------------------------- 
    16    !! * Modules used 
    1726   USE oce             ! ocean dynamics and tracers variables 
    1827   USE dom_oce         ! ocean space and time domain variables 
     
    3140   PRIVATE 
    3241 
    33    !! * Routine accessibility 
    34    PUBLIC tra_dmp   ! routine called by step.F90 
    35  
    36    !! * Shared module variables 
    37    LOGICAL , PUBLIC & 
     42   PUBLIC tra_dmp      ! routine called by step.F90 
     43 
    3844#if ! defined key_agrif 
    39    , PARAMETER  & 
     45   LOGICAL, PUBLIC, PARAMETER ::   lk_tradmp = .TRUE.     !: internal damping flag 
     46#else 
     47   LOGICAL, PUBLIC            ::   lk_tradmp = .TRUE.     !: internal damping flag 
    4048#endif 
    41    ::   lk_tradmp = .TRUE.    !: internal damping flag 
    42  
    43    REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jpk) ::   & 
    44       strdmp,              &  ! damping salinity trend (psu/s) 
    45       resto                   ! restoring coeff. on T and S (s-1) 
    46  
    47    !! * Module variables 
    48    INTEGER  ::             & !!! * newtonian damping namelist (mandmp) * 
    49       ndmp   =   -1 ,      &  ! = 0/-1/'latitude' for damping over T and S 
    50       ndmpf  =    2 ,      &  ! = 1 create a damping.coeff NetCDF file  
    51       nmldmp =    0           ! = 0/1/2 flag for damping in the mixed layer 
    52    REAL(wp) ::             & !!!  * newtonian damping namelist * 
    53       sdmp   =   50.,      &  ! surface time scale for internal damping (days) 
    54       bdmp   =  360.,      &  ! bottom time scale for internal damping (days) 
    55       hdmp   =  800.          ! depth of transition between sdmp and bdmp (meters) 
     49   REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jpk) ::   strdmp   !: damping salinity trend (psu/s) 
     50   REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jpk) ::   resto    !: restoring coeff. on T and S (s-1) 
     51    
     52   !!* newtonian damping namelist (mandmp)  
     53   INTEGER  ::   ndmp   =   -1    ! = 0/-1/'latitude' for damping over T and S 
     54   INTEGER  ::   ndmpf  =    2    ! = 1 create a damping.coeff NetCDF file  
     55   INTEGER  ::   nmldmp =    0    ! = 0/1/2 flag for damping in the mixed layer 
     56   REAL(wp) ::   sdmp   =   50.   ! surface time scale for internal damping (days) 
     57   REAL(wp) ::   bdmp   =  360.   ! bottom time scale for internal damping (days) 
     58   REAL(wp) ::   hdmp   =  800.   ! depth of transition between sdmp and bdmp (meters) 
     59   NAMELIST/namtdp/ ndmp, ndmpf, nmldmp, sdmp, bdmp, hdmp 
    5660 
    5761   !! * Substitutions 
     
    5963#  include "vectopt_loop_substitute.h90" 
    6064   !!---------------------------------------------------------------------- 
    61    !!   OPA 9.0 , LOCEAN-IPSL (2005)  
     65   !!   OPA 9.0 , LOCEAN-IPSL (2006)  
    6266   !! $Header$  
    63    !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt  
     67   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 
    6468   !!---------------------------------------------------------------------- 
    6569 
     
    8589      !!                damping trends. 
    8690      !!              - save the trends in (ttrd,strd) ('key_trdtra') 
    87       !! 
    88       !! History : 
    89       !!   7.0  !         (G. Madec)  Original code 
    90       !!        !  96-01  (G. Madec)  
    91       !!        !  97-05  (G. Madec)  macro-tasked on jk-slab 
    92       !!   8.5  !  02-08  (G. Madec)  free form + modules 
    93       !!   9.0  !  04-08  (C. Talandier) New trends organization 
    94       !!---------------------------------------------------------------------- 
    95       !! * Modules used      
    96       USE oce, ONLY :    ztdta => ua,   & ! use ua as 3D workspace    
    97                          ztdsa => va      ! use va as 3D workspace    
    98  
    99       !! * Arguments 
    100       INTEGER, INTENT( in ) ::   kt       ! ocean time-step index 
    101  
    102       !! * Local declarations 
     91      !!---------------------------------------------------------------------- 
     92      USE oce, ONLY :   ztrdt => ua   ! use ua as 3D workspace    
     93      USE oce, ONLY :   ztrds => va   ! use va as 3D workspace    
     94      !! 
     95      INTEGER, INTENT( in ) ::   kt   ! ocean time-step index 
     96      !! 
    10397      INTEGER  ::   ji, jj, jk            ! dummy loop indices 
    10498      REAL(wp) ::   ztest, zta, zsa       ! temporary scalars 
    10599      !!---------------------------------------------------------------------- 
    106100 
    107       ! 0. Initialization (first time-step only) 
    108       !    -------------- 
    109       IF( kt == nit000 ) CALL tra_dmp_init 
    110  
    111       ! Save ta and sa trends 
    112       IF( l_trdtra )   THEN 
    113          ztdta(:,:,:) = ta(:,:,:)  
    114          ztdsa(:,:,:) = sa(:,:,:)  
     101      IF( kt == nit000 )   CALL tra_dmp_init      ! Initialization 
     102 
     103      IF( l_trdtra )   THEN                       ! Save ta and sa trends 
     104         ztrdt(:,:,:) = ta(:,:,:)  
     105         ztrds(:,:,:) = sa(:,:,:)  
    115106      ENDIF 
    116107 
     
    120111 
    121112      SELECT CASE ( nmldmp ) 
    122  
     113      ! 
    123114      CASE( 0 )                ! newtonian damping throughout the water column 
    124115         DO jk = 1, jpkm1 
     
    135126            END DO 
    136127         END DO 
    137  
     128         ! 
    138129      CASE ( 1 )                ! no damping in the turbocline (avt > 5 cm2/s) 
    139130         DO jk = 1, jpkm1 
     
    156147            END DO 
    157148         END DO 
    158  
     149         ! 
    159150      CASE ( 2 )                ! no damping in the mixed layer  
    160151         DO jk = 1, jpkm1 
     
    176167            END DO 
    177168         END DO 
    178  
     169         ! 
    179170      END SELECT 
    180171 
    181       ! save the trends for diagnostic 
    182       ! damping salinity trends 
    183       IF( l_trdtra )   THEN 
    184          ztdta(:,:,:) = ta(:,:,:) - ztdta(:,:,:) 
    185          ztdsa(:,:,:) = sa(:,:,:) - ztdsa(:,:,:) 
    186          CALL trd_mod(ztdta, ztdsa, jpttddoe, 'TRA', kt) 
     172      IF( l_trdtra )   THEN          ! save the damping tracer trends for diagnostic 
     173         ztrdt(:,:,:) = ta(:,:,:) - ztrdt(:,:,:) 
     174         ztrds(:,:,:) = sa(:,:,:) - ztrds(:,:,:) 
     175         CALL trd_mod(ztrdt, ztrds, jptra_trd_dmp, 'TRA', kt) 
    187176      ENDIF 
    188  
    189       IF(ln_ctl) THEN         ! print mean trends (used for debugging) 
    190          CALL prt_ctl(tab3d_1=ta, clinfo1=' dmp  - Ta: ', mask1=tmask, & 
    191             &         tab3d_2=sa, clinfo2=' Sa: ', mask2=tmask, clinfo3='tra') 
    192       ENDIF 
    193  
    194  
     177      !                              ! Control print 
     178      IF(ln_ctl)   CALL prt_ctl( tab3d_1=ta, clinfo1=' dmp  - Ta: ', mask1=tmask,   & 
     179         &                       tab3d_2=sa, clinfo2=       ' Sa: ', mask2=tmask, clinfo3='tra' ) 
     180      ! 
    195181   END SUBROUTINE tra_dmp 
    196182 
     
    204190      !! ** Method  :   read the nammbf namelist and check the parameters 
    205191      !!      called by tra_dmp at the first timestep (nit000) 
    206       !! 
    207       !! History : 
    208       !!   8.5  !  02-08  (G. Madec)  Original code 
    209       !!---------------------------------------------------------------------- 
    210       !! * Local declarations 
    211       NAMELIST/namtdp/ ndmp, ndmpf, nmldmp, sdmp, bdmp, hdmp 
    212       !!---------------------------------------------------------------------- 
    213  
    214       ! Read Namelist namtdp : temperature and salinity damping term 
    215       ! -------------------- 
    216       REWIND ( numnam ) 
     192      !!---------------------------------------------------------------------- 
     193 
     194      REWIND ( numnam )                  ! Read Namelist namtdp : temperature and salinity damping term 
    217195      READ   ( numnam, namtdp ) 
    218196      IF( lzoom )   nmldmp = 0           ! restoring to climatology at closed north or south boundaries 
    219197 
    220       ! Parameter control and print 
    221       ! --------------------------- 
    222       IF(lwp) THEN 
     198      IF(lwp) THEN                       ! Namelist print 
    223199         WRITE(numout,*) 
    224200         WRITE(numout,*) 'tra_dmp : T and S newtonian damping' 
    225201         WRITE(numout,*) '~~~~~~~' 
    226          WRITE(numout,*) '          Namelist namtdp : set damping parameter' 
    227          WRITE(numout,*) 
    228          WRITE(numout,*) '             T and S damping option         ndmp   = ', ndmp 
    229          WRITE(numout,*) '             create a damping.coeff file    ndmpf  = ', ndmpf 
    230          WRITE(numout,*) '             mixed layer damping option     nmldmp = ', nmldmp, '(zoom: forced to 0)' 
    231          WRITE(numout,*) '             surface time scale (days)      sdmp   = ', sdmp 
    232          WRITE(numout,*) '             bottom time scale (days)       bdmp   = ', bdmp 
    233          WRITE(numout,*) '             depth of transition (meters)   hdmp   = ', hdmp 
    234          WRITE(numout,*) 
     202         WRITE(numout,*) '       Namelist namtdp : set damping parameter' 
     203         WRITE(numout,*) '          T and S damping option         ndmp   = ', ndmp 
     204         WRITE(numout,*) '          create a damping.coeff file    ndmpf  = ', ndmpf 
     205         WRITE(numout,*) '          mixed layer damping option     nmldmp = ', nmldmp, '(zoom: forced to 0)' 
     206         WRITE(numout,*) '          surface time scale (days)      sdmp   = ', sdmp 
     207         WRITE(numout,*) '          bottom time scale (days)       bdmp   = ', bdmp 
     208         WRITE(numout,*) '          depth of transition (meters)   hdmp   = ', hdmp 
    235209      ENDIF 
    236210 
    237211      SELECT CASE ( ndmp ) 
    238  
    239       CASE ( -1 )               ! ORCA: damping in Red & Med Seas only 
    240          IF(lwp) WRITE(numout,*) '          tracer damping in the Med & Red seas only' 
    241  
    242       CASE ( 1:90 )             ! Damping poleward of 'ndmp' degrees 
    243          IF(lwp) WRITE(numout,*) '          tracer damping poleward of', ndmp, ' degrees' 
    244  
     212      CASE (  -1  )   ;   IF(lwp) WRITE(numout,*) '          tracer damping in the Med & Red seas only' 
     213      CASE ( 1:90 )   ;   IF(lwp) WRITE(numout,*) '          tracer damping poleward of', ndmp, ' degrees' 
    245214      CASE DEFAULT 
    246215         WRITE(ctmp1,*) '          bad flag value for ndmp = ', ndmp 
    247216         CALL ctl_stop(ctmp1) 
    248  
    249217      END SELECT 
    250218 
    251  
    252219      SELECT CASE ( nmldmp ) 
    253  
    254       CASE ( 0 )                ! newtonian damping throughout the water column 
    255          IF(lwp) WRITE(numout,*) '          tracer damping throughout the water column' 
    256  
    257       CASE ( 1 )                ! no damping in the turbocline (avt > 5 cm2/s) 
    258          IF(lwp) WRITE(numout,*) '          no tracer damping in the turbocline' 
    259  
    260       CASE ( 2 )                ! no damping in the mixed layer  
    261          IF(lwp) WRITE(numout,*) '          no tracer damping in the mixed layer' 
    262  
     220      CASE ( 0 )   ;   IF(lwp) WRITE(numout,*) '          tracer damping throughout the water column' 
     221      CASE ( 1 )   ;   IF(lwp) WRITE(numout,*) '          no tracer damping in the turbocline (avt > 5 cm2/s)' 
     222      CASE ( 2 )   ;   IF(lwp) WRITE(numout,*) '          no tracer damping in the mixed layer' 
    263223      CASE DEFAULT 
    264224         WRITE(ctmp1,*) '          bad flag value for nmldmp = ', nmldmp 
    265225         CALL ctl_stop(ctmp1) 
    266  
    267226      END SELECT 
    268227 
    269       IF( .NOT.lk_dtasal .OR. .NOT.lk_dtatem ) & 
    270            &   CALL ctl_stop( '          no temperature and/or salinity data ', & 
    271            &                  '          define key_dtatem and key_dtasal' ) 
     228      IF( .NOT.lk_dtasal .OR. .NOT.lk_dtatem )   & 
     229         &   CALL ctl_stop( 'no temperature and/or salinity data define key_dtatem and key_dtasal' ) 
    272230 
    273231      strdmp(:,:,:) = 0.e0       ! internal damping salinity trend (used in ocesbc) 
    274232 
    275       ! Damping coefficients initialization 
    276       ! ----------------------------------- 
    277  
    278       IF( lzoom ) THEN 
    279          CALL dtacof_zoom 
    280       ELSE 
    281          CALL dtacof 
     233      !                          ! Damping coefficients initialization 
     234      IF( lzoom ) THEN   ;   CALL dtacof_zoom 
     235      ELSE               ;   CALL dtacof 
    282236      ENDIF 
    283  
     237      ! 
    284238   END SUBROUTINE tra_dmp_init 
    285239 
     
    297251      !! 
    298252      !! ** Action  : - resto, the damping coeff. for T and S 
    299       !! 
    300       !! History : 
    301       !!   9.0  !  03-09  (G. Madec)  Original code 
    302       !!---------------------------------------------------------------------- 
    303       !! * Local declarations 
    304       INTEGER ::   ji, jj, jk, jn      ! dummy loop indices 
    305       REAL(wp) ::   & 
    306          zlat, zlat0, zlat1, zlat2     ! temporary scalar 
    307       REAL(wp), DIMENSION(6)  ::   & 
    308          zfact                         ! temporary workspace 
     253      !!---------------------------------------------------------------------- 
     254      INTEGER  ::   ji, jj, jk, jn              ! dummy loop indices 
     255      REAL(wp) ::   zlat, zlat0, zlat1, zlat2   ! temporary scalar 
     256      REAL(wp), DIMENSION(6)  ::   zfact        ! temporary workspace 
    309257      !!---------------------------------------------------------------------- 
    310258 
     
    321269      ! damping along the forced closed boundary over 6 grid-points 
    322270      DO jn = 1, 6 
    323          IF( lzoom_w )   resto( mi0(jn+jpizoom):mi1(jn+jpizoom), : , : ) = zfact(jn) ! west  closed 
    324          IF( lzoom_s )   resto( : , mj0(jn+jpjzoom):mj1(jn+jpjzoom), : ) = zfact(jn) ! south closed  
    325          IF( lzoom_e )   resto( mi0(jpiglo+jpizoom-1-jn):mi1(jpiglo+jpizoom-1-jn) , : , : ) & 
    326                        &              = zfact(jn)                                 ! east  closed  
    327          IF( lzoom_n )   resto( : , mj0(jpjglo+jpjzoom-1-jn):mj1(jpjglo+jpjzoom-1-jn) , : ) & 
    328                        &              = zfact(jn)                                 ! north closed 
     271         IF( lzoom_w )   resto( mi0(jn+jpizoom):mi1(jn+jpizoom), : , : )                    = zfact(jn)   ! west  closed 
     272         IF( lzoom_s )   resto( : , mj0(jn+jpjzoom):mj1(jn+jpjzoom), : )                    = zfact(jn)   ! south closed  
     273         IF( lzoom_e )   resto( mi0(jpiglo+jpizoom-1-jn):mi1(jpiglo+jpizoom-1-jn) , : , : ) = zfact(jn)   ! east  closed  
     274         IF( lzoom_n )   resto( : , mj0(jpjglo+jpjzoom-1-jn):mj1(jpjglo+jpjzoom-1-jn) , : ) = zfact(jn)   ! north closed 
    329275      END DO 
    330276 
    331277 
    332278      IF( lzoom_arct .AND. lzoom_anta ) THEN 
    333  
     279         ! 
    334280         ! ==================================================== 
    335281         !  ORCA configuration : arctic zoom or antarctic zoom 
     
    364310            END DO 
    365311         END DO 
    366  
     312         ! 
    367313      ENDIF 
    368314 
    369315      ! ... Mask resto array 
    370316      resto(:,:,:) = resto(:,:,:) * tmask(:,:,:) 
    371  
     317      ! 
    372318   END SUBROUTINE dtacof_zoom 
     319 
    373320 
    374321   SUBROUTINE dtacof 
     
    383330      !! 
    384331      !! ** Action  : - resto, the damping coeff. for T and S 
    385       !! 
    386       !! History : 
    387       !!   5.0  !  91-03  (O. Marti, G. Madec)  Original code 
    388       !!        !  92-06  (M. Imbard)  doctor norme 
    389       !!        !  96-01  (G. Madec) statement function for e3 
    390       !!        !  98-07  (M. Imbard, G. Madec) ORCA version 
    391       !!        !  00-08  (G. Madec, D. Ludicone)  
    392       !!---------------------------------------------------------------------- 
    393       !! * Modules used 
     332      !!---------------------------------------------------------------------- 
    394333      USE iom 
    395334      USE ioipsl 
    396  
    397       !! * Local declarations 
     335      !! 
    398336      INTEGER ::   ji, jj, jk     ! dummy loop indices 
    399337      INTEGER ::   itime 
    400338      INTEGER ::   ii0, ii1, ij0, ij1  !    "          " 
    401       INTEGER ::   & 
    402          idmp,     &  ! logical unit for file restoring damping term 
    403          icot         ! logical unit for file distance to the coast 
     339      INTEGER ::   idmp         ! logical unit for file restoring damping term 
     340      INTEGER ::   icot         ! logical unit for file distance to the coast 
    404341      CHARACTER (len=32) :: clname3 
    405       REAL(wp) ::   & 
    406          zdate0, zinfl, zlon,         & ! temporary scalars 
    407          zlat, zlat0, zlat1, zlat2,   & !    "         " 
    408          zsdmp, zbdmp                   !    "         " 
    409       REAL(wp), DIMENSION(jpk) ::   & 
    410          zhfac 
    411       REAL(wp), DIMENSION(jpi,jpj) ::   & 
    412          zmrs 
    413       REAL(wp), DIMENSION(jpi,jpj,jpk) ::   & 
    414          zdct 
     342      REAL(wp) ::   zdate0, zinfl, zlon         ! temporary scalars 
     343      REAL(wp) ::   zlat, zlat0, zlat1, zlat2   !    "         " 
     344      REAL(wp) ::   zsdmp, zbdmp                !    "         " 
     345      REAL(wp), DIMENSION(jpk)         ::   zhfac 
     346      REAL(wp), DIMENSION(jpi,jpj)     ::   zmrs 
     347      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zdct 
    415348      !!---------------------------------------------------------------------- 
    416349 
     
    494427               DO ji = 1, jpi 
    495428                  zdct(ji,jj,jk) = MIN( zinfl, zdct(ji,jj,jk) ) 
    496  
    497429                  !   ... Decrease the value in the vicinity of the coast 
    498                   resto(ji,jj,jk) = resto(ji,jj,1)*0.5   & 
    499                      &            * ( 1. - COS( rpi*zdct(ji,jj,jk)/zinfl) ) 
    500  
     430                  resto(ji,jj,jk) = resto(ji,jj,1) * 0.5 * ( 1. - COS( rpi*zdct(ji,jj,jk)/zinfl) ) 
    501431                  !   ... Vertical variation from zsdmp (sea surface) to zbdmp (bottom) 
    502                   resto(ji,jj,jk) = resto(ji,jj,jk)   & 
    503                      &            * ( zbdmp + (zsdmp-zbdmp)*EXP(-fsdept(ji,jj,jk)/hdmp) ) 
     432                  resto(ji,jj,jk) = resto(ji,jj,jk)      * ( zbdmp + (zsdmp-zbdmp)*EXP(-fsdept(ji,jj,jk)/hdmp) ) 
    504433               END DO 
    505434            END DO 
    506435         END DO 
    507  
     436         ! 
    508437      ENDIF 
    509438 
     
    524453         CASE ( 4 )                                  !  ORCA_R4 configuration  
    525454            !                                        ! ======================= 
    526  
    527455            ! Mediterranean Sea 
    528456            ij0 =  50   ;   ij1 =  56 
     
    539467               zhfac (jk) = 1./rday 
    540468            END DO 
    541  
    542469            !                                        ! ======================= 
    543470         CASE ( 2 )                                  !  ORCA_R2 configuration  
    544471            !                                        ! ======================= 
    545  
    546472            ! Mediterranean Sea 
    547473            ij0 =  96   ;   ij1 = 110 
     
    576502               zhfac (jk) = 1./rday 
    577503            END DO 
    578  
    579504            !                                        ! ======================= 
    580505         CASE ( 05 )                                 !  ORCA_R05 configuration 
    581506            !                                        ! ======================= 
    582  
    583507            ! Mediterranean Sea 
    584508            ii0 = 568   ;   ii1 = 574  
     
    608532               zhfac (jk) = ( zbdmp + (zsdmp-zbdmp) * EXP(-fsdept(1,1,jk)/hdmp) ) 
    609533            END DO 
    610  
    611534            !                                       ! ======================== 
    612535         CASE ( 025 )                               !  ORCA_R025 configuration  
    613536            !                                       ! ======================== 
    614537            CALL ctl_stop( ' Not yet implemented in ORCA_R025' ) 
    615  
     538            ! 
    616539         END SELECT 
    617540 
     
    644567         CALL ymds2ju( 0     , 1      , 1      , 0.e0 , zdate0 ) 
    645568         CALL restini( 'NONE', jpi    , jpj    , glamt, gphit,    & 
    646                        jpk   , gdept_0, clname3, itime, zdate0,   & 
    647                        rdt   , idmp, domain_id=nidom ) 
     569            &          jpk   , gdept_0, clname3, itime, zdate0,   & 
     570            &          rdt   , idmp, domain_id=nidom ) 
    648571         CALL restput( idmp, 'Resto', jpi, jpj, jpk,   & 
    649                        0   , resto  ) 
     572            &          0   , resto  ) 
    650573         CALL restclo( idmp ) 
    651574      ENDIF 
    652  
     575      ! 
    653576   END SUBROUTINE dtacof 
    654577 
     
    673596      !! ** Action  : - pdct, distance to the coastline (argument) 
    674597      !!              - NetCDF file 'dist.coast.nc'  
    675       !!         
    676       !! History : 
    677       !!   7.0  !  01-02  (M. Imbard)  Original code 
    678       !!   8.1  !  01-02  (G. Madec, E. Durand) 
    679       !!   8.5  !  02-08  (G. Madec, E. Durand)  Free form, F90 
    680       !!---------------------------------------------------------------------- 
    681       !! * Modules used 
    682       USE ioipsl 
    683  
    684       !! * Arguments 
    685       REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT( out ) ::   & 
    686          pdct                     ! distance to the coastline 
    687  
    688       !! * local declarations 
    689       INTEGER :: ji, jj, jk, jl      ! dummy loop indices 
    690       INTEGER :: iju, ijt            ! temporary integers 
    691       INTEGER :: icoast, itime 
    692       INTEGER ::   & 
    693          icot         ! logical unit for file distance to the coast 
    694       LOGICAL, DIMENSION(jpi,jpj) ::   & 
    695          llcotu, llcotv, llcotf   ! ??? 
     598      !!---------------------------------------------------------------------- 
     599      USE ioipsl      ! IOipsl librairy 
     600      !! 
     601      REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT( out ) ::   pdct   ! distance to the coastline 
     602      !! 
     603      INTEGER ::   ji, jj, jk, jl      ! dummy loop indices 
     604      INTEGER ::   iju, ijt            ! temporary integers 
     605      INTEGER ::   icoast, itime 
     606      INTEGER ::   icot         ! logical unit for file distance to the coast 
     607      LOGICAL, DIMENSION(jpi,jpj) ::   llcotu, llcotv, llcotf   ! ??? 
    696608      CHARACTER (len=32) ::   clname 
    697609      REAL(wp) ::   zdate0 
    698       REAL(wp), DIMENSION(jpi,jpj) ::   & 
    699          zxt, zyt, zzt,                 &  ! cartesian coordinates for T-points 
    700          zmask                              
    701       REAL(wp), DIMENSION(3*jpi*jpj) ::   & 
    702          zxc, zyc, zzc, zdis      ! temporary workspace 
     610      REAL(wp), DIMENSION(jpi,jpj)   ::   zxt, zyt, zzt, zmask   ! cartesian coordinates for T-points 
     611      REAL(wp), DIMENSION(3*jpi*jpj) ::   zxc, zyc, zzc, zdis    ! temporary workspace 
    703612      !!---------------------------------------------------------------------- 
    704613 
     
    832741                  DO jl = 1, icoast 
    833742                     zdis(jl) = ( zxt(ji,jj) - zxc(jl) )**2   & 
    834                               + ( zyt(ji,jj) - zyc(jl) )**2   & 
    835                               + ( zzt(ji,jj) - zzc(jl) )**2 
     743                        &     + ( zyt(ji,jj) - zyc(jl) )**2   & 
     744                        &     + ( zzt(ji,jj) - zzc(jl) )**2 
    836745                  END DO 
    837746                  pdct(ji,jj,jk) = ra * SQRT( MINVAL( zdis(1:icoast) ) ) 
     
    850759      CALL ymds2ju( 0     , 1      , 1     , 0.e0 , zdate0 ) 
    851760      CALL restini( 'NONE', jpi    , jpj   , glamt, gphit ,   & 
    852                     jpk   , gdept_0, clname, itime, zdate0,   & 
    853                     rdt   , icot                         ) 
     761         &          jpk   , gdept_0, clname, itime, zdate0,   & 
     762         &          rdt   , icot                         ) 
    854763      CALL restput( icot, 'Tcoast', jpi, jpj, jpk, 0, pdct ) 
    855764      CALL restclo( icot ) 
Note: See TracChangeset for help on using the changeset viewer.