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 1884 for branches/TAM_V3_0/NEMO/OPA_SRC/DTA – NEMO

Ignore:
Timestamp:
2010-05-27T11:26:52+02:00 (14 years ago)
Author:
rblod
Message:

Light adaptation of NEMO direct model routine to handle TAM

Location:
branches/TAM_V3_0/NEMO/OPA_SRC/DTA
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/TAM_V3_0/NEMO/OPA_SRC/DTA/dtasal.F90

    r1152 r1884  
    3434   INTEGER ::   & 
    3535      numsdt,           &  !: logical unit for data salinity 
     36#if defined key_pomme_r025 
     37      nsal1, nsal2 ,     & ! first and second record used 
     38      nlecsa = 0           ! flag for first read 
     39#else 
    3640      nsal1, nsal2         ! first and second record used 
     41#endif 
    3742   REAL(wp), DIMENSION(jpi,jpj,jpk,2) ::   & 
    3843      saldta    ! salinity data at two consecutive times 
     
    8994     REAL(wp)  :: zfac 
    9095#endif 
     96      CHARACTER (len=38) ::   & 
     97         cl_sdata = 'data_1m_salinity_nomask ' 
    9198     REAL(wp), DIMENSION(jpk,2) ::   & 
    9299          zsaldta            ! auxiliary array for interpolation 
     
    96103     ! ----------------- 
    97104      
    98      iman  = INT( raamo ) 
     105#if defined key_pomme_r025 
     106! DRAKKAR : we use input file with 1 month only 
     107      iman = 1 
     108#else 
     109      iman  = INT( raamo ) 
     110#endif 
     111 
    99112!!! better but change the results     i15 = INT( 2*FLOAT( nday ) / ( FLOAT( nobis(nmonth) ) + 0.5 ) ) 
    100113     i15   = nday / 16 
     
    109122        nsal1 = 0   ! initializations 
    110123        IF(lwp) WRITE(numout,*) ' dta_sal : monthly salinity data in NetCDF file' 
    111         CALL iom_open ( 'data_1m_salinity_nomask', numsdt )  
    112          
     124        CALL iom_open ( cl_sdata, numsdt )  
     125 
    113126     ENDIF 
    114127      
     
    117130     ! ------------------- 
    118131      
     132#if defined key_pomme_r025 
     133!    IF( kt == nit000 .OR. imois /= nsal1 ) THEN 
     134! In standard ORCA025, no damping is done. We read Levitus only for initial condition 
     135     IF( kt == nit000 .AND. nlecsa == 0 ) THEN 
     136        nlecsa =  1 
     137#else 
    119138     IF( kt == nit000 .OR. imois /= nsal1 ) THEN 
     139#endif 
    120140         
    121141        ! 2.1 Calendar computation 
     
    318338           CALL prihre(saldta(:,:,jpkm1,1),jpi,jpj,1,jpi,20,1,jpj,20,1.,numout) 
    319339        ENDIF 
     340#if ! defined key_pomme_r025 
    320341     ENDIF 
     342#endif 
    321343      
    322344      
     
    326348     zxy = FLOAT(nday + 15 - 30*i15)/30. 
    327349     s_dta(:,:,:) = ( 1.- zxy ) * saldta(:,:,:,1) + zxy * saldta(:,:,:,2) 
     350 
     351#if defined key_pomme_r025 
     352     ENDIF 
     353#endif 
    328354      
    329355     ! Close the file 
  • branches/TAM_V3_0/NEMO/OPA_SRC/DTA/dtatem.F90

    r1152 r1884  
    3333   INTEGER ::   & 
    3434      numtdt,        &  !: logical unit for data temperature 
     35#if defined key_pomme_r025 
     36      ntem1, ntem2 , &  ! first and second record used 
     37      nlecte = 0        ! switch for frist read 
     38#else 
    3539      ntem1, ntem2  ! first and second record used 
     40#endif 
    3641   REAL(wp), DIMENSION(jpi,jpj,jpk,2) ::   & 
    3742      temdta            ! temperature data at two consecutive times 
     
    9499      REAL(wp)  :: zfac 
    95100#endif 
     101      CHARACTER (len=38) ::   & 
     102         cl_tdata = 'data_1m_potential_temperature_nomask ' 
    96103      REAL(wp), DIMENSION(jpk,2) ::   & 
    97104         ztemdta            ! auxiliary array for interpolation 
     
    101108      ! ----------------- 
    102109       
     110#if defined key_pomme_r025 
     111! DRAKKAR : we use input file with 1 month only 
     112      iman = 1 
     113#else 
    103114      iman  = INT( raamo ) 
     115#endif 
    104116!!! better but change the results     i15 = INT( 2*FLOAT( nday ) / ( FLOAT( nobis(nmonth) ) + 0.5 ) ) 
    105117      i15   = nday / 16 
     
    114126         ntem1= 0   ! initializations 
    115127         IF(lwp) WRITE(numout,*) ' dta_tem : Levitus monthly fields' 
    116          CALL iom_open ( 'data_1m_potential_temperature_nomask', numtdt )  
     128         CALL iom_open ( cl_tdata, numtdt )  
    117129          
    118130      ENDIF 
     
    122134      ! ------------------- 
    123135       
     136#if defined key_pomme_r025 
     137! DRAKKAR read only first step 
     138!     IF( kt == nit000 .OR. imois /= ntem1 ) THEN 
     139      IF( kt == nit000 .AND. nlecte == 0 ) THEN 
     140         nlecte = 1 
     141#else 
    124142      IF( kt == nit000 .OR. imois /= ntem1 ) THEN 
     143#endif 
    125144          
    126145         ! Calendar computation 
     
    314333            CALL prihre( temdta(:,:,jpkm1,1), jpi, jpj, 1, jpi, 20, 1, jpj, 20, 1., numout ) 
    315334         ENDIF 
     335#if ! defined key_pomme_r025 
    316336      ENDIF 
     337#endif 
    317338       
    318339       
     
    322343      zxy = FLOAT( nday + 15 - 30 * i15 ) / 30. 
    323344      t_dta(:,:,:) = (1.-zxy) * temdta(:,:,:,1) + zxy * temdta(:,:,:,2) 
    324        
     345 
     346#if defined key_pomme_r025 
     347      ENDIF 
     348#endif 
     349 
    325350      ! Close the file 
    326351      ! -------------- 
Note: See TracChangeset for help on using the changeset viewer.