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 3823 for branches/2013/dev_r3411_CNRS4_IOCRS/NEMOGCM/NEMO/OPA_SRC/CRS/crsini.F90 – NEMO

Ignore:
Timestamp:
2013-02-28T14:31:33+01:00 (11 years ago)
Author:
cetlod
Message:

dev_r3411_CNRS4_IOCRS : minor bugfix + style

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2013/dev_r3411_CNRS4_IOCRS/NEMOGCM/NEMO/OPA_SRC/CRS/crsini.F90

    r3779 r3823  
    1212   USE crs_dom                  ! Coarse grid domain 
    1313   USE phycst, ONLY: omega, rad ! physical constants 
    14 !   USE wrk_nemo  
     14   USE wrk_nemo  
    1515   USE in_out_manager 
    1616   USE par_kind, ONLY: wp 
     
    1818   USE crsdomwri 
    1919   USE crslbclnk 
     20   USE lib_mpp 
    2021 
    2122   IMPLICIT NONE 
     
    6364      !!------------------------------------------------------------------- 
    6465      !! Local variables 
    65       INTEGER  :: ji,jj,jk,ijjgloT,ijis,ijie,ijjs,ijje         ! dummy indices 
     66      INTEGER  :: ji,jj,jk,ijjgloT,ijis,ijie,ijjs,ijje,jn      ! dummy indices 
    6667      INTEGER  :: ierr                                ! allocation error status 
    6768      REAL(wp) :: zrestx, zresty                      ! for determining odd or even reduction factor 
    68       REAL(wp), DIMENSION(:,:),   ALLOCATABLE :: zmbk 
    69       REAL(wp), DIMENSION(:,:,:), ALLOCATABLE :: zfse3t, zfse3u, zfse3v, zfse3f 
    70       REAL(wp), DIMENSION(:,:,:), ALLOCATABLE :: zfse3w, zfse3t_n, zfse3t_b 
     69      REAL(wp), DIMENSION(:,:)  , POINTER :: zmbk 
     70      REAL(wp), DIMENSION(:,:,:), POINTER :: zfse3t, zfse3u, zfse3v, zfse3w 
    7171      LOGICAL  :: llok 
    7272 
     
    9696         WRITE(numout,*) '          nn_msh_crs = ', nn_msh_crs 
    9797      ENDIF 
    98  
     98               
    9999     rfactx_r = 1./nn_factx 
    100100     rfacty_r = 1./nn_facty 
     
    107107      jpjglo_crs   = INT( (jpjglo - 2) / nn_facty ) + 2  ! the -2 removes j=1, j=jpj 
    108108      jpiglo_crsm1 = jpiglo_crs - 1 
    109       jpjglo_crsm1 = jpjglo_crs - 1 
    110       jpkm1  = jpk - 1 
     109      jpjglo_crsm1 = jpjglo_crs - 1   
    111110 
    112111     ! 2.b. Define local domain indices 
    113       jpi_crs = ( jpiglo_crs-2*jpreci + (jpni-1) ) / jpni + 2*jpreci 
    114       jpj_crs = ( jpjglo_crs-2*jprecj + (jpnj-1) ) / jpnj + 2*jprecj  
    115       jpi_crsm1 = jpi_crs - 1 
    116       jpj_crsm1 = jpj_crs - 1 
    117  
     112      jpi_crs = ( jpiglo_crs-2 * jpreci + (jpni-1) ) / jpni + 2*jpreci 
     113      jpj_crs = ( jpjglo_crs-2 * jprecj + (jpnj-1) ) / jpnj + 2*jprecj 
     114        
     115      jpi_crsm1   = jpi_crs - 1 
     116      jpj_crsm1   = jpj_crs - 1 
    118117      nperio_crs  = jperio 
    119118      npolj_crs   = npolj 
    120  
    121       IF ( jpnij == 1 ) THEN 
    122          jpnij_crs = jpnij 
    123          narea_crs = narea 
    124          nimpp_crs = nimpp 
    125          njmpp_crs = njmpp 
     119       
     120      ierr = crs_dom_alloc()          ! allocate most coarse grid arrays 
     121 
     122      IF( .NOT. lk_mpp ) THEN 
     123         nimpp_crs  = 1 
     124         njmpp_crs  = 1 
     125         nlci_crs   = jpi_crs 
     126         nlcj_crs   = jpj_crs 
     127         nldi_crs   = 1 
     128         nldj_crs   = 1 
     129         nlei_crs   = jpi_crs 
     130         nlej_crs   = jpj_crs 
     131 
    126132      ELSE 
    127          WRITE(numout,*) 'crsini.F90. mpp not supported... Stopping' 
    128          STOP 
    129       ENDIF 
    130  
    131       nlcj_crs = jpj_crs  
    132       nlci_crs = jpi_crs 
    133       nldi_crs = 1 
    134       nlei_crs = jpi_crs 
    135       nlej_crs = jpj_crs 
    136       nldj_crs = 1 
     133         ! Initialisation of most local variables - 
     134         nimpp_crs  = 1 
     135         njmpp_crs  = 1 
     136         nlci_crs   = jpi_crs 
     137         nlcj_crs   = jpj_crs 
     138         nldi_crs   = 1 
     139         nldj_crs   = 1 
     140         nlei_crs   = jpi_crs 
     141         nlej_crs   = jpj_crs 
     142 
     143        SELECT CASE ( npolj ) 
     144      
     145        CASE ( 0 ) 
     146  
     147           nlej_crs = AINT( REAL( ( jpjglo - (njmpp - 1) ) / nn_facty, wp ) ) & 
     148              &     - AINT( REAL( ( jpjglo - mjg(nlej-1) ) / nn_facty, wp ) ) 
     149           IF( noso == -1 ) THEN 
     150              IF( MOD( jpjglo - njmpp     , nn_facty ) > 0 )             nlej_crs = nlej_crs + 1 
     151           ELSE 
     152              IF( MOD( jpjglo - njmpp + 1 , nn_facty ) > nn_facty / 2 )  nlej_crs = nlej_crs + 1 
     153           ENDIF 
     154         
     155        CASE ( 3, 4, 5, 6 ) 
     156 
     157           nlej_crs = AINT( REAL( ( jpjglo - (njmpp - 1) ) / nn_facty, wp ) ) & 
     158              &     - AINT( REAL( ( jpjglo - mjg(nlej) + 1 ) / nn_facty, wp ) ) + 1 
     159         
     160        CASE DEFAULT 
     161            WRITE(numout,*) 'crs_init. Only jperio =0, 3, 4, 5, 6 supported'  
     162            STOP 
     163         END SELECT 
     164 
     165         IF (noso > -1) THEN 
     166            nlej_crs = nlej_crs + 1 
     167            nldj_crs = 2 
     168         ELSE 
     169            nldj_crs = 1 
     170         ENDIF 
     171          
     172         IF ( nono < jpnj  ) THEN 
     173            nlcj_crs = nlej_crs + 1 
     174         ELSE 
     175            nlcj_crs = nlej_crs 
     176         ENDIF 
     177          
     178         njmpp_crs = jpjglo_crs - ANINT( REAL( (jpjglo - njmpp ) / nn_facty, wp ) ) - 1 
     179         IF( MOD( jpjglo - njmpp , nn_facty ) > nn_facty / 2 )  njmpp_crs = njmpp_crs - 1 
     180 
     181       ENDIF 
     182 
     183      CALL dom_grid_crs  !swich de grille 
     184      
    137185 
    138186      IF (lwp) THEN 
    139187         WRITE(numout,*) 
    140188         WRITE(numout,*) 'crs_init : coarse grid dimensions' 
    141          WRITE(numout,*) '~~~~~~~   coarse domain global j-dimension           jpjglo_crs = ', jpjglo_crs 
    142          WRITE(numout,*) '~~~~~~~   coarse domain global i-dimension           jpiglo_crs = ', jpiglo_crs 
    143          WRITE(numout,*) '~~~~~~~   coarse domain local  i-dimension              jpi_crs = ', jpi_crs 
    144          WRITE(numout,*) '~~~~~~~   coarse domain local  j-dimension              jpj_crs = ', jpj_crs 
     189         WRITE(numout,*) '~~~~~~~   coarse domain global j-dimension           jpjglo = ', jpjglo 
     190         WRITE(numout,*) '~~~~~~~   coarse domain global i-dimension           jpiglo = ', jpiglo 
     191         WRITE(numout,*) '~~~~~~~   coarse domain local  i-dimension              jpi = ', jpi 
     192         WRITE(numout,*) '~~~~~~~   coarse domain local  j-dimension              jpj = ', jpj 
     193         WRITE(numout,*) 
     194         WRITE(numout,*) ' nproc  = ', narea 
     195         WRITE(numout,*) ' nlci   = ', nlci 
     196         WRITE(numout,*) ' nlcj   = ', nlcj 
     197         WRITE(numout,*) ' nldi   = ', nldi 
     198         WRITE(numout,*) ' nldj   = ', nldj 
     199         WRITE(numout,*) ' nlei   = ', nlei 
     200         WRITE(numout,*) ' nlej   = ', nlej 
     201         WRITE(numout,*) ' nimpp  = ', nimpp 
     202         WRITE(numout,*) ' njmpp  = ', njmpp 
     203         WRITE(numout,*) 
    145204      ENDIF 
    146       
    147  
     205 
     206      CALL dom_grid_glo 
     207       
    148208      mxbinctr   = INT( nn_factx * 0.5 ) 
    149209      mybinctr   = INT( nn_facty * 0.5 ) 
     
    169229 
    170230 !jes. TODO Need to deallocate these if ln_crs = F  
    171       ierr = crs_dom_alloc()          ! allocate most coarse grid arrays 
     231       
    172232 
    173233! jes. TODO. Add the next two lines when mpp is done 
     
    181241      mjs_crs(:) = 0; mje_crs(:) = 0 
    182242 
     243       
    183244      SELECT CASE ( cn_binref ) 
    184245 
    185246      CASE ( 'NORTH' )  
    186247 
    187          SELECT CASE ( nperio ) 
     248         SELECT CASE ( npolj ) 
     249         !cc 
     250        CASE ( 0, 1, 3, 4 )    !   3, 4 : T-Pivot at North Fold 
     251         
     252            DO ji = 2, jpiglo_crsm1 
     253               ijie = (ji*nn_factx)-nn_factx   !cc 
     254               ijis = ijie-nn_factx+1 
     255               mis_crs(ji) = ijis 
     256               mie_crs(ji) = ijie 
     257            ENDDO 
     258            IF ( jpiglo - 1 - mie_crs(jpiglo_crsm1) <= nn_factx ) mie_crs(jpiglo_crsm1)  = jpiglo-2  ! ijie = jpiglo-1 !cc 
     259 
     260            ! Handle first the northernmost bin 
     261            IF ( nn_facty == 2 ) THEN   ;    ijjgloT = jpjglo - 1  
     262            ELSE                        ;    ijjgloT = jpjglo 
     263            ENDIF 
     264 
     265            DO jj = 2, jpjglo_crsm1 
     266                ijje = ijjgloT-nn_facty*(jj-2) 
     267                ijjs = ijje-nn_facty+1                    
     268                mjs_crs(jpjglo_crs-jj+1) = ijjs 
     269                mje_crs(jpjglo_crs-jj+1) = ijje 
     270            ENDDO 
    188271 
    189272         CASE ( 2 )  
    190273            WRITE(numout,*)  'crs_init, jperio=2 not supported'  
    191274         
    192          CASE ( 3, 4 )     ! T-Pivot at North Fold  
     275         CASE ( 5, 6 )    ! F-pivot at North Fold 
    193276 
    194277            DO ji = 2, jpiglo_crsm1 
    195                !cc ijie = (ji*nn_factx)-nn_factx+1 
    196                ijie = (ji*nn_factx)-nn_factx   !cc 
     278               ijie = (ji*nn_factx)-nn_factx  
    197279               ijis = ijie-nn_factx+1 
    198  
    199                IF ( ji == jpiglo_crsm1 ) THEN 
    200                   IF ( ((jpiglo-1)-ijie) <= nn_factx ) ijie = jpiglo-2  ! ijie = jpiglo-1 !cc 
    201                ENDIF 
    202  
    203                   ! Handle first the northernmost bin 
    204                   IF ( nn_facty == 2 ) THEN 
    205                      ijjgloT=jpjglo-1 
    206                   ELSE 
    207                      ijjgloT=jpjglo 
    208                   ENDIF 
    209  
    210                  DO jj = 2, jpjglo_crsm1 
    211                 ! cc ijje = ijjgloT-nn_facty*(jj-2) 
    212                      ijje = ijjgloT-nn_facty*(jj-2) - 1 
    213                      ijjs = ijje-nn_facty+1                    
    214                    
    215                      IF ( ijjs <= nn_facty )   ijjs = 2 
    216  
    217                      mis_crs(ji) = ijis 
    218                      mie_crs(ji) = ijie 
    219                      mjs_crs(jpjglo_crs-jj+1) = ijjs 
    220                      mje_crs(jpjglo_crs-jj+1) = ijje 
    221  
    222                  ENDDO 
    223               ENDDO 
    224  
    225          CASE ( 5, 6 )    ! F-pivot at North Fold 
    226  
    227             DO ji = 2, jpiglo_crsm1 
    228                ijie = (ji*nn_factx)-nn_factx+1 
    229                ijis = ijie-nn_factx+1 
    230  
    231                IF ( ji == jpiglo_crsm1 ) THEN 
    232                   IF ( ((jpiglo-1)-ijie) <= nn_factx )   ijie = jpiglo-1 
    233                ENDIF 
    234  
    235                ! Treat the northernmost bin separately. 
    236                jj = 2 
    237                ijje = jpjglo-nn_facty*(jj-2) 
    238                   IF ( nn_facty == 3 ) THEN 
    239                      ijjs=ijje-1 
    240                   ELSE 
    241                      ijjs=ijje-nn_facty+1 
    242                   ENDIF 
    243  
    244                 mis_crs(ji) = ijis 
    245                 mie_crs(ji) = ijie 
    246                 mjs_crs(jpjglo_crs-jj+1) = ijjs 
    247                 mje_crs(jpjglo_crs-jj+1) = ijje 
    248  
    249                 ! Now bin the rest, any remainder at the south is lumped in the southern bin 
    250                 DO jj = 3, jpjglo_crsm1 
    251  
    252                    ijje = jpjglo-nn_facty*(jj-2) 
    253                    ijjs = ijje-nn_facty+1                   
    254                    
    255                    IF ( ijjs <= nn_facty )   ijjs = 2 
    256  
    257                    mis_crs(ji) = ijis 
    258                    mie_crs(ji) = ijie 
    259                    mjs_crs(jpjglo_crs-jj+1) = ijjs 
    260                    mje_crs(jpjglo_crs-jj+1) = ijje 
    261                 ENDDO 
     280               mis_crs(ji) = ijis 
     281               mie_crs(ji) = ijie 
    262282            ENDDO 
     283            IF ( jpiglo - 1 - mie_crs(jpiglo_crsm1) <= nn_factx ) mie_crs(jpiglo_crsm1)  = jpiglo-2  ! ijie = jpiglo-1 !cc 
     284 
     285            ! Treat the northernmost bin separately. 
     286            jj = 2 
     287            ijje = jpj-nn_facty*(jj-2) 
     288            IF ( nn_facty == 3 ) THEN   ;  ijjs = ijje - 1  
     289            ELSE                        ;  ijjs = ijje - nn_facty + 1 
     290            ENDIF 
     291            mjs_crs(jpj_crs-jj+1) = ijjs 
     292            mje_crs(jpj_crs-jj+1) = ijje 
     293 
     294            ! Now bin the rest, any remainder at the south is lumped in the southern bin 
     295            DO jj = 3, jpjglo_crsm1 
     296                ijje = jpjglo-nn_facty*(jj-2) 
     297                ijjs = ijje-nn_facty+1                   
     298                IF ( ijjs <= nn_facty )   ijjs = 2 
     299                mjs_crs(jpj_crs-jj+1) = ijjs 
     300                mje_crs(jpj_crs-jj+1) = ijje 
     301            ENDDO 
    263302 
    264303         CASE DEFAULT 
    265             WRITE(numout,*) 'crs_init. Only jperio = 3, 4, 5, 6 supported'  
     304            WRITE(numout,*) 'crs_init. Only jperio = 0, 1, 3, 4, 5, 6 supported'  
    266305  
    267306         END SELECT 
     
    271310 
    272311      END SELECT 
     312 
    273313 
    274314        ! Pad the boundaries, do not know if it is necessary 
    275315         mis_crs(1) = 1           ; mis_crs(jpiglo_crs) = mie_crs(jpiglo_crs - 1) + 1    !cc 
    276316         mie_crs(1) = nn_factx    ; mie_crs(jpiglo_crs) = jpiglo                         !cc 
    277          mjs_crs(1) = 1           ; mjs_crs(jpjglo_crs) = mje_crs(jpjglo_crs - 1) + 1 
     317! Probleme de segmentation je sais pas pourquoi 
     318         mjs_crs(1) = 1           ; mjs_crs(jpjglo_crs) = mje_crs(jpjglo_crsm1) + 1    
    278319         mje_crs(1) = mjs_crs(2)-1; mje_crs(jpjglo_crs) = jpjglo  
    279320 
    280 !         WRITE(numout,*) 'crs_init. coarse grid bounds on parent grid' 
    281 !         WRITE(numout,'(1x,a,62(1x,i3),/)') 'mis_crs=', mis_crs 
    282 !         WRITE(numout,'(1x,a,62(1x,i3),/)') 'mie_crs=', mie_crs 
    283 !         WRITE(numout,'(1x,a,51(1x,i3),/)') 'mjs_crs=', mjs_crs 
    284 !         WRITE(numout,'(1x,a,51(1x,i3),/)') 'mje_crs=', mje_crs 
    285  
    286    
     321  !       WRITE(numout,*) 'crs_init. coarse grid bounds on parent grid' 
     322  !       WRITE(numout,*) 'mis_crs=', mis_crs 
     323  !       WRITE(numout,*) 'mie_crs=', mie_crs 
     324  !       WRITE(numout,*) 'mjs_crs=', mjs_crs 
     325  !       WRITE(numout,*) 'mje_crs=', mje_crs 
     326          
     327  
     328      IF( .NOT. lk_mpp ) THEN      
     329         njstart = 1     ;    njend =  jpj_crsm1 
     330      ELSE 
     331         ! 
     332         IF( noso == -1 )  THEN ;   njstart = 1 
     333         ELSE                   ;   njstart = 2 
     334         ENDIF 
     335         ! 
     336         IF( mje_crs(nlej_crs) >= jpj )   THEN ;   njend = nlej_crs - 1 
     337         ELSE                                  ;   njend = nlej_crs 
     338         ENDIF 
     339         ! 
     340      ENDIF 
     341 
    287342     !--------------------------------------------------------- 
    288343     ! 3. Mask and Mesh 
     
    310365 
    311366        CALL crsfun( gphit, glamt, 'T', gphit_crs, glamt_crs )  
    312         WRITE(numout,*) 'crsini. gphit_crs(15,15)', gphit_crs(15,15) 
    313         WRITE(numout,*) 'crsini. glamt_crs(15,15)', glamt_crs(15,15) 
    314  
    315         WRITE(numout,*) 'crsini. count 1' 
     367 !       WRITE(numout,*) 'crsini. gphit_crs(15,15)', gphit_crs(15,15) 
     368 !       WRITE(numout,*) 'crsini. glamt_crs(15,15)', glamt_crs(15,15) 
     369 
     370  !      WRITE(numout,*) 'crsini. count 1' 
    316371 
    317372        CALL crsfun( gphiu, glamu, 'U', gphiu_crs, glamu_crs )       !cc 
    318         WRITE(numout,*) 'crsini. gphiu_crs(15,15)', gphiu_crs(15,15) !cc 
    319         WRITE(numout,*) 'crsini. glamu_crs(15,15)', glamu_crs(15,15) !cc 
    320         WRITE(numout,*) 'crsini. count 2' 
     373   !     WRITE(numout,*) 'crsini. gphiu_crs(15,15)', gphiu_crs(15,15) !cc 
     374    !    WRITE(numout,*) 'crsini. glamu_crs(15,15)', glamu_crs(15,15) !cc 
     375     !   WRITE(numout,*) 'crsini. count 2' 
    321376  
    322377        CALL crsfun( p_pgphi=gphiv, p_pglam=glamv, cd_type='V', p_cgphi=gphiv_crs, p_cglam=glamv_crs ) !cc 
    323         WRITE(numout,*) 'crsini. gphiv_crs(15,15)', gphiv_crs(15,15) !cc 
    324         WRITE(numout,*) 'crsini. glamv_crs(15,15)', glamv_crs(15,15) !cc 
    325  
    326         WRITE(numout,*) 'crsini. count 3' 
     378      !  WRITE(numout,*) 'crsini. gphiv_crs(15,15)', gphiv_crs(15,15) !cc 
     379       ! WRITE(numout,*) 'crsini. glamv_crs(15,15)', glamv_crs(15,15) !cc 
     380 
     381    !    WRITE(numout,*) 'crsini. count 3' 
    327382        CALL crsfun( p_pgphi=gphif, p_pglam=glamf, cd_type='F', p_cgphi=gphif_crs, p_cglam=glamf_crs ) !cc 
    328         WRITE(numout,*) 'crsini. gphif_crs(15,15)', gphif_crs(15,15) !cc 
    329         WRITE(numout,*) 'crsini. glamf_crs(15,15)', glamf_crs(15,15) !cc 
    330  
    331         WRITE(numout,*) 'crsini. count 4' 
     383    !    WRITE(numout,*) 'crsini. gphif_crs(15,15)', gphif_crs(15,15) !cc 
     384    !    WRITE(numout,*) 'crsini. glamf_crs(15,15)', glamf_crs(15,15) !cc 
     385 
     386     !   WRITE(numout,*) 'crsini. count 4' 
    332387     ELSEIF ( zresty /= 0 .AND. zrestx == 0 ) THEN 
    333388        CALL crsfun( p_pgphi=gphiu, p_pglam=glamu, cd_type='T', p_cgphi=gphit_crs, p_cglam=glamt_crs ) 
     
    406461      ENDDO 
    407462      
    408       ALLOCATE( zmbk(jpi_crs,jpj_crs) ) 
     463      CALL wrk_alloc( jpi_crs, jpj_crs, zmbk ) 
    409464 
    410465      zmbk(:,:) = 0.0 
     
    438493 
    439494     !    3.d.2   Vertical scale factors 
    440  
    441      ALLOCATE( zfse3t(jpi,jpj,jpk),   zfse3u(jpi,jpj,jpk),   zfse3v(jpi,jpj,jpk), zfse3f(jpi,jpj,jpk), & 
    442         &      zfse3w(jpi,jpj,jpk), zfse3t_n(jpi,jpj,jpk), zfse3t_b(jpi,jpj,jpk)  ) 
     495     CALL wrk_alloc(jpi, jpj, jpk, zfse3t, zfse3u, zfse3v, zfse3w ) 
     496     ! 
    443497     zfse3t(:,:,:) = fse3t(:,:,:) 
    444498     zfse3u(:,:,:) = fse3u(:,:,:) 
    445499     zfse3v(:,:,:) = fse3v(:,:,:) 
    446      zfse3f(:,:,:) = fse3f(:,:,:) 
    447500     zfse3w(:,:,:) = fse3w(:,:,:) 
    448501      
    449502       
    450  
    451      !CALL crsfun( p_e1e2t=e1e2t, cd_type='T', cd_op='MAX', p_cmask=tmask_crs, p_ptmask=tmask, p_pfield3d_1=zfse3t, p_cfield3d=e3t_crs ) 
    452      !CALL crsfun( p_e1e2t=e1e2t, cd_type='W', cd_op='MAX', p_cmask=tmask_crs, p_ptmask=tmask, p_pfield3d_1=zfse3w, p_cfield3d=e3w_crs ) 
     503      WRITE(numout,*) 'crs_init : beginning section 3.d.2 ! ' 
     504     !CALL crsfun( p_e1e2t=e1e2t, cd_type='T', cd_op='MAX', p_cmask=tmask_crs, & 
     505     !     &       p_ptmask=tmask, p_pfield3d_1=zfse3t, p_cfield3d=e3t_crs ) 
     506     !CALL crsfun( p_e1e2t=e1e2t, cd_type='W', cd_op='MAX', p_cmask=tmask_crs, & 
     507     !     &       p_ptmask=tmask, p_pfield3d_1=zfse3w, p_cfield3d=e3w_crs ) 
    453508     !CALL crsfun( p_e1e2t=e1e2t, cd_type='U', cd_op='MIN', p_cmask=umask_crs, p_ptmask=umask, p_pfield3d_1=zfse3u, p_cfield3d=e3u_crs ) 
    454509     !CALL crsfun( p_e1e2t=e1e2t, cd_type='V', cd_op='MIN', p_cmask=vmask_crs, p_ptmask=vmask, p_pfield3d_1=zfse3v, p_cfield3d=e3v_crs ) 
    455510     !CALL crsfun( p_e1e2t=e1e2t, cd_type='F', cd_op='MIN', p_cmask=fmask_crs, p_ptmask=fmask, p_pfield3d_1=zfse3f, p_cfield3d=e3f_crs ) 
     511  
    456512     CALL crs_e3_max( p_e3=zfse3t, cd_type='T', p_mask=tmask, p_e3_crs=e3t_crs) 
    457513     CALL crs_e3_max( p_e3=zfse3w, cd_type='W', p_mask=tmask, p_e3_crs=e3w_crs) 
     514      
     515      WRITE(numout,*) 'crs_init : crs_e3_max ' 
     516       
    458517     
    459518     ! Reset 0 to e3t_0 or e3w_0 
     
    522581     ! 7. Finish and clean-up 
    523582     !--------------------------------------------------------- 
    524       DEALLOCATE( zmbk ) 
    525       DEALLOCATE( zfse3t, zfse3u, zfse3v, zfse3f ) 
    526       DEALLOCATE( zfse3w, zfse3t_n, zfse3t_b )  
    527  
    528        
     583     CALL wrk_dealloc( jpi_crs, jpj_crs, zmbk ) 
     584     CALL wrk_dealloc(jpi, jpj, jpk, zfse3t, zfse3u, zfse3v, zfse3w ) 
     585 
     586 
    529587   END SUBROUTINE crs_init 
    530588     
Note: See TracChangeset for help on using the changeset viewer.