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 9202 for branches/UKMO/dev_r5518_obs_oper_update_bgc3d/NEMOGCM/NEMO/OPA_SRC/OBS/diaobs.F90 – NEMO

Ignore:
Timestamp:
2018-01-09T19:12:50+01:00 (6 years ago)
Author:
dford
Message:

Modify obs_rea_prof to loop over an arbitrary number of variables.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/UKMO/dev_r5518_obs_oper_update_bgc3d/NEMOGCM/NEMO/OPA_SRC/OBS/diaobs.F90

    r9192 r9202  
    223223         & clsurffiles           ! Surface filenames 
    224224 
    225       LOGICAL :: llvar1          ! Logical for profile variable 1 
    226       LOGICAL :: llvar2          ! Logical for profile variable 1 
     225      LOGICAL, DIMENSION(:), ALLOCATABLE :: llvar   ! Logical for profile variable read 
    227226      LOGICAL :: ltype_fp_indegs ! Local version of ln_*_fp_indegs 
    228227      LOGICAL :: ltype_night     ! Local version of ln_sstnight (false for other variables) 
     
    699698               nvarsprof(jtype) = 2 
    700699               nextrprof(jtype) = 1 
    701                llvar1 = ln_t3d 
    702                llvar2 = ln_s3d 
     700               ALLOCATE(llvar(nvarsprof(jtype))) 
     701               llvar(1) = ln_t3d 
     702               llvar(2) = ln_s3d 
    703703               zglam1 = glamt 
    704704               zgphi1 = gphit 
     
    710710               nvarsprof(jtype) = 2 
    711711               nextrprof(jtype) = 2 
    712                llvar1 = ln_vel3d 
    713                llvar2 = ln_vel3d 
     712               ALLOCATE(llvar(nvarsprof(jtype))) 
     713               llvar(1) = ln_vel3d 
     714               llvar(2) = ln_vel3d 
    714715               zglam1 = glamu 
    715716               zgphi1 = gphiu 
     
    721722               nvarsprof(jtype) = 1 
    722723               nextrprof(jtype) = 0 
    723                llvar1 = .TRUE. 
    724                llvar2 = .FALSE. 
     724               ALLOCATE(llvar(nvarsprof(jtype))) 
     725               llvar(1) = .TRUE. 
    725726               zglam1 = glamt 
    726727               zgphi1 = gphit 
     
    735736               &               clproffiles(jtype,1:ifilesprof(jtype)), & 
    736737               &               nvarsprof(jtype), nextrprof(jtype), nitend-nit000+2, & 
    737                &               rn_dobsini, rn_dobsend, llvar1, llvar2, & 
     738               &               rn_dobsini, rn_dobsend, llvar, & 
    738739               &               ln_ignmis, ln_s_at_t, .FALSE., & 
    739740               &               kdailyavtypes = nn_profdavtypes ) 
     
    744745 
    745746            CALL obs_pre_prof( profdata(jtype), profdataqc(jtype), & 
    746                &               llvar1, llvar2, & 
     747               &               llvar(1), llvar(2), & 
    747748               &               jpi, jpj, jpk, & 
    748749               &               zmask1, zglam1, zgphi1, zmask2, zglam2, zgphi2,  & 
    749750               &               ln_nea, ln_bound_reject, & 
    750751               &               kdailyavtypes = nn_profdavtypes ) 
     752             
     753            ! Is allocating and deallocating repeatedly in a loop good practice? 
     754            DEALLOCATE(llvar) 
    751755 
    752756         END DO 
Note: See TracChangeset for help on using the changeset viewer.