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 4689 for trunk/NEMOGCM/NEMO/OPA_SRC/IOM – NEMO

Ignore:
Timestamp:
2014-06-25T01:40:18+02:00 (10 years ago)
Author:
clem
Message:

new version of LIM3 with perfect conservation of heat, see ticket #1352

Location:
trunk/NEMOGCM/NEMO/OPA_SRC/IOM
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMOGCM/NEMO/OPA_SRC/IOM/iom.F90

    r4650 r4689  
    3232   USE trc_oce, ONLY :   nn_dttrc        !  !: frequency of step on passive tracers 
    3333   USE icb_oce, ONLY :   nclasses, class_num       !  !: iceberg classes 
     34   USE par_ice 
    3435   USE domngb          ! ocean space and time domain 
    3536   USE phycst          ! physical constants 
     
    4950#endif 
    5051   PUBLIC iom_init, iom_swap, iom_open, iom_close, iom_setkt, iom_varid, iom_get, iom_gettime, iom_rstput, iom_put 
    51    PUBLIC iom_getatt, iom_context_finalize 
     52   PUBLIC iom_getatt, iom_use, iom_context_finalize 
    5253 
    5354   PRIVATE iom_rp0d, iom_rp1d, iom_rp2d, iom_rp3d 
     
    143144      CALL iom_set_axis_attr( "nfloat", (/ (REAL(ji,wp), ji=1,nfloat) /) ) 
    144145# endif 
     146#if defined key_lim3 
     147      CALL iom_set_axis_attr( "ncatice", (/ (REAL(ji,wp), ji=1,jpl) /) ) 
     148#endif 
    145149      CALL iom_set_axis_attr( "icbcla", class_num ) 
    146150       
     
    10151019      CHARACTER(LEN=*), INTENT(in) ::   cdname 
    10161020      REAL(wp)        , INTENT(in) ::   pfield0d 
     1021      REAL(wp)        , DIMENSION(jpi,jpj) ::   zz     ! masson 
    10171022#if defined key_iomput 
    1018       CALL xios_send_field(cdname, (/pfield0d/)) 
     1023      zz(:,:)=pfield0d 
     1024      CALL xios_send_field(cdname, zz) 
     1025      !CALL xios_send_field(cdname, (/pfield0d/))  
    10191026#else 
    10201027      IF( .FALSE. )   WRITE(numout,*) cdname, pfield0d   ! useless test to avoid compilation warnings 
     
    12071214      !! 
    12081215      !!---------------------------------------------------------------------- 
    1209       REAL(wp), DIMENSION(1,1) ::   zz = 1. 
     1216      REAL(wp), DIMENSION(1) ::   zz = 1. 
    12101217      !!---------------------------------------------------------------------- 
    12111218      CALL iom_set_domain_attr('scalarpoint', ni_glo=jpnij, nj_glo=1, ibegin=narea, jbegin=1, ni=1, nj=1) 
    1212       CALL iom_set_domain_attr('scalarpoint', data_dim=1) 
    1213       CALL iom_set_domain_attr('scalarpoint', lonvalue=(/ zz /), latvalue=(/ zz /)) 
     1219      CALL iom_set_domain_attr('scalarpoint', data_dim=2, data_ibegin = 1, data_ni = 1, data_jbegin = 1, data_nj = 1) 
     1220      zz=REAL(narea,wp) 
     1221      CALL iom_set_domain_attr('scalarpoint', lonvalue=zz, latvalue=zz) 
    12141222 
    12151223   END SUBROUTINE set_scalar 
     
    14991507 
    15001508#endif 
     1509 
     1510   LOGICAL FUNCTION iom_use( cdname ) 
     1511      CHARACTER(LEN=*), INTENT(in) ::   cdname 
     1512#if defined key_iomput 
     1513      iom_use = xios_field_is_active( cdname ) 
     1514#else 
     1515      iom_use = .FALSE. 
     1516#endif 
     1517   END FUNCTION iom_use 
    15011518    
    15021519   !!====================================================================== 
  • trunk/NEMOGCM/NEMO/OPA_SRC/IOM/iom_nf90.F90

    r4292 r4689  
    217217         CALL iom_nf90_check(NF90_Inquire_Variable(if90id, ivarid, dimids = idimid(1:i_nvd)), clinfo)   ! dimensions ids 
    218218         iom_file(kiomid)%luld(kiv) = .FALSE.   ! default value 
    219          iom_file(kiomid)%dimsz(:,kiv) = 0   ! reset dimsz in case previously used 
     219         iom_file(kiomid)%dimsz(:,kiv) = 0      ! reset dimsz in case previously used 
    220220         DO ji = 1, i_nvd                       ! dimensions size 
    221221            CALL iom_nf90_check(NF90_Inquire_Dimension(if90id, idimid(ji), len = iom_file(kiomid)%dimsz(ji,kiv)), clinfo)    
  • trunk/NEMOGCM/NEMO/OPA_SRC/IOM/restart.F90

    r4334 r4689  
    120120                     CALL iom_rstput( kt, nitrst, numrow, 'hdivb'  , hdivb     ) 
    121121                     CALL iom_rstput( kt, nitrst, numrow, 'sshb'   , sshb      ) 
     122      IF( lk_vvl )   CALL iom_rstput( kt, nitrst, numrow, 'fse3t_b', fse3t_b(:,:,:) ) 
    122123                     ! 
    123124                     CALL iom_rstput( kt, nitrst, numrow, 'un'     , un        )     ! now fields 
     
    210211         CALL iom_get( numror, jpdom_autoglo, 'hdivb'  , hdivb   ) 
    211212         CALL iom_get( numror, jpdom_autoglo, 'sshb'   , sshb    ) 
     213         IF( lk_vvl )   CALL iom_get( numror, jpdom_autoglo, 'fse3t_b', fse3t_b(:,:,:) ) 
    212214      ELSE 
    213215         neuler = 0 
     
    245247         hdivb(:,:,:)   = hdivn(:,:,:) 
    246248         sshb (:,:)     = sshn (:,:) 
    247       ENDIF 
    248       ! 
    249       IF( lk_lim3 ) THEN  
     249         IF( lk_vvl ) THEN 
     250            DO jk = 1, jpk 
     251               fse3t_b(:,:,jk) = fse3t_n(:,:,jk) 
     252            END DO 
     253         ENDIF 
     254      ENDIF 
     255      ! 
     256      IF( lk_lim3 ) THEN 
    250257         CALL iom_get( numror, jpdom_autoglo, 'iatte' , iatte ) ! clem modif 
    251258         CALL iom_get( numror, jpdom_autoglo, 'oatte' , oatte ) ! clem modif 
Note: See TracChangeset for help on using the changeset viewer.