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 719 for trunk/NEMO/LIM_SRC/limwri.F90 – NEMO

Ignore:
Timestamp:
2007-10-16T16:59:56+02:00 (17 years ago)
Author:
ctlod
Message:

get back to the nemo_v2_3 version for trunk

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMO/LIM_SRC/limwri.F90

    • Property svn:keywords changed from Id to Author Date Id Revision
    r717 r719  
    1515   !!   lim_wri_init : initialization and namelist read 
    1616   !!---------------------------------------------------------------------- 
     17   USE ioipsl 
     18   USE dianam    ! build name of file (routine) 
    1719   USE phycst 
    1820   USE dom_oce 
    1921   USE daymod 
     22   USE in_out_manager 
    2023   USE ice_oce         ! ice variables 
    21    USE sbc_oce 
    22    USE sbc_ice 
     24   USE flx_oce 
    2325   USE dom_ice 
    2426   USE ice 
    25  
    2627   USE lbclnk 
    27    USE dianam    ! build name of file (routine) 
    28    USE in_out_manager 
    29    USE ioipsl 
    3028 
    3129   IMPLICIT NONE 
    3230   PRIVATE 
    3331 
    34    PUBLIC   lim_wri        ! routine called by sbcice_lim module 
     32   PUBLIC   lim_wri        ! routine called by lim_step.F90 
    3533 
    3634   INTEGER, PARAMETER                       ::   jpnoumax = 40   ! maximum number of variable for ice output 
     
    5149      zone   = 1.e0 
    5250 
    53    !! * Substitutions 
    54 #   include "vectopt_loop_substitute.h90" 
    55    !!---------------------------------------------------------------------- 
    56    !!  LIM 2.0, UCL-LOCEAN-IPSL (2006) 
    57    !! $Header: $ 
     51   !!---------------------------------------------------------------------- 
     52   !!  LIM 2.0, UCL-LOCEAN-IPSL (2005) 
     53   !! $Header$ 
    5854   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 
    5955   !!---------------------------------------------------------------------- 
     
    8379      !!------------------------------------------------------------------- 
    8480      INTEGER, INTENT(in) ::   kt     ! number of iteration 
    85       !! 
     81 
    8682      INTEGER  ::   ji, jj, jf                      ! dummy loop indices 
    8783      CHARACTER(len = 40)  ::   clhstnam, clop 
     
    9490 
    9591      !                                          !--------------------! 
    96       IF( kt == nit000 ) THEN                    !   Initialisation   ! 
     92      IF ( kt == nit000 ) THEN                !   Initialisation   ! 
    9793         !                                       !--------------------! 
    9894         CALL lim_wri_init  
     
    10197!!Chris         clop     = "ave(only(x))"      !ibug  namelist parameter a ajouter 
    10298         clop     = "ave(x)" 
    103          zout     = nwrite * rdt_ice / nn_fsbc 
     99         zout     = nwrite * rdt_ice / nfice 
    104100         zsec     = 0. 
    105101         niter    = 0 
     
    114110          
    115111         DO jf = 1, noumef 
    116             IF( nc(jf) == 1 )   CALL histdef( nice, nam(jf), titn(jf), uni(jf), jpi, jpj   & 
    117                                                , nhorid, 1, 1, 1, -99, 32, clop, zsto, zout ) 
     112            IF ( nc(jf) == 1 )   CALL histdef( nice, nam(jf), titn(jf), uni(jf), jpi, jpj   & 
     113                  &                                , nhorid, 1, 1, 1, -99, 32, clop, zsto, zout ) 
    118114         END DO 
    119115         CALL histend( nice ) 
    120          ! 
     116          
    121117      ENDIF 
    122118      !                                          !--------------------! 
     
    124120      !                                          !--------------------! 
    125121 
    126       !-- Store instantaneous values in zcmo 
     122!!gm  change the print below to have it only at output time step or when nitend =< 100 
     123      IF(lwp) THEN 
     124         WRITE(numout,*) 
     125         WRITE(numout,*) 'lim_wri : write ice outputs in NetCDF files at time : ', nyear, nmonth, nday, kt + nfice - 1 
     126         WRITE(numout,*) '~~~~~~~ ' 
     127      ENDIF 
     128 
     129      !-- calculs des valeurs instantanees 
    127130       
    128131      zcmo(:,:, 1:jpnoumax ) = 0.e0  
    129132      DO jj = 2 , jpjm1 
    130          DO ji = fs_2 , fs_jpim1 
     133         DO ji = 2 , jpim1 
    131134            zindh  = MAX( zzero , SIGN( zone , hicif(ji,jj) * (1.0 - frld(ji,jj) ) - 0.10 ) ) 
    132135            zinda  = MAX( zzero , SIGN( zone , ( 1.0 - frld(ji,jj) ) - 0.10 ) ) 
     
    139142            zcmo(ji,jj,5)  = sist  (ji,jj) 
    140143            zcmo(ji,jj,6)  = fbif  (ji,jj) 
    141             zcmo(ji,jj,7)  = zindb * (  ui_ice(ji,jj  ) * tmu(ji,jj  ) + ui_ice(ji+1,jj  ) * tmu(ji+1,jj  )   & 
    142                                       + ui_ice(ji,jj+1) * tmu(ji,jj+1) + ui_ice(ji+1,jj+1) * tmu(ji+1,jj+1) ) & 
     144            zcmo(ji,jj,7)  = zindb * (  u_ice(ji,jj  ) * tmu(ji,jj  ) + u_ice(ji+1,jj  ) * tmu(ji+1,jj  )   & 
     145                                      + u_ice(ji,jj+1) * tmu(ji,jj+1) + u_ice(ji+1,jj+1) * tmu(ji+1,jj+1) ) & 
    143146                                  / ztmu  
    144147 
    145             zcmo(ji,jj,8)  = zindb * (  vi_ice(ji,jj  ) * tmu(ji,jj  ) + vi_ice(ji+1,jj  ) * tmu(ji+1,jj  )   & 
    146                                       + vi_ice(ji,jj+1) * tmu(ji,jj+1) + vi_ice(ji+1,jj+1) * tmu(ji+1,jj+1) ) & 
     148            zcmo(ji,jj,8)  = zindb * (  v_ice(ji,jj  ) * tmu(ji,jj  ) + v_ice(ji+1,jj  ) * tmu(ji+1,jj  )   & 
     149                                      + v_ice(ji,jj+1) * tmu(ji,jj+1) + v_ice(ji+1,jj+1) * tmu(ji+1,jj+1) ) & 
    147150                                  / ztmu 
    148             zcmo(ji,jj,9)  = sst_m(ji,jj) 
    149             zcmo(ji,jj,10) = sss_m(ji,jj) 
    150  
    151 !!gm        zcmo(ji,jj,11) = fnsolar(ji,jj) + fsolar(ji,jj) 
    152 !!gm        zcmo(ji,jj,12) = fsolar (ji,jj) 
    153 !!gm        zcmo(ji,jj,13) = fnsolar(ji,jj) 
    154             zcmo(ji,jj,11) = qns(ji,jj) + qsr(ji,jj) 
    155             zcmo(ji,jj,12) = qsr(ji,jj) 
    156             zcmo(ji,jj,13) = qns(ji,jj) 
     151            zcmo(ji,jj,9)  = sst_io(ji,jj) 
     152            zcmo(ji,jj,10) = sss_io(ji,jj) 
     153 
     154            zcmo(ji,jj,11) = fnsolar(ji,jj) + fsolar(ji,jj) 
     155            zcmo(ji,jj,12) = fsolar (ji,jj) 
     156            zcmo(ji,jj,13) = fnsolar(ji,jj) 
    157157            ! See thersf for the coefficient 
    158 !!gm        zcmo(ji,jj,14) = - fsalt(ji,jj) * rday * ( sss_m(ji,jj) + epsi16 ) / soce 
    159             zcmo(ji,jj,14) = - emps(ji,jj) * rday * ( sss_m(ji,jj) + epsi16 ) / soce    !!gm ??? 
    160             zcmo(ji,jj,15) = utaui_ice(ji,jj) 
    161             zcmo(ji,jj,16) = vtaui_ice(ji,jj) 
    162             zcmo(ji,jj,17) = ( 1.0 - frld(ji,jj) ) * qsr_ice(ji,jj) + frld(ji,jj) * qsr(ji,jj)   !!gm a revoir 
    163             zcmo(ji,jj,18) = ( 1.0 - frld(ji,jj) ) * qns_ice(ji,jj) + frld(ji,jj) * qns(ji,jj)   !!gm a revoir 
     158            zcmo(ji,jj,14) = - fsalt(ji,jj) * rday * ( sss_io(ji,jj) + epsi16 ) / soce 
     159            zcmo(ji,jj,15) = gtaux(ji,jj) 
     160            zcmo(ji,jj,16) = gtauy(ji,jj) 
     161            zcmo(ji,jj,17) = ( 1.0 - frld(ji,jj) ) * qsr_ice (ji,jj) + frld(ji,jj) * qsr_oce (ji,jj) 
     162            zcmo(ji,jj,18) = ( 1.0 - frld(ji,jj) ) * qnsr_ice(ji,jj) + frld(ji,jj) * qnsr_oce(ji,jj) 
    164163            zcmo(ji,jj,19) = sprecip(ji,jj) 
    165164         END DO 
     
    176175         END DO 
    177176          
    178          IF( jf == 7  .OR. jf == 8  .OR. jf == 11 .OR. jf == 12 .OR. jf == 15 .OR.   & 
    179             &                            jf == 23 .OR. jf == 24 .OR. jf == 16 ) THEN  
     177         IF ( jf == 7  .OR. jf == 8  .OR. jf == 15 .OR. jf == 16 ) THEN  
    180178            CALL lbc_lnk( zfield, 'T', -1. ) 
    181179         ELSE  
     
    183181         ENDIF 
    184182          
    185          IF( nc(jf) == 1 )  CALL histwrite( nice, nam(jf), niter, zfield, ndim, ndex51 ) 
     183         IF ( nc(jf) == 1 ) CALL histwrite( nice, nam(jf), niter, zfield, ndim, ndex51 ) 
    186184          
    187185      END DO 
    188186       
    189       IF( ( nn_fsbc * niter + nit000 - 1 ) >= nitend )   CALL histclo( nice )  
     187      IF ( ( nfice * niter + nit000 - 1 ) >= nitend ) THEN 
     188         CALL histclo( nice )  
     189      ENDIF 
    190190      ! 
    191191   END SUBROUTINE lim_wri 
     
    225225         field_13, field_14, field_15, field_16, field_17, field_18,   & 
    226226         field_19 
    227       !!------------------------------------------------------------------- 
    228  
    229       REWIND ( numnam_ice )                ! Read Namelist namicewri 
     227!!gm      NAMELIST/namiceout/ noumef, & 
     228!!           zfield( 1), zfield( 2), zfield( 3), zfield( 4), zfield( 5),   & 
     229!!           zfield( 6), zfield( 7), zfield( 8), zfield( 9), zfield(10),   & 
     230!!           zfield(11), zfield(12), zfield(13), zfield(14), zfield(15),   & 
     231!!gm         zfield(16), zfield(17), zfield(18), zfield(19) 
     232      !!------------------------------------------------------------------- 
     233 
     234      ! Read Namelist namicewri 
     235      REWIND ( numnam_ice ) 
    230236      READ   ( numnam_ice  , namiceout ) 
    231237       
    232       zfield( 1) = field_1 
    233       zfield( 2) = field_2 
    234       zfield( 3) = field_3 
    235       zfield( 4) = field_4 
    236       zfield( 5) = field_5 
    237       zfield( 6) = field_6 
    238       zfield( 7) = field_7 
    239       zfield( 8) = field_8 
    240       zfield( 9) = field_9 
     238      zfield(1) = field_1 
     239      zfield(2) = field_2 
     240      zfield(3) = field_3 
     241      zfield(4) = field_4 
     242      zfield(5) = field_5 
     243      zfield(6) = field_6 
     244      zfield(7) = field_7 
     245      zfield(8) = field_8 
     246      zfield(9) = field_9 
    241247      zfield(10) = field_10 
    242248      zfield(11) = field_11 
     
    268274         DO nf = 1 , noumef          
    269275            WRITE(numout,*) '   ', titn(nf), '   ', nam(nf),'      ', uni(nf),'  ', nc(nf),'        ', cmulti(nf),   & 
    270                &       '        ', cadd(nf) 
     276               '        ', cadd(nf) 
    271277         END DO 
    272278      ENDIF 
Note: See TracChangeset for help on using the changeset viewer.