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 8076 for branches/UKMO/dev_r5518_medusa_chg_trc_bio_medusa/NEMOGCM/NEMO/TOP_SRC/MEDUSA/bio_medusa_init.F90 – NEMO

Ignore:
Timestamp:
2017-05-26T10:17:21+02:00 (7 years ago)
Author:
marc
Message:

Removed wrk_alloc and wrk_dealloc from bio_medusa_* routines

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/UKMO/dev_r5518_medusa_chg_trc_bio_medusa/NEMOGCM/NEMO/TOP_SRC/MEDUSA/bio_medusa_init.F90

    r8045 r8076  
    3737      USE trc,               ONLY: ln_diatrc, med_diag, nittrc000,     & 
    3838                                   trc2d, trc3d 
    39       USE wrk_nemo,          ONLY: wrk_alloc 
    4039 
    4140# if defined key_iomput 
     
    175174         IF ( kt == nittrc000 )   CALL trc_nam_iom_medusa  
    176175 
    177          CALL wrk_alloc( jpi, jpj,      zw2d ) 
     176         ALLOCATE( zw2d(1:jpi, 1:jpj) ) 
    178177         zw2d(:,:)      = 0.0   !! 
    179178         IF ( med_diag%PRN%dgsave ) THEN 
    180             CALL wrk_alloc( jpi, jpj,   fprn2d    ) 
     179            ALLOCATE( fprn2d(1:jpi, 1:jpj) ) 
    181180            fprn2d(:,:)      = 0.0 !! 
    182181         ENDIF 
    183182         IF ( med_diag%MPN%dgsave ) THEN 
    184             CALL wrk_alloc( jpi, jpj,   fdpn2d    ) 
     183            ALLOCATE( fdpn2d(1:jpi, 1:jpj) ) 
    185184            fdpn2d(:,:)      = 0.0 !! 
    186185         ENDIF 
    187186         IF ( med_diag%PRD%dgsave ) THEN 
    188             CALL wrk_alloc( jpi, jpj,   fprd2d    ) 
     187            ALLOCATE( fprd2d(1:jpi, 1:jpj) ) 
    189188            fprd2d(:,:)      = 0.0 !! 
    190189         ENDIF 
    191190         IF( med_diag%MPD%dgsave ) THEN 
    192             CALL wrk_alloc( jpi, jpj,   fdpd2d    ) 
     191            ALLOCATE( fdpd2d(1:jpi, 1:jpj) ) 
    193192            fdpd2d(:,:)      = 0.0 !! 
    194193         ENDIF 
    195194         IF( med_diag%OPAL%dgsave ) THEN 
    196             CALL wrk_alloc( jpi, jpj,   fprds2d    ) 
     195            ALLOCATE( fprds2d(1:jpi, 1:jpj) ) 
    197196            fprds2d(:,:)      = 0.0 !! 
    198197         ENDIF 
    199198         IF( med_diag%OPALDISS%dgsave ) THEN 
    200             CALL wrk_alloc( jpi, jpj,   fsdiss2d    ) 
     199            ALLOCATE( fsdiss2d(1:jpi, 1:jpj) ) 
    201200            fsdiss2d(:,:)      = 0.0 !! 
    202201         ENDIF 
    203202         IF( med_diag%GMIPn%dgsave ) THEN 
    204             CALL wrk_alloc( jpi, jpj,   fgmipn2d    ) 
     203            ALLOCATE( fgmipn2d(1:jpi, 1:jpj) ) 
    205204            fgmipn2d(:,:)      = 0.0 !! 
    206205         ENDIF 
    207206         IF( med_diag%GMID%dgsave ) THEN 
    208             CALL wrk_alloc( jpi, jpj,   fgmid2d    ) 
     207            ALLOCATE( fgmid2d(1:jpi, 1:jpj) ) 
    209208            fgmid2d(:,:)      = 0.0 !! 
    210209         ENDIF 
    211210         IF( med_diag%MZMI%dgsave ) THEN 
    212             CALL wrk_alloc( jpi, jpj,   fdzmi2d    ) 
     211            ALLOCATE( fdzmi2d(1:jpi, 1:jpj) ) 
    213212            fdzmi2d(:,:)      = 0.0 !! 
    214213         ENDIF 
    215214         IF( med_diag%GMEPN%dgsave ) THEN 
    216             CALL wrk_alloc( jpi, jpj,   fgmepn2d    ) 
     215            ALLOCATE( fgmepn2d(1:jpi, 1:jpj) ) 
    217216            fgmepn2d(:,:)      = 0.0 !! 
    218217         ENDIF 
    219218         IF( med_diag%GMEPD%dgsave ) THEN 
    220             CALL wrk_alloc( jpi, jpj,   fgmepd2d    ) 
     219            ALLOCATE( fgmepd2d(1:jpi, 1:jpj) ) 
    221220            fgmepd2d(:,:)      = 0.0 !! 
    222221         ENDIF 
    223222         IF( med_diag%GMEZMI%dgsave ) THEN 
    224             CALL wrk_alloc( jpi, jpj,   fgmezmi2d    ) 
     223            ALLOCATE( fgmezmi2d(1:jpi, 1:jpj) ) 
    225224            fgmezmi2d(:,:)      = 0.0 !! 
    226225         ENDIF 
    227226         IF( med_diag%GMED%dgsave ) THEN 
    228             CALL wrk_alloc( jpi, jpj,   fgmed2d    ) 
     227            ALLOCATE( fgmed2d(1:jpi, 1:jpj) ) 
    229228            fgmed2d(:,:)      = 0.0 !! 
    230229         ENDIF 
    231230         IF( med_diag%MZME%dgsave ) THEN 
    232             CALL wrk_alloc( jpi, jpj,   fdzme2d    ) 
     231            ALLOCATE( fdzme2d(1:jpi, 1:jpj) ) 
    233232            fdzme2d(:,:)      = 0.0 !! 
    234233         ENDIF 
    235234         IF( med_diag%DETN%dgsave ) THEN 
    236             CALL wrk_alloc( jpi, jpj,   fslown2d    ) 
     235            ALLOCATE( fslown2d(1:jpi, 1:jpj) ) 
    237236            fslown2d(:,:)      = 0.0 !! 
    238237         ENDIF 
    239238         IF( med_diag%MDET%dgsave ) THEN 
    240             CALL wrk_alloc( jpi, jpj,   fdd2d    ) 
     239            ALLOCATE( fdd2d(1:jpi, 1:jpj) ) 
    241240            fdd2d(:,:)      = 0.0 !! 
    242241         ENDIF       
    243242         IF( med_diag%AEOLIAN%dgsave ) THEN 
    244             CALL wrk_alloc( jpi, jpj,   ffetop2d    ) 
     243            ALLOCATE( ffetop2d(1:jpi, 1:jpj) ) 
    245244            ffetop2d(:,:)      = 0.0 !! 
    246245         ENDIF 
    247246         IF( med_diag%BENTHIC%dgsave ) THEN 
    248             CALL wrk_alloc( jpi, jpj,    ffebot2d  ) 
     247            ALLOCATE( ffebot2d(1:jpi, 1:jpj) ) 
    249248            ffebot2d(:,:)      = 0.0 !! 
    250249         ENDIF 
    251250         IF( med_diag%SCAVENGE%dgsave ) THEN 
    252             CALL wrk_alloc( jpi, jpj,   ffescav2d    ) 
     251            ALLOCATE( ffescav2d(1:jpi, 1:jpj) ) 
    253252            ffescav2d(:,:)      = 0.0 !! 
    254253         ENDIF 
    255254         IF( med_diag%PN_JLIM%dgsave ) THEN 
    256             CALL wrk_alloc( jpi, jpj,   fjln2d    ) 
     255            ALLOCATE( fjln2d(1:jpi, 1:jpj) ) 
    257256            fjln2d(:,:)      = 0.0 !! 
    258257         ENDIF 
    259258         IF( med_diag%PN_NLIM%dgsave ) THEN 
    260             CALL wrk_alloc( jpi, jpj,   fnln2d    ) 
     259            ALLOCATE( fnln2d(1:jpi, 1:jpj) ) 
    261260            fnln2d(:,:)      = 0.0 !! 
    262261         ENDIF 
    263262         IF( med_diag%PN_FELIM%dgsave ) THEN 
    264             CALL wrk_alloc( jpi, jpj,   ffln2d    ) 
     263            ALLOCATE( ffln2d(1:jpi, 1:jpj) ) 
    265264            ffln2d(:,:)      = 0.0 !! 
    266265         ENDIF 
    267266         IF( med_diag%PD_JLIM%dgsave ) THEN 
    268             CALL wrk_alloc( jpi, jpj,   fjld2d    ) 
     267            ALLOCATE( fjld2d(1:jpi, 1:jpj) ) 
    269268            fjld2d(:,:)      = 0.0 !! 
    270269         ENDIF 
    271270         IF( med_diag%PD_NLIM%dgsave ) THEN 
    272             CALL wrk_alloc( jpi, jpj,   fnld2d    ) 
     271            ALLOCATE( fnld2d(1:jpi, 1:jpj) ) 
    273272            fnld2d(:,:)      = 0.0 !! 
    274273         ENDIF 
    275274         IF( med_diag%PD_FELIM%dgsave ) THEN 
    276             CALL wrk_alloc( jpi, jpj,   ffld2d    ) 
     275            ALLOCATE( ffld2d(1:jpi, 1:jpj) ) 
    277276            ffld2d(:,:)      = 0.0 !! 
    278277         ENDIF 
    279278         IF( med_diag%PD_SILIM%dgsave ) THEN 
    280             CALL wrk_alloc( jpi, jpj,   fsld2d2    ) 
     279            ALLOCATE( fsld2d2(1:jpi, 1:jpj) ) 
    281280            fsld2d2(:,:)      = 0.0 !! 
    282281         ENDIF 
    283282         IF( med_diag%PDSILIM2%dgsave ) THEN 
    284             CALL wrk_alloc( jpi, jpj,   fsld2d    ) 
     283            ALLOCATE( fsld2d(1:jpi, 1:jpj) ) 
    285284            fsld2d(:,:)      = 0.0 !! 
    286285         ENDIF 
     
    289288!! 
    290289         IF( med_diag%TOTREG_N%dgsave ) THEN 
    291             CALL wrk_alloc( jpi, jpj,   fregen2d    ) 
     290            ALLOCATE( fregen2d(1:jpi, 1:jpj) ) 
    292291            fregen2d(:,:)      = 0.0 !! 
    293292         ENDIF 
    294293         IF( med_diag%TOTRG_SI%dgsave ) THEN 
    295             CALL wrk_alloc( jpi, jpj,   fregensi2d    ) 
     294            ALLOCATE( fregensi2d(1:jpi, 1:jpj) ) 
    296295            fregensi2d(:,:)      = 0.0 !! 
    297296         ENDIF 
     
    300299!! 
    301300         IF( med_diag%FASTN%dgsave ) THEN 
    302             CALL wrk_alloc( jpi, jpj,   ftempn2d    ) 
     301            ALLOCATE( ftempn2d(1:jpi, 1:jpj) ) 
    303302            ftempn2d(:,:)      = 0.0 !! 
    304303         ENDIF 
    305304         IF( med_diag%FASTSI%dgsave ) THEN 
    306             CALL wrk_alloc( jpi, jpj,   ftempsi2d    ) 
     305            ALLOCATE( ftempsi2d(1:jpi, 1:jpj) ) 
    307306            ftempsi2d(:,:)      = 0.0 !! 
    308307         ENDIF 
    309308         IF( med_diag%FASTFE%dgsave ) THEN 
    310             CALL wrk_alloc( jpi, jpj,  ftempfe2d    ) 
     309            ALLOCATE( ftempfe2d(1:jpi, 1:jpj) ) 
    311310            ftempfe2d(:,:)      = 0.0 !! 
    312311         ENDIF 
    313312         IF( med_diag%FASTC%dgsave ) THEN 
    314             CALL wrk_alloc( jpi, jpj,  ftempc2d    ) 
     313            ALLOCATE( ftempc2d(1:jpi, 1:jpj) ) 
    315314            ftempc2d(:,:)      = 0.0 !! 
    316315         ENDIF 
    317316         IF( med_diag%FASTCA%dgsave ) THEN 
    318             CALL wrk_alloc( jpi, jpj,   ftempca2d    ) 
     317            ALLOCATE( ftempca2d(1:jpi, 1:jpj) ) 
    319318            ftempca2d(:,:)      = 0.0 !! 
    320319         ENDIF      
     
    323322!! 
    324323         IF( med_diag%REMINN%dgsave ) THEN 
    325             CALL wrk_alloc( jpi, jpj,    freminn2d  ) 
     324            ALLOCATE( freminn2d(1:jpi, 1:jpj) ) 
    326325            freminn2d(:,:)      = 0.0 !! 
    327326         ENDIF 
    328327         IF( med_diag%REMINSI%dgsave ) THEN 
    329             CALL wrk_alloc( jpi, jpj,    freminsi2d  ) 
     328            ALLOCATE( freminsi2d(1:jpi, 1:jpj) ) 
    330329            freminsi2d(:,:)      = 0.0 !! 
    331330         ENDIF 
    332331         IF( med_diag%REMINFE%dgsave ) THEN 
    333             CALL wrk_alloc( jpi, jpj,    freminfe2d  ) 
     332            ALLOCATE( freminfe2d(1:jpi, 1:jpj) ) 
    334333            freminfe2d(:,:)      = 0.0 !! 
    335334         ENDIF 
    336335         IF( med_diag%REMINC%dgsave ) THEN 
    337             CALL wrk_alloc( jpi, jpj,   freminc2d    ) 
     336            ALLOCATE( freminc2d(1:jpi, 1:jpj) ) 
    338337            freminc2d(:,:)      = 0.0 !!  
    339338         ENDIF 
    340339         IF( med_diag%REMINCA%dgsave ) THEN 
    341             CALL wrk_alloc( jpi, jpj,   freminca2d    ) 
     340            ALLOCATE( freminca2d(1:jpi, 1:jpj) ) 
    342341            freminca2d(:,:)      = 0.0 !! 
    343342         ENDIF 
     
    348347!! 
    349348         IF( med_diag%RR_0100%dgsave ) THEN 
    350             CALL wrk_alloc( jpi, jpj,    ffastca2d  ) 
     349            ALLOCATE( ffastca2d(1:jpi, 1:jpj) ) 
    351350            ffastca2d(:,:)      = 0.0 !! 
    352351         ENDIF 
    353352 
    354353         IF( med_diag%ATM_PCO2%dgsave ) THEN 
    355             CALL wrk_alloc( jpi, jpj,    f_pco2a2d  ) 
     354            ALLOCATE( f_pco2a2d(1:jpi, 1:jpj) ) 
    356355            f_pco2a2d(:,:)      = 0.0 !! 
    357356         ENDIF 
     
    360359!! 
    361360         IF( med_diag%OCN_PCO2%dgsave ) THEN 
    362             CALL wrk_alloc( jpi, jpj,    f_pco2w2d  ) 
     361            ALLOCATE( f_pco2w2d(1:jpi, 1:jpj) ) 
    363362            f_pco2w2d(:,:)      = 0.0 !! 
    364363         ENDIF 
     
    367366!! 
    368367         IF( med_diag%CO2FLUX%dgsave ) THEN 
    369             CALL wrk_alloc( jpi, jpj,   f_co2flux2d    ) 
     368            ALLOCATE( f_co2flux2d(1:jpi, 1:jpj) ) 
    370369            f_co2flux2d(:,:)      = 0.0 !! 
    371370         ENDIF 
     
    374373!! 
    375374         IF( med_diag%TCO2%dgsave ) THEN 
    376             CALL wrk_alloc( jpi, jpj,   f_TDIC2d    ) 
     375            ALLOCATE( f_TDIC2d(1:jpi, 1:jpj) ) 
    377376            f_TDIC2d(:,:)      = 0.0 !! 
    378377         ENDIF 
    379378         IF( med_diag%TALK%dgsave ) THEN 
    380             CALL wrk_alloc( jpi, jpj,    f_TALK2d  ) 
     379            ALLOCATE( f_TALK2d(1:jpi, 1:jpj) ) 
    381380            f_TALK2d(:,:)      = 0.0 !! 
    382381         ENDIF 
    383382         IF( med_diag%KW660%dgsave ) THEN 
    384             CALL wrk_alloc( jpi, jpj,    f_kw6602d  ) 
     383            ALLOCATE( f_kw6602d(1:jpi, 1:jpj) ) 
    385384            f_kw6602d(:,:)      = 0.0 !! 
    386385         ENDIF 
    387386         IF( med_diag%ATM_PP0%dgsave ) THEN 
    388             CALL wrk_alloc( jpi, jpj,    f_pp02d  ) 
     387            ALLOCATE( f_pp02d(1:jpi, 1:jpj) ) 
    389388            f_pp02d(:,:)      = 0.0 !! 
    390389         ENDIF 
    391390         IF( med_diag%O2FLUX%dgsave ) THEN 
    392             CALL wrk_alloc( jpi, jpj,   f_o2flux2d    ) 
     391            ALLOCATE( f_o2flux2d(1:jpi, 1:jpj) ) 
    393392            f_o2flux2d(:,:)      = 0.0 !! 
    394393         ENDIF 
    395394         IF( med_diag%O2SAT%dgsave ) THEN 
    396             CALL wrk_alloc( jpi, jpj,    f_o2sat2d  ) 
     395            ALLOCATE( f_o2sat2d(1:jpi, 1:jpj) ) 
    397396            f_o2sat2d(:,:)      = 0.0 !! 
    398397         ENDIF  
     
    401400!!  
    402401         IF( med_diag%SFR_OCAL%dgsave ) THEN 
    403             CALL wrk_alloc( jpi, jpj,    sfr_ocal2d ) 
     402            ALLOCATE( sfr_ocal2d(1:jpi, 1:jpj) ) 
    404403            sfr_ocal2d(:,:)      = 0.0 !! 
    405404         ENDIF 
    406405         IF( med_diag%SFR_OARG%dgsave ) THEN 
    407             CALL wrk_alloc( jpi, jpj,    sfr_oarg2d ) 
     406            ALLOCATE( sfr_oarg2d(1:jpi, 1:jpj) ) 
    408407            sfr_oarg2d(:,:)      = 0.0 !! 
    409408         ENDIF 
     
    412411!!  
    413412         IF( med_diag%IBEN_N%dgsave ) THEN 
    414             CALL wrk_alloc( jpi, jpj,    iben_n2d ) 
     413            ALLOCATE( iben_n2d(1:jpi, 1:jpj) ) 
    415414            iben_n2d(:,:)      = 0.0 !! 
    416415         ENDIF 
    417416         IF( med_diag%IBEN_FE%dgsave ) THEN 
    418             CALL wrk_alloc( jpi, jpj,   iben_fe2d  ) 
     417            ALLOCATE( iben_fe2d(1:jpi, 1:jpj) ) 
    419418            iben_fe2d(:,:)      = 0.0 !! 
    420419         ENDIF 
    421420         IF( med_diag%IBEN_C%dgsave ) THEN 
    422             CALL wrk_alloc( jpi, jpj,   iben_c2d  ) 
     421            ALLOCATE( iben_c2d(1:jpi, 1:jpj) ) 
    423422            iben_c2d(:,:)      = 0.0 !! 
    424423         ENDIF 
    425424         IF( med_diag%IBEN_SI%dgsave ) THEN 
    426             CALL wrk_alloc( jpi, jpj,   iben_si2d  ) 
     425            ALLOCATE( iben_si2d(1:jpi, 1:jpj) ) 
    427426            iben_si2d(:,:)      = 0.0 !! 
    428427         ENDIF 
    429428         IF( med_diag%IBEN_CA%dgsave ) THEN 
    430             CALL wrk_alloc( jpi, jpj,   iben_ca2d  ) 
     429            ALLOCATE( iben_ca2d(1:jpi, 1:jpj) ) 
    431430            iben_ca2d(:,:)      = 0.0 !! 
    432431         ENDIF 
    433432         IF( med_diag%OBEN_N%dgsave ) THEN 
    434             CALL wrk_alloc( jpi, jpj,    oben_n2d ) 
     433            ALLOCATE( oben_n2d(1:jpi, 1:jpj) ) 
    435434            oben_n2d(:,:)      = 0.0 !! 
    436435         ENDIF 
    437436         IF( med_diag%OBEN_FE%dgsave ) THEN 
    438             CALL wrk_alloc( jpi, jpj,    oben_fe2d ) 
     437            ALLOCATE( oben_fe2d(1:jpi, 1:jpj) ) 
    439438            oben_fe2d(:,:)      = 0.0 !! 
    440439         ENDIF 
    441440         IF( med_diag%OBEN_C%dgsave ) THEN 
    442             CALL wrk_alloc( jpi, jpj,    oben_c2d ) 
     441            ALLOCATE( oben_c2d(1:jpi, 1:jpj) ) 
    443442            oben_c2d(:,:)      = 0.0 !! 
    444443         ENDIF 
    445444         IF( med_diag%OBEN_SI%dgsave ) THEN 
    446             CALL wrk_alloc( jpi, jpj,    oben_si2d ) 
     445            ALLOCATE( oben_si2d(1:jpi, 1:jpj) ) 
    447446            oben_si2d(:,:)      = 0.0 !! 
    448447         ENDIF 
    449448         IF( med_diag%OBEN_CA%dgsave ) THEN 
    450             CALL wrk_alloc( jpi, jpj,    oben_ca2d ) 
     449            ALLOCATE( oben_ca2d(1:jpi, 1:jpj) ) 
    451450            oben_ca2d(:,:)      = 0.0 !! 
    452451         ENDIF 
     
    456455 
    457456         IF( med_diag%RIV_N%dgsave ) THEN 
    458             CALL wrk_alloc( jpi, jpj,    rivn2d  ) 
     457            ALLOCATE( rivn2d(1:jpi, 1:jpj) ) 
    459458            rivn2d(:,:)      = 0.0 !! 
    460459         ENDIF 
    461460         IF( med_diag%RIV_SI%dgsave ) THEN 
    462             CALL wrk_alloc( jpi, jpj,    rivsi2d  ) 
     461            ALLOCATE( rivsi2d(1:jpi, 1:jpj) ) 
    463462            rivsi2d(:,:)      = 0.0 !! 
    464463         ENDIF 
    465464         IF( med_diag%RIV_C%dgsave ) THEN 
    466             CALL wrk_alloc( jpi, jpj,   rivc2d    ) 
     465            ALLOCATE( rivc2d(1:jpi, 1:jpj) ) 
    467466            rivc2d(:,:)      = 0.0 !! 
    468467         ENDIF 
    469468         IF( med_diag%RIV_ALK%dgsave ) THEN 
    470             CALL wrk_alloc( jpi, jpj,    rivalk2d  ) 
     469            ALLOCATE( rivalk2d(1:jpi, 1:jpj) ) 
    471470            rivalk2d(:,:)      = 0.0 !! 
    472471         ENDIF 
    473472         IF( med_diag%DETC%dgsave ) THEN 
    474             CALL wrk_alloc( jpi, jpj,    fslowc2d  ) 
     473            ALLOCATE( fslowc2d(1:jpi, 1:jpj) ) 
    475474            fslowc2d(:,:)      = 0.0 !! 
    476475         ENDIF  
     
    479478!! 
    480479         IF( med_diag%LYSO_CA%dgsave ) THEN 
    481             CALL wrk_alloc( jpi, jpj,    lyso_ca2d ) 
     480            ALLOCATE( lyso_ca2d(1:jpi, 1:jpj) ) 
    482481            lyso_ca2d(:,:)      = 0.0 !! 
    483482         ENDIF 
     
    486485!! 
    487486         IF( med_diag%PN_LLOSS%dgsave ) THEN 
    488             CALL wrk_alloc( jpi, jpj,    fdpn22d  ) 
     487            ALLOCATE( fdpn22d(1:jpi, 1:jpj) ) 
    489488            fdpn22d(:,:)      = 0.0 !! 
    490489         ENDIF 
    491490         IF( med_diag%PD_LLOSS%dgsave ) THEN 
    492             CALL wrk_alloc( jpi, jpj,    fdpd22d  ) 
     491            ALLOCATE( fdpd22d(1:jpi, 1:jpj) ) 
    493492            fdpd22d(:,:)      = 0.0 !! 
    494493         ENDIF 
    495494         IF( med_diag%ZI_LLOSS%dgsave ) THEN 
    496             CALL wrk_alloc( jpi, jpj,    fdzmi22d  ) 
     495            ALLOCATE( fdzmi22d(1:jpi, 1:jpj) ) 
    497496            fdzmi22d(:,:)      = 0.0 !! 
    498497         ENDIF 
    499498         IF( med_diag%ZE_LLOSS%dgsave ) THEN 
    500             CALL wrk_alloc( jpi, jpj,   fdzme22d    ) 
     499            ALLOCATE( fdzme22d(1:jpi, 1:jpj) ) 
    501500            fdzme22d(:,:)      = 0.0 !! 
    502501         ENDIF 
    503502         IF( med_diag%ZI_MES_N%dgsave ) THEN    
    504             CALL wrk_alloc( jpi, jpj,   zimesn2d    ) 
     503            ALLOCATE( zimesn2d(1:jpi, 1:jpj) ) 
    505504            zimesn2d(:,:)      = 0.0 !! 
    506505         ENDIF 
    507506         IF( med_diag%ZI_MES_D%dgsave ) THEN 
    508             CALL wrk_alloc( jpi, jpj,    zimesd2d  ) 
     507            ALLOCATE( zimesd2d(1:jpi, 1:jpj) ) 
    509508            zimesd2d(:,:)      = 0.0 !! 
    510509         ENDIF 
    511510         IF( med_diag%ZI_MES_C%dgsave ) THEN 
    512             CALL wrk_alloc( jpi, jpj,    zimesc2d  ) 
     511            ALLOCATE( zimesc2d(1:jpi, 1:jpj) ) 
    513512            zimesc2d(:,:)      = 0.0 !! 
    514513         ENDIF 
    515514         IF( med_diag%ZI_MESDC%dgsave ) THEN 
    516             CALL wrk_alloc( jpi, jpj,    zimesdc2d  ) 
     515            ALLOCATE( zimesdc2d(1:jpi, 1:jpj) ) 
    517516            zimesdc2d(:,:)      = 0.0 !! 
    518517         ENDIF 
    519518         IF( med_diag%ZI_EXCR%dgsave ) THEN 
    520             CALL wrk_alloc( jpi, jpj,     ziexcr2d ) 
     519            ALLOCATE( ziexcr2d(1:jpi, 1:jpj) ) 
    521520            ziexcr2d(:,:)      = 0.0 !! 
    522521         ENDIF 
    523522         IF( med_diag%ZI_RESP%dgsave ) THEN 
    524             CALL wrk_alloc( jpi, jpj,    ziresp2d  ) 
     523            ALLOCATE( ziresp2d(1:jpi, 1:jpj) ) 
    525524            ziresp2d(:,:)      = 0.0 !! 
    526525         ENDIF 
    527526         IF( med_diag%ZI_GROW%dgsave ) THEN 
    528             CALL wrk_alloc( jpi, jpj,    zigrow2d  ) 
     527            ALLOCATE( zigrow2d(1:jpi, 1:jpj) ) 
    529528            zigrow2d(:,:)      = 0.0 !! 
    530529         ENDIF 
    531530         IF( med_diag%ZE_MES_N%dgsave ) THEN 
    532             CALL wrk_alloc( jpi, jpj,   zemesn2d    ) 
     531            ALLOCATE( zemesn2d(1:jpi, 1:jpj) ) 
    533532            zemesn2d(:,:)      = 0.0 !! 
    534533         ENDIF 
    535534         IF( med_diag%ZE_MES_D%dgsave ) THEN 
    536             CALL wrk_alloc( jpi, jpj,    zemesd2d  ) 
     535            ALLOCATE( zemesd2d(1:jpi, 1:jpj) ) 
    537536            zemesd2d(:,:)      = 0.0 !! 
    538537         ENDIF 
    539538         IF( med_diag%ZE_MES_C%dgsave ) THEN 
    540             CALL wrk_alloc( jpi, jpj,    zemesc2d  ) 
     539            ALLOCATE( zemesc2d(1:jpi, 1:jpj) ) 
    541540            zemesc2d(:,:)      = 0.0 !! 
    542541         ENDIF 
    543542         IF( med_diag%ZE_MESDC%dgsave ) THEN 
    544             CALL wrk_alloc( jpi, jpj,    zemesdc2d  ) 
     543            ALLOCATE( zemesdc2d(1:jpi, 1:jpj) ) 
    545544            zemesdc2d(:,:)      = 0.0 !! 
    546545         ENDIF 
    547546         IF( med_diag%ZE_EXCR%dgsave ) THEN 
    548             CALL wrk_alloc( jpi, jpj,    zeexcr2d  ) 
     547            ALLOCATE( zeexcr2d(1:jpi, 1:jpj) ) 
    549548            zeexcr2d(:,:)      = 0.0 !! 
    550549         ENDIF                   
    551550         IF( med_diag%ZE_RESP%dgsave ) THEN 
    552             CALL wrk_alloc( jpi, jpj,    zeresp2d  ) 
     551            ALLOCATE( zeresp2d(1:jpi, 1:jpj) ) 
    553552            zeresp2d(:,:)      = 0.0 !! 
    554553         ENDIF 
    555554         IF( med_diag%ZE_GROW%dgsave ) THEN 
    556             CALL wrk_alloc( jpi, jpj,    zegrow2d  ) 
     555            ALLOCATE( zegrow2d(1:jpi, 1:jpj) ) 
    557556            zegrow2d(:,:)      = 0.0 !! 
    558557         ENDIF 
    559558         IF( med_diag%MDETC%dgsave ) THEN 
    560             CALL wrk_alloc( jpi, jpj,   mdetc2d    ) 
     559            ALLOCATE( mdetc2d(1:jpi, 1:jpj) ) 
    561560            mdetc2d(:,:)      = 0.0 !! 
    562561         ENDIF 
    563562         IF( med_diag%GMIDC%dgsave ) THEN 
    564             CALL wrk_alloc( jpi, jpj,    gmidc2d  ) 
     563            ALLOCATE( gmidc2d(1:jpi, 1:jpj) ) 
    565564            gmidc2d(:,:)      = 0.0 !! 
    566565         ENDIF 
    567566         IF( med_diag%GMEDC%dgsave ) THEN 
    568             CALL wrk_alloc( jpi, jpj,    gmedc2d  ) 
     567            ALLOCATE( gmedc2d(1:jpi, 1:jpj) ) 
    569568            gmedc2d(:,:)      = 0.0 !! 
    570569         ENDIF 
     
    574573         IF (jdms .eq. 1) THEN 
    575574            IF( med_diag%DMS_SURF%dgsave ) THEN 
    576                CALL wrk_alloc( jpi, jpj,   dms_surf2d    ) 
     575               ALLOCATE( dms_surf2d(1:jpi, 1:jpj) ) 
    577576               dms_surf2d(:,:)      = 0.0 !! 
    578577            ENDIF 
    579578            IF( med_diag%DMS_ANDR%dgsave ) THEN 
    580                CALL wrk_alloc( jpi, jpj,   dms_andr2d    ) 
     579               ALLOCATE( dms_andr2d(1:jpi, 1:jpj) ) 
    581580               dms_andr2d(:,:)      = 0.0 !! 
    582581            ENDIF 
    583582            IF( med_diag%DMS_SIMO%dgsave ) THEN 
    584                CALL wrk_alloc( jpi, jpj,  dms_simo2d    ) 
     583               ALLOCATE( dms_simo2d(1:jpi, 1:jpj) ) 
    585584               dms_simo2d(:,:)      = 0.0 !! 
    586585            ENDIF 
    587586            IF( med_diag%DMS_ARAN%dgsave ) THEN 
    588                CALL wrk_alloc( jpi, jpj,   dms_aran2d    ) 
     587               ALLOCATE( dms_aran2d(1:jpi, 1:jpj) ) 
    589588               dms_aran2d(:,:)      = 0.0 !! 
    590589            ENDIF 
    591590            IF( med_diag%DMS_HALL%dgsave ) THEN 
    592                CALL wrk_alloc( jpi, jpj,   dms_hall2d    ) 
     591               ALLOCATE( dms_hall2d(1:jpi, 1:jpj) ) 
    593592               dms_hall2d(:,:)      = 0.0 !! 
    594593            ENDIF 
     
    597596         !! AXY (24/11/16): extra MOCSY diagnostics, 2D 
    598597         IF( med_diag%ATM_XCO2%dgsave ) THEN 
    599             CALL wrk_alloc( jpi, jpj, f_xco2a_2d      ) 
     598            ALLOCATE( f_xco2a_2d(1:jpi, 1:jpj) ) 
    600599            f_xco2a_2d(:,:)      = 0.0 !! 
    601600         ENDIF 
    602601         IF( med_diag%OCN_FCO2%dgsave ) THEN 
    603             CALL wrk_alloc( jpi, jpj, f_fco2w_2d      ) 
     602            ALLOCATE( f_fco2w_2d(1:jpi, 1:jpj) ) 
    604603            f_fco2w_2d(:,:)      = 0.0 !! 
    605604         ENDIF 
    606605         IF( med_diag%ATM_FCO2%dgsave ) THEN 
    607             CALL wrk_alloc( jpi, jpj, f_fco2a_2d      ) 
     606            ALLOCATE( f_fco2a_2d(1:jpi, 1:jpj) ) 
    608607            f_fco2a_2d(:,:)      = 0.0 !! 
    609608         ENDIF 
    610609         IF( med_diag%OCN_RHOSW%dgsave ) THEN 
    611             CALL wrk_alloc( jpi, jpj, f_ocnrhosw_2d  ) 
     610            ALLOCATE( f_ocnrhosw_2d(1:jpi, 1:jpj) ) 
    612611            f_ocnrhosw_2d(:,:)      = 0.0 !! 
    613612         ENDIF 
    614613         IF( med_diag%OCN_SCHCO2%dgsave ) THEN 
    615             CALL wrk_alloc( jpi, jpj, f_ocnschco2_2d ) 
     614            ALLOCATE( f_ocnschco2_2d(1:jpi, 1:jpj) ) 
    616615            f_ocnschco2_2d(:,:)      = 0.0 !! 
    617616         ENDIF 
    618617         IF( med_diag%OCN_KWCO2%dgsave ) THEN 
    619             CALL wrk_alloc( jpi, jpj, f_ocnkwco2_2d  ) 
     618            ALLOCATE( f_ocnkwco2_2d(1:jpi, 1:jpj) ) 
    620619            f_ocnkwco2_2d(:,:)      = 0.0 !! 
    621620         ENDIF 
    622621         IF( med_diag%OCN_K0%dgsave ) THEN 
    623             CALL wrk_alloc( jpi, jpj, f_ocnk0_2d      ) 
     622            ALLOCATE( f_ocnk0_2d(1:jpi, 1:jpj) ) 
    624623            f_ocnk0_2d(:,:)      = 0.0 !! 
    625624         ENDIF 
    626625         IF( med_diag%CO2STARAIR%dgsave ) THEN 
    627             CALL wrk_alloc( jpi, jpj, f_co2starair_2d ) 
     626            ALLOCATE( f_co2starair_2d(1:jpi, 1:jpj) ) 
    628627            f_co2starair_2d(:,:)      = 0.0 !! 
    629628         ENDIF 
    630629         IF( med_diag%OCN_DPCO2%dgsave ) THEN 
    631             CALL wrk_alloc( jpi, jpj, f_ocndpco2_2d  ) 
     630            ALLOCATE( f_ocndpco2_2d(1:jpi, 1:jpj) ) 
    632631            f_ocndpco2_2d(:,:)      = 0.0 !! 
    633632         ENDIF 
    634633# endif   
    635634         IF( med_diag%TPP3%dgsave ) THEN 
    636             CALL wrk_alloc( jpi, jpj, jpk,       tpp3d ) 
     635            ALLOCATE( tpp3d(1:jpi, 1:jpj, 1:jpk) ) 
    637636            tpp3d(:,:,:)      = 0.0 !!  
    638637         ENDIF 
    639638         IF( med_diag%DETFLUX3%dgsave ) THEN 
    640             CALL wrk_alloc( jpi, jpj, jpk,        detflux3d ) 
     639            ALLOCATE( detflux3d(1:jpi, 1:jpj, 1:jpk) ) 
    641640            detflux3d(:,:,:)      = 0.0 !!  
    642641         ENDIF 
    643642         IF( med_diag%REMIN3N%dgsave ) THEN 
    644              CALL wrk_alloc( jpi, jpj, jpk,        remin3dn ) 
     643             ALLOCATE( remin3dn(1:jpi, 1:jpj, 1:jpk) ) 
    645644             remin3dn(:,:,:)      = 0.0 !!  
    646645         ENDIF 
     
    650649         !!                   needed for coupling/passed through restart 
    651650         !! IF( med_diag%FGCO2%dgsave ) THEN 
    652             CALL wrk_alloc( jpi, jpj,   fgco2    ) 
     651            ALLOCATE( fgco2(1:jpi, 1:jpj) ) 
    653652            fgco2(:,:)      = 0.0 !! 
    654653         !! ENDIF 
    655654         IF( med_diag%INTDISSIC%dgsave ) THEN 
    656             CALL wrk_alloc( jpi, jpj,   intdissic    ) 
     655            ALLOCATE( intdissic(1:jpi, 1:jpj) ) 
    657656            intdissic(:,:)  = 0.0 !! 
    658657         ENDIF           
    659658         IF( med_diag%INTDISSIN%dgsave ) THEN 
    660             CALL wrk_alloc( jpi, jpj,   intdissin    ) 
     659            ALLOCATE( intdissin(1:jpi, 1:jpj) ) 
    661660            intdissin(:,:)  = 0.0 !! 
    662661         ENDIF           
    663662         IF( med_diag%INTDISSISI%dgsave ) THEN 
    664             CALL wrk_alloc( jpi, jpj,   intdissisi    ) 
     663            ALLOCATE( intdissisi(1:jpi, 1:jpj) ) 
    665664            intdissisi(:,:)  = 0.0 !! 
    666665         ENDIF           
    667666         IF( med_diag%INTTALK%dgsave ) THEN 
    668             CALL wrk_alloc( jpi, jpj,   inttalk    ) 
     667            ALLOCATE( inttalk(1:jpi, 1:jpj) ) 
    669668            inttalk(:,:)  = 0.0 !! 
    670669         ENDIF           
    671670         IF( med_diag%O2min%dgsave ) THEN 
    672             CALL wrk_alloc( jpi, jpj,   o2min    ) 
     671            ALLOCATE( o2min(1:jpi, 1:jpj) ) 
    673672            o2min(:,:)  = 1.e3 !! set to high value as we're looking for min(o2) 
    674673         ENDIF           
    675674         IF( med_diag%ZO2min%dgsave ) THEN 
    676             CALL wrk_alloc( jpi, jpj,   zo2min    ) 
     675            ALLOCATE( zo2min(1:jpi, 1:jpj) ) 
    677676            zo2min(:,:)  = 0.0 !! 
    678677         ENDIF           
    679678         IF( med_diag%FBDDTALK%dgsave  ) THEN 
    680             CALL wrk_alloc( jpi, jpj, fbddtalk ) 
     679            ALLOCATE( fbddtalk(1:jpi, 1:jpj) ) 
    681680            fbddtalk(:,:)  = 0.0 !!  
    682681         ENDIF 
    683682         IF( med_diag%FBDDTDIC%dgsave  ) THEN 
    684             CALL wrk_alloc( jpi, jpj, fbddtdic ) 
     683            ALLOCATE( fbddtdic(1:jpi, 1:jpj) ) 
    685684            fbddtdic(:,:)  = 0.0 !!  
    686685         ENDIF 
    687686         IF( med_diag%FBDDTDIFE%dgsave ) THEN 
    688             CALL wrk_alloc( jpi, jpj, fbddtdife ) 
     687            ALLOCATE( fbddtdife(1:jpi, 1:jpj) ) 
    689688            fbddtdife(:,:) = 0.0 !!  
    690689         ENDIF 
    691690         IF( med_diag%FBDDTDIN%dgsave  ) THEN 
    692             CALL wrk_alloc( jpi, jpj, fbddtdin ) 
     691            ALLOCATE( fbddtdin(1:jpi, 1:jpj) ) 
    693692            fbddtdin(:,:)  = 0.0 !!  
    694693         ENDIF 
    695694         IF( med_diag%FBDDTDISI%dgsave ) THEN 
    696             CALL wrk_alloc( jpi, jpj, fbddtdisi ) 
     695            ALLOCATE( fbddtdisi(1:jpi, 1:jpj) ) 
    697696            fbddtdisi(:,:) = 0.0 !!  
    698697         ENDIF 
     
    700699         !! AXY (10/11/16): CMIP6 diagnostics, 3D 
    701700         IF( med_diag%TPPD3%dgsave     ) THEN 
    702             CALL wrk_alloc( jpi, jpj, jpk, tppd3    ) 
     701            ALLOCATE( tppd3(1:jpi, 1:jpj, 1:jpk) ) 
    703702            tppd3(:,:,:)     = 0.0 !!  
    704703         ENDIF 
    705704         IF( med_diag%BDDTALK3%dgsave  ) THEN 
    706             CALL wrk_alloc( jpi, jpj, jpk, bddtalk3 ) 
     705            ALLOCATE( bddtalk3(1:jpi, 1:jpj, 1:jpk) ) 
    707706            bddtalk3(:,:,:)  = 0.0 !!  
    708707         ENDIF 
    709708         IF( med_diag%BDDTDIC3%dgsave  ) THEN 
    710             CALL wrk_alloc( jpi, jpj, jpk, bddtdic3 ) 
     709            ALLOCATE( bddtdic3(1:jpi, 1:jpj, 1:jpk) ) 
    711710            bddtdic3(:,:,:)  = 0.0 !!  
    712711         ENDIF 
    713712         IF( med_diag%BDDTDIFE3%dgsave ) THEN 
    714             CALL wrk_alloc( jpi, jpj, jpk, bddtdife3 ) 
     713            ALLOCATE( bddtdife3(1:jpi, 1:jpj, 1:jpk) ) 
    715714            bddtdife3(:,:,:) = 0.0 !!  
    716715         ENDIF 
    717716         IF( med_diag%BDDTDIN3%dgsave  ) THEN 
    718             CALL wrk_alloc( jpi, jpj, jpk, bddtdin3 ) 
     717            ALLOCATE( bddtdin3(1:jpi, 1:jpj, 1:jpk) ) 
    719718            bddtdin3(:,:,:)  = 0.0 !!  
    720719         ENDIF 
    721720         IF( med_diag%BDDTDISI3%dgsave ) THEN 
    722             CALL wrk_alloc( jpi, jpj, jpk, bddtdisi3 ) 
     721            ALLOCATE( bddtdisi3(1:jpi, 1:jpj, 1:jpk) ) 
    723722            bddtdisi3(:,:,:) = 0.0 !!  
    724723         ENDIF 
    725724         IF( med_diag%FD_NIT3%dgsave   ) THEN 
    726             CALL wrk_alloc( jpi, jpj, jpk, fd_nit3  ) 
     725            ALLOCATE( fd_nit3(1:jpi, 1:jpj, 1:jpk) ) 
    727726            fd_nit3(:,:,:)   = 0.0 !!  
    728727         ENDIF 
    729728         IF( med_diag%FD_SIL3%dgsave   ) THEN 
    730             CALL wrk_alloc( jpi, jpj, jpk, fd_sil3  ) 
     729            ALLOCATE( fd_sil3(1:jpi, 1:jpj, 1:jpk) ) 
    731730            fd_sil3(:,:,:)   = 0.0 !!  
    732731         ENDIF 
    733732         IF( med_diag%FD_CAR3%dgsave   ) THEN 
    734             CALL wrk_alloc( jpi, jpj, jpk, fd_car3  ) 
     733            ALLOCATE( fd_car3(1:jpi, 1:jpj, 1:jpk) ) 
    735734            fd_car3(:,:,:)   = 0.0 !!  
    736735         ENDIF 
    737736         IF( med_diag%FD_CAL3%dgsave   ) THEN 
    738             CALL wrk_alloc( jpi, jpj, jpk, fd_cal3  ) 
     737            ALLOCATE( fd_cal3(1:jpi, 1:jpj, 1:jpk) ) 
    739738            fd_cal3(:,:,:)   = 0.0 !!  
    740739         ENDIF 
    741740         IF( med_diag%DCALC3%dgsave    ) THEN 
    742             CALL wrk_alloc( jpi, jpj, jpk, dcalc3    ) 
     741            ALLOCATE( dcalc3(1:jpi, 1:jpj, 1:jpk) ) 
    743742            dcalc3(:,:,: )   = 0.0 !!  
    744743         ENDIF 
    745744         IF( med_diag%EXPC3%dgsave     ) THEN 
    746             CALL wrk_alloc( jpi, jpj, jpk, expc3  ) 
     745            ALLOCATE( expc3(1:jpi, 1:jpj, 1:jpk) ) 
    747746            expc3(:,:,: )    = 0.0 !!  
    748747         ENDIF 
    749748         IF( med_diag%EXPN3%dgsave     ) THEN 
    750             CALL wrk_alloc( jpi, jpj, jpk, expn3  ) 
     749            ALLOCATE( expn3(1:jpi, 1:jpj, 1:jpk) ) 
    751750            expn3(:,:,: )    = 0.0 !!  
    752751         ENDIF 
    753752         IF( med_diag%FEDISS3%dgsave   ) THEN 
    754             CALL wrk_alloc( jpi, jpj, jpk, fediss3  ) 
     753            ALLOCATE( fediss3(1:jpi, 1:jpj, 1:jpk) ) 
    755754            fediss3(:,:,: )  = 0.0 !!  
    756755         ENDIF 
    757756         IF( med_diag%FESCAV3%dgsave   ) THEN 
    758             CALL wrk_alloc( jpi, jpj, jpk, fescav3  ) 
     757            ALLOCATE( fescav3(1:jpi, 1:jpj, 1:jpk) ) 
    759758            fescav3(:,:,: )  = 0.0 !!  
    760759         ENDIF 
    761760         IF( med_diag%MIGRAZP3%dgsave   ) THEN 
    762             CALL wrk_alloc( jpi, jpj, jpk, migrazp3 ) 
     761            ALLOCATE( migrazp3(1:jpi, 1:jpj, 1:jpk) ) 
    763762            migrazp3(:,:,: )  = 0.0 !!  
    764763         ENDIF 
    765764         IF( med_diag%MIGRAZD3%dgsave   ) THEN 
    766             CALL wrk_alloc( jpi, jpj, jpk, migrazd3 ) 
     765            ALLOCATE( migrazd3(1:jpi, 1:jpj, 1:jpk) ) 
    767766            migrazd3(:,:,: )  = 0.0 !!  
    768767         ENDIF 
    769768         IF( med_diag%MEGRAZP3%dgsave   ) THEN 
    770             CALL wrk_alloc( jpi, jpj, jpk, megrazp3 ) 
     769            ALLOCATE( megrazp3(1:jpi, 1:jpj, 1:jpk) ) 
    771770            megrazp3(:,:,: )  = 0.0 !!  
    772771         ENDIF 
    773772         IF( med_diag%MEGRAZD3%dgsave   ) THEN 
    774             CALL wrk_alloc( jpi, jpj, jpk, megrazd3 ) 
     773            ALLOCATE( megrazd3(1:jpi, 1:jpj, 1:jpk) ) 
    775774            megrazd3(:,:,: )  = 0.0 !!  
    776775         ENDIF 
    777776         IF( med_diag%MEGRAZZ3%dgsave   ) THEN 
    778             CALL wrk_alloc( jpi, jpj, jpk, megrazz3 ) 
     777            ALLOCATE( megrazz3(1:jpi, 1:jpj, 1:jpk) ) 
    779778            megrazz3(:,:,: )  = 0.0 !!  
    780779         ENDIF 
    781780         IF( med_diag%O2SAT3%dgsave     ) THEN 
    782             CALL wrk_alloc( jpi, jpj, jpk, o2sat3    ) 
     781            ALLOCATE( o2sat3(1:jpi, 1:jpj, 1:jpk) ) 
    783782            o2sat3(:,:,: )    = 0.0 !!  
    784783         ENDIF 
    785784         IF( med_diag%PBSI3%dgsave      ) THEN 
    786             CALL wrk_alloc( jpi, jpj, jpk, pbsi3    ) 
     785            ALLOCATE( pbsi3(1:jpi, 1:jpj, 1:jpk) ) 
    787786            pbsi3(:,:,: )     = 0.0 !!  
    788787         ENDIF 
    789788         IF( med_diag%PCAL3%dgsave      ) THEN 
    790             CALL wrk_alloc( jpi, jpj, jpk, pcal3    ) 
     789            ALLOCATE( pcal3(1:jpi, 1:jpj, 1:jpk) ) 
    791790            pcal3(:,:,: )     = 0.0 !!  
    792791         ENDIF 
    793792         IF( med_diag%REMOC3%dgsave     ) THEN 
    794             CALL wrk_alloc( jpi, jpj, jpk, remoc3    ) 
     793            ALLOCATE( remoc3(1:jpi, 1:jpj, 1:jpk) ) 
    795794            remoc3(:,:,: )    = 0.0 !!  
    796795         ENDIF 
    797796         IF( med_diag%PNLIMJ3%dgsave    ) THEN 
    798             CALL wrk_alloc( jpi, jpj, jpk, pnlimj3  ) 
     797            ALLOCATE( pnlimj3(1:jpi, 1:jpj, 1:jpk) ) 
    799798            pnlimj3(:,:,: )   = 0.0 !!  
    800799         ENDIF 
    801800         IF( med_diag%PNLIMN3%dgsave    ) THEN 
    802             CALL wrk_alloc( jpi, jpj, jpk, pnlimn3  ) 
     801            ALLOCATE( pnlimn3(1:jpi, 1:jpj, 1:jpk) ) 
    803802            pnlimn3(:,:,: )   = 0.0 !!  
    804803         ENDIF 
    805804         IF( med_diag%PNLIMFE3%dgsave   ) THEN 
    806             CALL wrk_alloc( jpi, jpj, jpk, pnlimfe3 ) 
     805            ALLOCATE( pnlimfe3(1:jpi, 1:jpj, 1:jpk) ) 
    807806            pnlimfe3(:,:,: )  = 0.0 !!  
    808807         ENDIF 
    809808         IF( med_diag%PDLIMJ3%dgsave    ) THEN 
    810             CALL wrk_alloc( jpi, jpj, jpk, pdlimj3  ) 
     809            ALLOCATE( pdlimj3(1:jpi, 1:jpj, 1:jpk) ) 
    811810            pdlimj3(:,:,: )   = 0.0 !!  
    812811         ENDIF 
    813812         IF( med_diag%PDLIMN3%dgsave    ) THEN 
    814             CALL wrk_alloc( jpi, jpj, jpk, pdlimn3  ) 
     813            ALLOCATE( pdlimn3(1:jpi, 1:jpj, 1:jpk) ) 
    815814            pdlimn3(:,:,: )   = 0.0 !!  
    816815         ENDIF 
    817816         IF( med_diag%PDLIMFE3%dgsave   ) THEN 
    818             CALL wrk_alloc( jpi, jpj, jpk, pdlimfe3 ) 
     817            ALLOCATE( pdlimfe3(1:jpi, 1:jpj, 1:jpk) ) 
    819818            pdlimfe3(:,:,: )  = 0.0 !!  
    820819         ENDIF 
    821820         IF( med_diag%PDLIMSI3%dgsave   ) THEN 
    822             CALL wrk_alloc( jpi, jpj, jpk, pdlimsi3 ) 
     821            ALLOCATE( pdlimsi3(1:jpi, 1:jpj, 1:jpk) ) 
    823822            pdlimsi3(:,:,: )  = 0.0 !!  
    824823         ENDIF 
Note: See TracChangeset for help on using the changeset viewer.